Книга разработчика на каждый день

Михаил Валентинович Ковалев, 2020

Когда мне нужно изучить непростой вопрос, к которому я не знаю, как подойти, ко мне подкрадывается чувство отвращения и тошнота. Кто сказал, что я должен тратиться на неинтересные темы, сложные книги, и проводить все свободное время за учебой, чтобы получить результат? Я верю, что путь к тому, чего я так хочу, к тому, что мне очень нравится, тоже должен приносить удовольствие. А, собственно, почему нет?

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Книга разработчика на каждый день предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Понедельник

С чего начать

«Viam supervadet vadens» (лат.)

«Дорогу осилит идущий»

То, что описано в этой главе, может быть успешно применено в любой области и не привязано жестко к программированию, как таковому.

Всегда самое трудное — это сделать первый шаг. Я очень надеюсь, что эта книга поможет вам в этом. На самом деле, есть множество вариантов, как начать учиться. Попробуйте выбрать наиболее комфортный для себя вариант.

Учитывайте при этом ваши начальные знания и умения. Подумайте, сколько времени Вы готовы уделять учебе. Готовы ли Вы учиться каждый день? Сможете ли Вы учиться в выходные? Будете ли Вы заниматься по одному часу за раз, или три раза по двадцать минут, или двадцать минут в день — это ваш предел? Одним словом, постарайтесь спланировать свои занятия насколько это возможно, и максимально придерживайтесь этого распорядка. Конечно же, учебный график в результате зависит от того, какой именно род занятий Вы выберете, но об этом чуть позже.

Важно здесь то, чтобы учеба ни в коем случае не была для вас обременительной, иначе Вы ставите под угрозу весь процесс обучения. Поверьте, даже 15 минут в день может дать вам ощутимые результаты — просто придерживайтесь удобного графика, вот и все. Уверен, если Вы начнете и выработаете привычку заниматься хотя бы по 15 минут в день, вас уже будет не остановить. Скорее всего, увлекшись изучением того или иного вопроса, Вы потратите даже больше времени, чем рассчитывали, именно потому, что это удобно для вас. А если это удобно, значит ничто не мешает, не отвлекает и не беспокоит вас, пока Вы учитесь. Ваш мозг не сопротивляется. Нет защитной реакции с его стороны. Нет никакого давления, нет лишнего груза ответственности, который бы вызывал дискомфорт и заставлял переживать из-за чего-то несделанного.

Например, в школьные годы я не мог нормально расслабиться, если знал что у меня есть домашнее задание, которое еще не выполнено. Это занимало большую часть моих мыслей. И чтобы отделаться от чувства тревоги, я выполнял задания не только на следующий день, но и вообще все, какие были. И лишь тогда я мог спокойно пойти заниматься своими делами.

Таким образом, я подвожу вас к тому, что, выбрав удобное для себя время, Вы получите не только максимум пользы и удовлетворения от учебы, но и насладитесь процессом. И если Вы в результате потратите, сколько бы то ни было, больше времени, чем собирались изначально, знайте, что Вы на верном пути и у вас все получается, как надо. В дальнейшем Вы даже можете сознательно увеличить длительность занятий, если посчитаете нужным.

Но будьте крайне осторожны и честны сами с собой! На этом и последующих этапах очень легко попасть в ловушку, когда Вы занижаете для себя планку по какой-то причине. Например, бывает просто лень, или, возможно, Вы недооцениваете свои силы, или же Вы просто не хотите этого на самом деле. С другой стороны, завышенная планка также не пойдет на пользу. Чистого энтузиазма и мотивации может надолго не хватить. Рано или поздно наступит момент, когда учеба отойдет на второй план. У вас появятся более срочные дела, магическим образом станет меньше времени. Вы начнете пропускать занятия, и, в конце концов, напрочь забудете об учебе.

Это может произойти по двум противоположным причинам, которые я уже упомянул.

В первом случае недостаток дисциплины и уделяемого времени приводит к потере концентрации. Не хватает целостности и какой-то законченности в том, что Вы делаете. Не хватает конкретного результата, который бы мотивировал на дальнейшие занятия. Разумеется, разные вопросы требуют разного количества времени для их изучения. И все же, постарайтесь найти минимальный эффективный для вас промежуток времени. Нащупайте нижнюю границу, и не понижайте ее, чтобы не потерять фокус и продолжать подогревать интерес к учебе.

