Как понять, что вы готовы занять позицию front-end разработчика?

Я часто задавался этим вопросом, когда только делал первые шаги во front-end разработке. Сложно измерить свою готовность, изучая технологию самостоятельно. Если ты проходишь курс, все проще — есть четкие начало и конец. А тем, кто самообучается, приходится определять их самим.

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

Мой опыт

Я самоучка, совершенно без опыта в IT. Я собрал свой компьютер давным-давно, но это практически не повлияло на мое умение программировать. Я слышал об HTML — этим мои знания и ограничивались. Путь к моей первой работе занял около 11 месяцев, и сейчас мне кажется, что я мог начать рассылать резюме немного раньше. Я был слишком зациклен на попытках отшлифовать свои знания до идеала и достичь “готовности”.

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

Определение “готовности”

Если вы действительно уделите время обучению, у вас будут все шансы занять позицию junior разработчика. Мой перечень необходимых навыков для работы:

  • Исчерпывающие знания HTML, CSS и JavaScript (особенно JavaScript)
  • Понимание доступности в вебе
  • Опыт работы с JavaScript фреймворком/библиотекой
  • Понимание и опыт работы со сборщиками проектов и препроцессорами
  • Желание и способность обучаться
  • Энтузиазм к разработке
  • Наличие портфолио, демонстрирующего ваши навыки
  • Даже небольшой вклад в open-source проекты также будет плюсом

Рассмотрим более детально каждый из перечисленных критериев:

Исчерпывающие знания HTML, CSS и JavaScript — особенно JavaScript

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

Тем, кто хочет стать UX-направленным front-end разработчиком, стоит потратить больше времени на HTML и CSS. А желающим стать JavaScript-направленным front-end разработчиком (их обычно называют front-end инженерами), необходимо сфокусироваться на JavaScript — убедитесь, что вы изучили как основы, так и более продвинутые концепты, такие как замыкания, прототипы, наследование, промисы и т.д.

Опыт работы с JavaScript фреймворком/библиотекой

Это, вероятно, наиболее спорный пункт списка. Сейчас вполне обыденно для работодателей указывать в требованиях к вакансии умение или хотя бы опыт работы с front-end фреймворком или библиотекой (обычно Angular, Vue или React. Иногда jQuery также упоминается, хотя эта библиотека редко используется в современной разработке).

Я составил подборку из случайных 20 вакансий (на позицию junior front-end разработчика), чтобы выяснить, насколько часто работодатели требуют знания фреймворка.

Пропорции вакансий, требующих опыт работы с JavaScript фреймворком

  • Просто JavaScript 45%
  • Любой фреймворк 10%
  • React 30%
  • Vue 5%
  • Angular 10%

Результаты получены на основании случайных 20 вакансий на позицию junior front-end разработчика, Ноябрь 2020.

Лично я бы не сильно зацикливался на этом. Как вы видите, есть уйма вакансий, требующих скорее навыки JavaScript в общем, чем в каком-то конкретном фреймворке.

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

Понимание доступности в вебе

К счастью, все больше и больше компаний серьезно относятся к проблемам доступности. За доступность не должны быть ответственны одни лишь дизайнеры. Нам, как front-end разработчикам, важно воспринимать доступность в вебе всерьез. К сожалению, иногда, с растущей сложностью и запутанностью проектов, о доступности забывают.

Нет необходимости быть экспертом в этом, но понимание важности доступности определенно будет не лишним. Кроме того, высока вероятность, что некоторые вопросы на собеседовании будут на тему доступности.

Энтузиазм к разработке

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

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

Наличие портфолио, демонстрирующего ваши навыки

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

Не заморачивайтесь слишком сильно над доведением кода до идеала, но убедитесь, что при написании кода следуете DRY. Он должен быть удобен в поддержке и чистым (если вы напишете немного тестов для своего кода, это будет только в плюс!). В любом случае, поверьте мне на слово, если работодатель увидит, что вы действительно в состоянии писать код, он с намного большей вероятностью примет решение сотрудничать именно с вами.

Небольшой вклад в open-source проекты (не обязательно, но также будет плюсом)

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

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

Работа с open source толкает вас на изучение нескольких важных концептов, практик и навыков:

  • Системы контроля версий (самая распространенная — git)
  • Работа с тикетами, проблемами
  • Взаимодействие с опытными разработчиками
  • Создание pull request-ов
  • Опыт в code review
  • Настройка локальной среды
  • Написание кода в рамках уже существующего проекта

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

Вывод

Если вы можете вычеркнуть большинство пунктов из моего списка “готовности”, вам, вероятно, стоит начать рассылать резюме. Сроки, в которые можно изучить перечисленное, крайне индивидуальны. Кроме того, зависят от того, сколько времени вы сможете уделять обучению. Но не стоит зацикливаться на том, сколько часов вы потратили на обучение. Хоть корреляция между затраченным временем и прогрессом, очевидно, существует, потраченное время — не всегда лучшее мерило прогресса. Точно также, не зацикливайтесь слишком сильно над предоставленным списком. Если вам кажется, что вы готовы искать работу немного раньше, чем предполагалось — стоит начать рассылать резюме.

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

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll to Top