Во времена программирования на ассемблере или базовых версиях языка С разработчики жили в условиях почти «блокадного Ленинграда». Каждый кусочек памяти, каждый байт и принятое решение – тщательно выверялись и продумывались. Можно было смело запускать спутник с загруженной программой, перезалить которую годами не было возможности, и она продолжала работать как часы, без переполнения памяти и критических ошибок, в течение долгих месяцев. ПО такого качества вы вряд ли найдете теперь даже в весьма критичных сферах безопасности и медицины. Да, время снимает свои жесткие ограничения, но однажды такой кредит доверия может обернуться серьезными последствиями. Будьте ответственны, не гонитесь за модой, а если взялись – выбирайте такие источники и учитесь так глубоко, будто ваш код станет частью системы управления космического корабля, уносящего ваших детей во имя спасения человечества.
Настелим крышу
Практика. То, что ветшает быстрее всего и чаще прочих требует замены. Огромный пласт нужной информации вы сможете получить, только каждый день применяя и поддерживая полученные знания. Подсказки линтеров и редакторов, ошибки в консоли браузера, названия пунктов для дебага в инструментах разработчика, сочетания горячих клавиш – всё, что почти бесполезно искать в книгах, статьях и курсах. Ваши наработанные практики, выбор правильного решения из десятков изученных источников, умение применять абстрактные паттерны проектирования – самая неудобная, уникальная работа, которую каждый обязан проделать для себя.
На любом собеседовании вас сейчас с большой вероятностью попросят написать код, исправить ошибки в некоем фрагменте или хотя бы сделать ревью, то есть продемонстрировать свои практические навыки. Более того, если ранее основной упор шел на фундаментальные знания – что, с одной стороны, необходимо, а с другой – может быть заучено без понимания, – то сейчас в большинстве крупных компаний вас могут даже не спросить ни про один паттерн проектирования. По крайней мере, так показал нынешний опыт общения с рядом крупных компаний, включая текущее место работы.
Писать каждый день, пробовать на практике вычитанное решение, применять потенциально полезный инструмент, заменять устаревшие фрагменты знаний новыми и латать замеченные дыры – постоянный труд, без которого всё вышеперечисленное – бесполезная и безжизненная заготовка. Помню, однажды мы проводили собеседование с тогдашним техническим директором в поисках нового фронтенд-кандидата. Однажды он задал тогда показавшийся мне неожиданным вопрос: а когда вы прочитали некую статью, скажем, как сверстать кнопку новым способом, – как вы поступаете в дальнейшем? И наиболее успешный кандидат был склонен давать ответы вроде: “Пробую сделать, поиграться, сразу же набрав в редакторе/консоли”. Менее успешные: “Запоминаю, беру на заметку на некое будущее”. Почему последнее не работает – потому что поток информации огромен, и мало кто способен действительно воспроизвести увиденное в дальнейшем – а часто даже не способен вспомнить или найти первоисточник! И потраченное на чтение время превращается в тыкву. Практика склонна увеличить шансы на воспроизводство полученной информации в дальнейшем, связав ее с моторикой.
В этой связи мне весьма импонирует одна исходно древнекитайская мудрая мысль. И когда меня однажды попросили предстать с просвещающим докладом для начинающих фронтенд-разработчиков, а также тех, кто только подумывает ими стать, – именно ей я закончила свое выступление. «Скажи мне – и я забуду, покажи мне – и я запомню, дай мне сделать – и я пойму». А посему – пробуйте!
Добавим деталей
Что отличает мастера? Знание 1000 и 1 нюанса, способных в корне изменить результат. Когда 90 % золота добыто из рудников, очень сложно выискивать 10 % крупиц, рассредоточенных в десятках кусков породы. Так и с мелкими секретами IT.
Подписывайтесь на блоги известных разработчиков, евангелистов, лекторов. Имена будут меняться, суть их важности – нет. Благодаря им вы узнаете, как лучшим образом выровнять текст или скруглить уголки при определенном стечении условий. Читайте новостные сайты, в первую очередь зарубежные. Не забывайте знаменитый Хабр. Читайте в соцсетях «разработчиков-предпринимателей»: Илона Маска, Марка Цукерберга, Билла Гейтса… Именно там может встретиться та самая крупица, которая дополнит ваш багаж и позволит создать лучшее, профессиональное решение.
Посещайте конференции. Нет необходимости тратить большие суммы и приезжать лично. Безусловно, «очный» опыт обязан иметь место в карьере каждого разработчика, да и влияние атмосферы никто не отменял. Но для начала достаточно онлайн-просмотра выступлений. Находите сами, просите коллег, побывавших там, поделиться с вами материалами.