Во втором случае есть опасность слишком быстро перегореть. Да, Вы жаждите покорить мир за неделю. День и ночь трудитесь, не поднимая головы. Круто! Но в один прекрасный момент Вы слышите щелчок в своей голове, и весь ваш запал внезапно заканчивается. И если с ленью можно бороться дисциплиной, то с таким “выгоранием” справиться не так-то просто и быстро. Да, если Вы чувствуете прилив энергии и небывалый интерес к тому, чем Вы занимаетесь — это очень здорово. Вы способны делать больше, чем обычно, и это очень даже неплохо. У каждого бывают периоды, когда чувствуешь себя на волне, и все получается на раз. С боевым настроем и интересом к делу будет гораздо легче изучать сложные вопросы и технологии.

Но будьте настороже! Когда почувствуете, что действительно устали, сделайте перерыв. Помните, что без хорошего отдыха невозможно показывать хорошие результаты. О, сколько раз я засиживался допоздна в программном коде, а потом жалел об этом. Очень часто недостаток сна в результате серьезной работы потом выливался в неприятные последствия в виде головных болей, вялости и прочих неприятных вещей, сопутствующих следующие несколько дней. Или, к примеру, изрядно потрудившись на выходных, я хоть и не перетруждался, но напрочь забывал отдохнуть после рабочей недели. В результате я отработал 12 дней подряд, и к следующим выходным чувствовал себя выжатым, как лимон. А ведь я мог бы добиться куда больших результатов и избежать переутомления и потерь времени на восстановление, сделай я вовремя перерыв.

Что важно — это определить для себя собственные нижнюю и верхнюю границы, которые будут служить своеобразным индикатором эффективности. На ум приходит аналогия про морковку спереди и морковку сзади. Морковка спереди — это ваша внутренняя мотивация, то, что заставляет вас двигаться к цели без дополнительных усилий. Соответственно морковка сзади — внешний стимул, который заставляет вас действовать вопреки желаниям. Нюанс состоит в том, что до каких бы размеров не выросла морковка сзади, она повышает мотивацию лишь до определенного уровня, причем гораздо более низкого, чем может дать морковка спереди (рисунок 1). Это значит, что заставлять себя что-то делать через силу весьма неэффективно, чем, если бы что-то действительно вас заинтересовало.

Рисунок 1

Определите свое личное пространство между морковками и постарайтесь не натыкаться ни на одну из них, чтобы избежать вышеописанных проблем.

Прислушайтесь к себе. Верным признаком того, что Вы делаете все верно, послужит чувство завершенности, удовлетворенность результатами и собой, легкая усталость. Если после занятия Вы все еще держитесь огурцом, или не чувствуете, какой Вы молодец, а, может, не успели сложить пазл до конца, попробуйте увеличить дозировку. В противном случае, я бы задумался о реальной пользе того, чем я занимаюсь, и, наверное, забросил бы все это дело.

Естественно планирование времени и графика тесно взаимосвязано, с тем, как именно Вы собираетесь учиться.

Существует масса вариантов на все случаи жизни. К примеру, можно посещать курсы, платные или бесплатные. Есть компании, которые спонсируют подобные мероприятия или даже выращивают собственных специалистов с нуля. Можно учиться онлайн. Можно читать книги и учебники. Можно собственноручно шерстить интернет в поисках конкретных ответов или смотреть обучающие видео. Официальная техническая документация к той или иной технологии, туториалы, песочницы, даже исходный код и, конечно, выполнение практических заданий — без всего этого невозможно научиться программировать. Отнюдь, это вовсе не означает, что нужно хвататься за все подряд. Но ведь здорово, когда есть выбор, не так ли?

Мы с вами уже привыкли, что при необходимости любую информацию можно найти в интернете. Я бы сказал, что зачастую информации слишком много. Существует огромное количество ресурсов, посвященных всевозможным темам. И если тратить время на всё подряд, то можно натрудить мозоль. А этого мы как раз не хотим. Будьте готовы, что придется постоянно проводить отбор и делать выбор в пользу того или иного источника информации.

Для начала выберите основной тип занятия, который вам более всего импонирует, и который приносит наибольшую пользу именно вам. Это не значит, что видео, например, лучше, чем книги, или наоборот. Это значит, что люди разные, и по-разному воспринимают информацию. Обычно выделяют тех, кто лучше усваивает информацию на слух, визуально или через действия, чувства и ассоциации. Поэтому для конкретного типа людей какая-то часть ресурсов будет более подходящей, чем другая. Необходимо подобрать свой собственный комплекс обучающих материалов. А в процессе его формирования я бы порекомендовал попробовать всего понемножку, чтобы осознанно сделать свой выбор наиболее подходящего представления информации и не упустить ничего важного.

