Что должен знать начинающий разработчик Frontend, чтобы получить первую работу? Какие требования выставляют компании для сотрудников? В чем отличие Junior, Middle, Senior разработчиков.
Первую очередь давайте разберем, что такое Веб приложение, из каких частей оно состоит. Как правило, любое Веб приложение либо веб-сайт состоит из двух частей: это back и frond. Фронтенд разработка – это клиентская сторона в приложении, все что вы видите в браузере и чем взаимодействует пользователь. Также есть backend или серверная часть разработки, где данные сохраняются, обновляются, обрабатываются и отправляются во front-end, то есть браузер.
Давайте на примере разберем, как работает Frontend. Вы открываете браузер, входите в поисковую систему Google, вводите какой-то запрос, идет запрос на сервер, обращается в базу данных, в базе данных вытягиваются данная информация по вашему запросу и отображается в поиске. Важно понимать, как front-end и back-end части приложения взаимодействует друг с другом.
Соответственно, Фронтенд разработчик – это профессионал, ответственный за разработку и реализацию интерфейса среды. Программист подготавливают почву для взаимодействия пользователей с веб сайтом.
Для многих, кажется, что именно профессия Frontend разработчика является самой простой для входа в сферу IT.
Основа любого веб приложения начинается с освоения HTML и CSS. Это такого, как фундамент, когда вы только начинаете свой путь как фронт разработчика.
Обязанности фронтэнд разработчика
К обязанностям можно отнести следующие пункты:
- На базе дизайн-макетов создавать HTML-страницы (верстка с HTML и CSS).
- Создавать одностраничные приложения.
- Необходимо поддерживать должный уровень UI и UX, то есть пользовательского интерфейса и опыта использования.
- Также в обязанности входит обеспечивать привязку скриптов в интерфейсу, для обеспечения анимации страниц на сайте.
Что должен уметь?
Если вы приходите в компанию, как неопытный Junior девелопер, вряд ли вам дадут что-то писать с нуля. Вероятнее всего, вам дадут фиксить баги, которые связаны с функционалом и, которые связаны со стилями.
Также джуну могут доверить задачи по воссозданию похожего функционала. К примеру, у вас есть каталог товаров одежды. И вам нужно будет создать еще один раздел. Скорее всего, вы не будете писать функционал с нуля, а будет готовый код, который вы просто скопипастите или сделаете по аналогии.
И, конечно же, верстка. У вас есть макет, и вы должны будете по нему сверстать страницу или ее часть.
Unit/End-To-End Testing. Перед разработчиком также может стоять задача по написанию Unit или End-To-End тестов. Скорее это будет именно Unit. Джунам могут дать задачу, к примеру, покрыть весь код тестами или переписать тесты.
Преимущества и недостатки профессии
Начнем с положительных моментов:
- Frontend разработка это не только востребованная специальность, но и достаточно высокооплачиваемая.
- Вы никогда не останетесь без работы, фронтендер это тот специалист, который необходим компаниям, представленным в сети. А сейчас каждый уважающий себя предприниматель понимает насколько важно быть в интернете. Много сайтов = много работы.
- Вы сразу видите результат, что позволяет сразу подставлять моковые данные. Что это? Это конкретня фиктивная реализация интерфейса.
- Вы можете принять участие в каким-нибудь стартапе, и реализовать себе в интересном проекте. Создать собственный блог или развиваться в интересующем вас направлении. Что делает профессию достаточно многогранной.
Из недостатков можно выделить:
- Отсутствие точных обязанностей. Не всегда начальство понимает, что именно может и должен делать фронтэндер.
- Работа с огромным количеством людей, что иногда напрягает и уменьшает эффективность работы.
- Высокие требования. Если 20 лет назад от Джуниора было достаточно навыков построения сайтов, а также знания по HTML, сейчас же требования намного возросли. HTML/CSS, responsive и adaptive, LESS, SASS, Stylus, PostCSS, JavaScript, совершенное владение React и Redux, навык письма на TypeScript, Node.js – это далеко не полный список того, чем должен владеть фронт web development. Так как конкуренции среди новичков хоть отбавляй.
Что должен знать разработчик?
Сейчас есть достаточно много различной статистики по поводу того, какие технологии сейчас востребованы, и какие инструменты популярны среди разработчиков. Но такие подборки не дают понимание, какие именно требования выставляются для Junior Front энд разработчиков. Что именно хотят от соискателей. И самое главное, чтобы эти подборки были актуальны именно для нашего рынка, потому что на западном рынке картина совсем другая. Давайте же разберемся что нужно знать junior front-end developer в 2022 году.
HTML/CSS. Если просмотреть сайты вакансий, то первое место занимает требование – знание HTML/CSS. При этом работодатель изначально подразумевает, что вы знаете, что такое responsive, адаптивная верстка, то есть вы сможете сделать сайт, который будет работать под различные разрешения на различных устройствах.
JavaScript. Второе главное требование – это, конечно же, JavaScript. От вас изначально требуется знание современного стандарта ES6+ и выше. Опять же, не стоит пугаться раньше времени. Многие работодатели хотят, чтобы у разработчика было понимание, как работать с Async code, умение работать с Promises. В эту же корзину уходит fetch API, то есть вы должны уметь сделать запрос на какой-то сервер, получить данные и обработать их.
Git. От начинающего разработчика хотят понимание, как работает эта система контроля версий. Знание каких-то базовых операций, как создать ветку, как закомитистья, как запушить эту ветку в удаленной репозитории, создать PR. Часть работодателей явно указывает, что работа с Git будет плюсом.
Framework. Среди всех фреймворков с большим отрывом лидирует React. Многие работодатели пишут, что готовы рассмотреть кандидатов с опытом работы на любом из фреймворков. Но потом, на проекте, придется все равно работать на React. Есть очень много вакансий на рынке с жестким требованиям конкретного фреймворка. Если вы видите такие жесткие требования, то на собеседовании стоит ожидать и конкретных вопросов именно поэтому фреймворку.
English. Из общей статистики примерно половина работодателей хотят, чтобы кандидат владел английским. У всех разные требования, конечно. Кто-то просто хочет, чтобы разработчик мог нормально читать документацию на английском, кто-то ищет такого кандидата, который сможет писать грамотные письма, а кому-то необходимо, чтобы разработчик мог подключиться к Zoom и объяснить на нормальном английском заказчику над чем он сейчас.
Также, разработчик должен знать, что такое Node.js, TypeScript, как мы упоминали выше, уметь писать тесты, знать за что отвечает Webpack, паттерные разработки и OOP, А также работать с GraphQL и REST.
В чем различие Junior, Middle, Senior Frontend Developer?
Стоит сразу отметить, если вы не умеете программировать, если вы бегаете к старшим товарищам с тем, чтобы каждую строчку подтвердить: «вот это как написать?», «а вот здесь как сделать?». И по большому счету, для того чтобы вы что-то написали осмысленно, над вами кто-то должен сидеть, вы не Junior разработчик. Максимум trainee, то есть стажер. Потому что, тот, кто это (самостоятельное написание кода) умеет, и может называться разработчиком, как Middle, Senior, так и Junior. Учтите это при поиске работы.
Чем занимается Junior разработчик на работе? Он реализует технически поставленную задачу. Это очень важный аспект. Задача для джуниора должна быть поставлена технически, то есть реализуй какой-то, класс реализую какую-то функциональность и так далее. Предполагается, что junior developer не строит архитектуру и не решает проблемы бизнеса.
Middle разработчик тоже пишет хороший код. Не хуже, чем junior. Предполагается, что лучше, но это вовсе даже необязательно. Есть очень много джунеров, которые пишут хороший код. Главное, что Middle разработчик уже умеет понять задачу, поставленную в терминах бизнеса.
Кто такой Senior Developer? Он умеет решать проблемы бизнеса, даже несформулированные. Senior front end умеет вести за собой. То есть, если он понимает, как и что нужно реализовать, он может объяснить более младшим коллегам, что именно нужно сделать. И собрать их в небольшую мини группу, для того чтобы реализовать конкретную функциональность.
Как стать Senior разработчиком? Вы должны понимать, что разграничения между уровнями разработчика очень сильно зависит от конкретной компании, как там принято, от того, какие есть ограничения и так далее. К примеру, вы в одной компании будете на уровне Senior разработчика, а совершив перевод к другой компании, можете стать Middle. При этом зарплата может не только сохраниться, а и стать выше.
Так, уровень «Синерности» очень сильно зависит от стажа самого разработчика. Несмотря на все ваши знания, несмотря на то, как вы хорошо работали, в вас практически ни в одной компании не назначит Senior, если у вас меньше трех лет стажа. В идеале – от 5 лет. Следует регулярно посещать Frontend conf для того, чтобы набираться опыта.
Как быстро можно обучиться разработке во Frontend?
Для тех, кому интересны очень примерные сроки: путь с нуля до крепкого джуна займет от полугода до года. Если вы очень далеки от этой темы, рассчитывайте на 1 год. Нам очень жаль, если вы рассчитывали стать программистом за месяц.
Вообще, начать писать простые скрипты можно даже раньше, чем за месяц. Но когда мы говорим о позиции крепкого джуна, мы имеем в виду уверенную верстку, хорошее знание JavaScript, React и всех тех вещей, которые мы перечислили выше. Это база. Без подобного набора знаний ходить по собеседованиям на фронтенд разработчика будет практически бессмысленно.
Сроки изучения зависят от индивидуальных качеств, от выбранного уровня погружения в тему, и, конечно же, от количества ежедневно выделяемого времени. Способности и индивидуальные качества мы контролировать не в силах. В степени дотошности погружения в тему нам лучше искать золотую середину, и избегать каких-либо крайностей. А вот про объем и частоту выделяемого времени мы можем поговорить намного больше.
Например, если заниматься каждый день, без каких-либо выходных, и тратить по одному часу в день или то же самое 7 часов в неделю на уроки, то он изучение чистого нативного JavaScript у вас уйдет от 3 до трех с половиной месяцев. Но, если заниматься не по одному часу, а по 4 часа в день, то на изучение языка уйдет от трех до четырех недель. То есть месяц, и это вместе с практикой.
Конечно, это прекрасное расписание, которое выглядит не очень реалистично. Особенно для тех, кто вынуждены работать, учиться. Плюс, нет абсолютно никаких гарантий, что получится выполнять ежедневный объем, регулярно, не пропуская ни одного дня. У всех свои обстоятельства, разное количество времени и желания. Поэтому и берётся приблизительное время изучения от полугода и выше. Иногда обучение может затянуться и на 2 года. Главное не забрасывать, а продолжать развиваться в этом направлении.