Итак, ты решил стать фронтенд разработчиком — Практический гайд по развитию начинающего разработчика
Это перевод статьи So you want to be a front end developer — A practical guide to growth for junior developers от Стивена Томас, фронтенд тимлида в Shopify и Stiff Salt Co. Перевод выполнен Антоном Шкребко с согласия и одобрения автора оригинала специально для mkdev.
Фронтенд-разработка пережила огромный подъем в последние несколько лет. Javascript продолжает расти как самый используемый язык на Гитхабе и изобилует предложениями о работе. Не удивительно, что параллельно с этим подъемом мы видим массивный рост количества надменно-многообещающих-учебных программ – тренингов, туториалов и прочих интенсивных курсов. Этот цикл естественен для любой быстроразвивающейся индустрии, и состоит он из следующих этапов:
- Существует огромный спрос на веб-разработчиков. Компании пытаются найти компетентных людей, чтобы заполнить вакансии, и платят за это большие деньги;
- Другие компании видят этот спрос и создают образовательные ресурсы, дабы помочь карьере юным любителям бутстрапа. Они обещают решение для обучения веб разработке которое быстро приведёт их к оглушительному успеху;
- Обещания столь привлекательны, что большое количество людей ведётся на них. Тренинги и обучающие онлайн ресурсы раскупаются как горячие пирожки — все это быстро становится многомиллиардной индустрией.
В конечном итоге мы имеем огромную массу «юных талантов» . Большинство студентов уходят с курсов вместе с сайтом в их портфолио и несколькими демками на JS, но без глубокого понимания разработки, которое позволило бы им решать реальные задачи, с которыми разработчики сталкиваются каждый день.
Но я пишу всё это не с тем, чтобы опровергнуть преимущество этих обучающих программ. Как разработчик-самоучка, у которого в свое время этих программ не было, я уверен, что моя жизнь была бы проще, если бы эти ресурсы были доступны мне, когда я только начинал. Они дают чудесную возможность сделать первый шаг и начать процесс обучения. Однако они являются только началом.
Ладно, что дальше?
Люди, недавно закончившие эти курсы и пополнившие армию голодных джуниоров, вероятно спрашивают себя – что делать дальше? С таким количеством возможностей для обучения основам, я хотел бы рассмотреть следующие шаги перехода от джуна с горящими глазами к высоко-востребованному специалисту.
Вот несколько вещей, которые помогли мне преодолеть разрыв между началом моего обучения и становлением компетентным и продуктивным разработчиком:
Читай книги
Для глубокого понимания языков используемых во фронтенд разработке (JS, CSS и HTML) чтение узконаправленных туториалов не поможет, тебе нужно читать книги. В начале моего обучения я помню, как читал Javascript Patterns, и совершенно не понимал описываемых там вещей. Но в процессе обучения части книги начинали обретать смысл. Я использовал их в качестве референса, которые способствовали тому, что я писал код правильным способом. Вскоре я был способен понять книгу полностью, и даже имел свое мнение по поводу её содержания.
Для начинающих фронтендеров, я бы рекомендовал Eloquent JavaScript, SMACSS, и HTML and CSS: Design and Build Websites. Но не нужно останавливаться на этом.
Посещай митапы
Митапы служат прекрасным напоминанием, что ты не одинок. Просто появляйся на встречах, чтобы больше узнать о веб-разработке. Как и при чтении книг, ты на какое-то время почувствуешь себя не в своей тарелке. Но фишка в том, что разработчики достаточно приятные люди, и они также были когда-то на твоём месте. Так что найди какой-нибудь митап, приходи, задавай вопросы и слушай. В итоге многие непонятные вещи начнут обретать смысл.
Делай вклады в опенсорс проекты
Это может быть обескураживающим для разработчиков всех уровней, но если ты занимаешься веб-разработкой, то я гарантирую, что ты будешь использовать открытое ПО. Открытое ПО — это ПО, которое любой может свободно использовать, распространять и изменять.
Итак, с чего начать? Подумай об инструменте, который ты используешь, скажем… JQUERy или Bootstrap, и начинай просматривать темы, связанные с ними на Гитхабе. Есть ли что-то в этих инструментах, что требует улучшений? Создай тему, или еще лучше предложи способ этого улучшения. Ничего страшного в этом нет. Самое плохое, что может случиться – твоё предложение будет отвергнуто, зато ты получишь отклик на свою работу.
Найди работу джуниором или стажировку
Этот шаг вполне очевиден, но здесь важно запомнить — нужно продолжать развиваться. Проходя стажировку или работая, тебе будет трудно распланировать своё время. Важно помнить это, прежде чем делать первый шаг. Но если ты уже работаешь джуниором или стажёром, убедись, что есть чёткий путь для развития твоих навыков.
Мы у себя на mkdev организовываем стажировку. Читай, как это происходит и как подать заявку Читать
Есть множество великолепных компаний которые нацелены наставлять и взращивать своих сотрудников. Однако многие другие рады держать их в качестве рабочих лошадок для выполнения рутиной работы – это больше напоминает дешевую рабочую силу, нежели разработчиков нового поколения.
Другой вариант при поиске работы – найти работу, которую можно совмещать с обучением. На одной из моих первых работ, связанных с разработкой, я был веб-продюсером, и занимался тем, что заливал контент на сайт на Wordpress’е, и иногда баловался добавлением новых функций. Это не было чем-то особо увлекательным, но это давало мне возможность потихоньку продвигаться к позиции полноценного разработчика.
Начни свой проект
Я надеюсь, что смогу подчеркнуть это предельно чётко. Решение реальных проблем, которые действительно что-то значат для тебя — это лучший путь к становлению хорошим разработчиком. Ты сможешь работать в направлении решения конкретных задач, что гораздо увлекательнее, чем работать с типовыми проблемами.
Первые строки коммерческого кода, которые я писал, были результатом посещения конкурса Startup Weekend вместе с друзьями, у которых была идея создать приложение для сбора идей от сотрудников. Процесс был ужасен, но мы четко знали, как наше приложение должно работать, так что я возился с кодом до тех пор, пока оно не начало выдавать что-то похожее на нашу задумку. Весь процесс был крайне неряшливым и, если честно, исходный код был также ужасен, но я многому научился за короткий промежуток времени. Работа с реальными клиентами была наполнена драйвом, по сравнению с проектами без клиентов, где время безотказной работы не имело значения. После управления этим бизнесом на протяжении около 8 месяцев я был способен найти свою первую работу в качестве разработчика.
Никогда не прекращай учиться
Я надеюсь эти советы помогут ускорить твоё обучение, но они не решают всех проблем. Интересный факт о фронтенд разработке — она постоянно меняется. Так что тот момент, когда ты закончишь обучение, не придёт никогда. Это значит, что сколько бы книг ты ни прочёл, сколько бы метанов ты ни посетил или сделал проектов, обучение должно продолжаться, если ты хочешь оставаться в теме.
Есть огромное количество возможностей во фронтенд разработке, так же как и людей с которыми ты конкурируешь за рабочее место. Но если ты страстно будешь следовать перечисленным пунктам, то укрепишь себя как разработчика и построишь отличную карьеру.
Послесловие
Я пишу это из сопереживания. Я начинал свою карьеру в киноиндустрии с нулевым опытом кодинга. По каким-то причинам я переехал в Тайвань и занимался очень скучной работой копирайтера. Я начал соваться в веб-разработку, перед тем, как вступил с другом в то соревнование стартапов, где был главным разработчиком. В Тайване мне удалось получить несколько фриланс-заказов еще до того когда я был веб-продюсером. Я собрал достаточно примеров кода, чтобы получить работу в нескольких агентствах. Я получил огромную возможность работать в MetaLab тогда, это реально ускорило моё путешествие к становлению хорошим разработчиком. Джейсон Вебстер был невероятным наставником и я всегда буду признателен его терпению. За последние несколько лет я работал на Shopify, где я имел возможность расти в геометрической прогрессии, и сейчас я работаю старшим фронтенд разработчиком.
Я пишу это всё, чтобы ещё раз подчеркнуть — это путешествие будет ни фига не простым. Было несколько лет, в течение которых я чувствовал что ничего не понимаю, но приложив усилия, я во всем разобрался.
Лучший способ научиться фронтенд разработке — это обучение с персональным наставником. Ментор научит не только как использовать и понимать актуальные технологии, но и глубокому пониманию профессии в целом и методам решения задач в условиях реальной работы.
Ментор Екатерина Шпак научит основам фронтенд разработки на примере создания двух веб-приложений с использованием современных фреймворков и библиотек.
Ментор Иван Клешнин преподаёт продвинутый фронтенд на примере разработки браузерной игры, методологии разработки которой позволят применять полученные знания при разработке веб-приложений любой сложности и сферы применения.