Лично мне гораздо приятнее и легче воспринимать текстовую информацию, сдобренную схемами, анимациями и цветными картинками высокого разрешения, на красиво оформленном, удобном в обращении сайте. Такой ресурс изначально располагает к себе, и я получаю от него еще и эстетическое наслаждение. Удовольствие от неспешно съеденной конфеты куда больше, чем от такой же наспех сожратой. Так и подавиться можно. Так и формой представления информации.

Однако, важно понимать, что в самом начале изучать свободные темы несколько бессмысленно, да, и не получится это. Нужно сначала постичь азы и заложить фундамент, на котором выстроятся все остальные знания. А в качестве индикатора того, куда двигаться Вы уже готовы, а куда еще рановато, можете попробовать принять сложность материала. Если какая-то тема чересчур тяжело даётся, вам многое непонятно или совсем неинтересно, возможно, стоит предварительно углубить свои знания в смежных областях.

Изучая сферического коня в вакууме, нужно как минимум знать, что такое конь, сфера и вакуум, чтобы понимать, о чем вообще идет речь. Недостаток понимания хотя бы одного из понятий препятствует пониманию контекста и вопроса в целом. Поэтому, прежде чем продолжать, однозначно стоит отвлечься, чтобы в первую очередь закрыть дыры в имеющихся знаниях. При этом решением может быть, как поиск простого односложного ответа, так и изучение дополнительной темы. В конечном счете, выбор остается за вами. Eсли же смежная тема, как таковая, не особо важна, и Вы не очень хотите отвлекаться от основного вопроса, можете ее пропустить, как только проясните интересующие вас моменты. Это также вполне себе рабочий вариант.

Возвращаясь к подбору материала, хочу сказать, что посещение специализированных курсов будет хорошим вариантом особенно для тех, кто только-только начинает погружаться в тему программирования. Учтите, что учебный материал может быть рассчитан на аудиторию определенного уровня, поэтому стоит обращать внимание на требования к абитуриентам в рамках этих курсов. В целом же такие занятия рассчитаны все-таки для начинающих.

Так вот, вариант этот хорош тем, что учебная программа в каком-то виде проработана под нужды новичков. Не могу говорить за всех, но предполагается, что учебный материал уже адаптирован, все необходимое найдено и включено в учебный план, а все лишнее отфильтровано и исключено. То есть после прохождения такого курса программистом Вы скорее всего еще не станете, но будете разбираться в базовых вещах, и сможете наращивать темп на пути к своей цели.

Кроме того, существуют курсы, организуемые IT компаниями, по окончании которых есть шанс трудоустроиться в эту же самую компанию и продолжить обучение на конкретного специалиста. Я бы сказал, это хорошая возможность быстро освоиться в теме с наименьшими трудозатратами на поиск необходимых знаний. К тому же такие курсы обычно бесплатные. К сожалению, немногие компании этим занимаются.

В довесок к посещению курсов, да и без них тоже, будет большим преимуществом, если у вас есть товарищ или знакомый, разбирающийся в теме, который мог бы вам быстро что-то растолковать или разъяснить сложные для понимания моменты, обратить ваше внимание на важные нюансы и дать дельный совет.

Вышеописанная практика широко применяется в IT сфере и именуется менторингом (хотя и применима в любой другой отрасли). Соответственно ментор — это как раз тот самый человек, который вас направляет и ведет. Ментор, к слову, не является преподавателем. По большому счету, он не обязан вас учить. Это скорее исключение из правил. Учиться Вы должны самостоятельно. Задача ментора — помочь определиться, на каком этапе Вы находитесь, выявить пробелы в знаниях и помочь их устранить. Если же принимать во внимание других товарищей по учебе, тут Вы вольны научать друг друга сколько влезет.

Какой бы путь обучения Вы не выбрали: очный, онлайн, самостоятельный или еще какой-то, — в любом случае придется обращаться за информацией к интернет ресурсам.

Особенно мне пришелся по вкусу такой сайт, как www.tutorialspoint.com. Скажу о нем всего пару слов.

Здесь собраны обучающие материалы касательно множества современных популярных технологий. По сути tutorialspoint предоставляет документацию, адаптированную под новичков. Материал написан очень простым языком, последователен, логичен, разобран на достаточном для использования конкретной технологии уровне. Думаю, что не сильно совру, если скажу, что одного этого источника может быть вполне достаточно, чтобы овладеть большей частью, необходимых для джуниора знаний. Единственная трудность, с которой можно столкнуться при работе с этим сайтом, это незнание английского языка. В остальном ресурс просто изумительный.

Очень часто поиски решения определенных задач ведут на один из крупнейших IT форумов — stackoverflow.com. Здесь разработчики всего мира обсуждают любые вопросы, связанные с программированием. Это настоящий кладезь опыта решения реальных проблем и передовых знаний. Если, работая с какой-либо технологией, Вы столкнулись с трудностями, скорее всего кто-то уже изобрел велосипед до вас или, по крайней мере, обсуждал эту проблему. В худшем случае всегда можно задать вопрос и попросить о помощи лично. Ресурс также преимущественно на английском, хотя есть и поддомен сугубо для русскоговорящих пользователей — ru.stackoverflow.com.

Также хотелось бы отметить несколько толковых блогов. Например, habr.com, mkyong.com, блог сурового челябинского программиста samolisov.blogspot.com. На этих сайтах можно найти кучу практических примеров использования различных библиотек. Кроме всего прочего, только здесь я смог найти непростые для понимания темы, досконально и глубоко разобранные, как ни в одном другом источнике.

Еще одним особенно полезным типом ресурсов, которые хотелось бы упомянуть, являются так называемые “песочницы”. Песочница представляет собой реализацию той или иной технологии в виде онлайн терминала или командной строки. Это значит, что можно прямо в браузере выполнить код, написанный на каком-либо языке (например, Java, Python, SQL, JavaScript, Go и многие другие) и получить результат выполнения, не разворачивая дополнительного программного обеспечения на локальном компьютере. Тот же tutorialspoint предоставляет внушительный список различных песочниц.

Плюсы такого подхода очевидны. Можно быстро проверить, как работают несколько строк кода. Можно поиграть с незнакомыми языками, не тратясь на настройку окружения. Можно моделировать решения задач и даже делиться ими с другими людьми. Одним словом, песочница — вещь удобная и полезная.

В дополнение к перечисленным источникам нужно озвучить платформы, ориентированные непосредственно на учебу и самообразование. Многие из них также предлагают множество курсов по самым разнообразным тематикам. Главная их цель — помочь пользователям организовать свой учебный процесс, предоставляя определенный набор инструментов.

У таких вот платформ очень интересная задумка. Однако, попробовав одну из них, я быстро утратил интерес к занятиям, построенным на их основе. Во-первых, я и без дополнительной помощи могу самоорганизоваться. Во-вторых, платформа не помогла мне с поиском информации. Таким образом, лично для меня такой подход показался не особо эффективным. Тем не менее, не стоит сбрасывать его со счетов. Если требуется решить проблему организации процесса самостоятельного обучения, такая практика, скорее всего, будет весьма полезной. Пусть и не для всех.

Конечно же, это далеко не весь список ресурсов, которые могут быть полезны. Их сотни и тысячи. Это не значит, что сайты стоит разделять на плохие и хорошие. Зачастую очень хорошие ответы спрятаны в совершенно разных местах. Ответ на один вопрос размещен на одном сайте, другой ответ — на каком-то еще. Просто есть ресурсы, на которых концентрация хороших ответов выше, чем в среднем по больнице.

Не хочу говорить ничего плохого в чей-то адрес, просто приведу забавный пример. Очень часто я натыкался на один и тот же форум в поисках разного рода информации. Я переходил по ссылкам на него десятки раз и ни разу не получал хоть какого-то вразумительного ответа на мои вопросы. Символично, что в оформлении этого форума размещено чучело дохлого оленя или лося с роящимися вокруг него насекомыми.

Со временем, закрывая для себя очередную тему, узнавая что-то новое, должен наступить момент, когда Вы действительно знаете и понимаете, что готовы. Готовы к собеседованию. Все верно, рано или поздно придется пройти техническое интервью, чтобы проверить себя, понять, где Вы находитесь, и туда ли вообще идете, да и банально устроиться на работу. В том случае, если Вы уже работаете, скорее всего, вас все равно ждет какая-либо запланированная беседа, будь то собеседование на очередную должность, вступительное интервью на проект, плановая аттестация или что-то еще.

Для разработчика регулярные собеседования становятся частью рутины. Каждый проходит эту процедуру в среднем несколько раз в год. Бояться технических интервью не стоит. Никто не ставит двоек. Никто не хочет вас “завалить”. Главная цель процесса — понять, что Вы знаете и умеете на текущий момент, как Вы мыслите, оценить общий уровень и определить, куда следует двигаться дальше.

Да, поначалу проходить интервью может быть довольно волнительно и стрессово. Здесь важно понимать, что это важная часть учебного процесса и отличная возможность убить несколько зайцев сразу. Вы учитесь, на что обращать внимание, как себя вести, узнаете конкретные вопросы. Примечательно, что на собеседованиях спрашивают примерно одно и то же. Благодаря этому на третий, четвертый, пятый раз Вы уже заранее знаете, чего ожидать, можете подготовиться, как следует, и с легкостью показать требуемый уровень.

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Книга разработчика на каждый день предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я