Как стать frontend-разработчиком с нуля
Должность верстальщика – первая ступень на пути к должности фронтенд-разработчика. Это самый распространенный вариант.
Но есть и другие пути – когда программист в начале своей карьеры знает, в какой области IT-сферы он хочет развиваться. Тогда начинающий специалист целенаправленно обучается ключевым навыкам, необходимым для выбранной профессии.
Какой бы вы путь ни выбрали, для начала составьте список техник, сервисов и инструментов, которые вам необходимо изучить для совершенствования.
Чтобы стать frontend-разработчиком с нуля, первым делом познакомьтесь с HTML-кодом и возьмитесь за изучение CSS.
Затем перейдите к главному инструменту фронтенд-специалиста – JavaScript. Вникните в суть работы с фреймворками и системами контроля версий. Разберитесь в серверных технологиях. Основы веб-дизайна, текстовые и графические редакторы станут для вас плюсом во время поиска работы.
А дальше оттачивайте свои навыки, пополняйте знания.
Можно заниматься саморазвитием, читать тематическую литературу. Список книг по frontend-разработке есть на нашем блоге.
Более быстрый способ узнать все тонкости профессии – обзавестись наставником. Найти его можно на онлайн-курсах.
Где учиться
Все курсы, перечисленные в блоке ниже, направлены на введение в профессию frontend-developer. Опытные преподаватели дадут комплексные знания о том, какими технологиями необходимо владеть любому специалисту в этой области. Ученики научатся верстать веб-ресурсы, создавать интерфейсы и соберут внушительное портфолио.
По завершении обучения вам выдадут сертификат и помогут составить резюме.
Обучение проходит в онлайн-формате, и ученики могут заниматься из любого города. Преподаватели обеспечивают обратную связь, им можно задавать вопросы. Есть практическая часть.
Вот несколько хороших курсов:
- Профессия Frontend-разработчик
- Frontend-разработчик с нуля
- React: библиотека фронтенд-разработки №1
- Специализация Frontend-разработчик
- Frontend-разработчик
- Профессия “Фронтенд-разработчик”
Узнать подробности и ознакомиться с полным перечнем курсов по frontend-разработке можно на нашем блоге.
Где работать
Frontend-developer требуются на предприятия, создающие софт для бизнеса, в IT-компании по разработке сайтов, мобильных и веб-приложений, web-студии, стартапы, агентства аутсорсинга.
Карьерная лестница начинается с пункта “стажер”. Работа позволит набраться опыта и узнать на практике, что такое фронтенд-разработка.
Вакансии можно найти на профильных IT-ресурсах или на популярном сервисе по поиску работы hh.ru.
Если вам достаточно подработки или вы еще совсем “зеленый”, найти работу и испытать себя можно на биржах фриланса. Есть международные сервисы, например, Upwork, Freelancer, Joomlancers, Gigster, Codeable и YouTeam. А есть русскоязычные: Kwork, FL, Freelance.
Биржи помогут начинающим программистам набить руку, собрать портфолио и научиться работать с заказчиками.
У опытного специалиста есть три варианта совершенствования в работе:
- Вертикальный – рост по карьерной лестнице, постепенное завоевание новых должностей.
- Горизонтальный – непрерывное совершенствование своих навыков, что приводит к повышению цены за свои услуги.
- Диверсификационный – обретение новых навыков, смежных специальности фронтенд-разработчик, и последующая переквалификация. Так часто frontend-developer превращается в backend-разработчика.
Кому подходит?
Усидчивостью и вниманием. Терпеливостью и способностью понять заказчика, который не разбирается в создании сайтов
Психологической устойчивостью (особенно при возникновении ошибок в работе ресурса). Способностью переносить умственные перегрузки. Широтой мышления и креативностью. Коммуникабельностью (работа в коллективе и общение с заказчиками).
- Высокая востребованность опытных специалистов.
- Возможность совмещения с обучением.
- Возможность самостоятельного обучения.
- Возможность работать удаленно.
- Свобода в принятии решений о способах реализации поставленной задачи.
- Обычно не требуется диплом ВУЗа.
- Ненормированный график.
- Постоянное самообразование.
- В небольших проектах веб-разработчик совмещает функции нескольких специалистов.
Стоит ли сегодня идти в профессию
Чтобы полностью оценить данное направление, выделим преимущества и недостатки специальности. К плюсам можно отнести:
- Относительно легкий вход в профессию. Новичкам в программировании можно начинать как раз с фронтенд-разработки. Здесь не требуется слишком глубоких знаний программного кода, как в аналогичных направлениях.
- Возможность карьерного роста. Этот пункт вытекает из предыдущего. Если фронтендщик – хороший вариант для старта, само собой разумеется, что ему есть куда расти.
- Достойный уровень заработной платы. Особенно при удаленной работе или сотрудничестве с иностранными работодателями.
- Возможность выбирать для себя режим работы: полный рабочий день штатного сотрудника, удаленка или фриланс.
А теперь остановимся на недостатках (куда же без них):
Постоянное обучение и освоение новых технологий
Для Frontend-разработчика это особенно важно. Необходимость знать английский язык
Нет четких границ должностных обязанностей. Непонятно, где заканчивается зона ответственности верстальщика и начинается область разработки.
Frontend-разработчик – ответ тем, кто считает, что программирование скучное, и в нем нет места для полета мысли и фантазии. Это очень творческая профессия, сопряженная с большими умственными нагрузками. Реализоваться в ней сможет далеко не каждый, но если есть желание и мотивация, шанс тоже есть.
Профессиональные умения и навыки frontend-разработчика
Следующие восемь действий составляют универсальный алгоритм становления frontend-программистом с нуля, а также дан перечень знаний, необходимых для входа в профессию.
- Изучить связку HTML (язык гипертекстовой разметки веб-страниц) и CSS (каскадные таблицы стилей). Они отвечают за то, как на странице будут выглядеть разнообразные элементы (те же кнопки или шрифты).
- Изучить основной язык программирования JavaScript (минимум для frontend-программиста). На нем написаны различные библиотеки готовых скриптов (программ). Крайне рекомендуется их изучить, чтобы успешно пользоваться и делать свою работу быстрее (одна из таких библиотек – всем известная jQuery).
- Знать одну из методологий верстки – например, БЭМ от Яндекса (блок-элемент-модификатор). С помощью методологии можно создавать приложения, чтобы быстро понять чужой код. Или свой собственный, спустя некоторое время.
- Знать, как работать с фреймворками (например, всем известный Bootstrap). Фреймворк представляет собой набор готовых решений, на основе которых можно быстрее разрабатывать сайты, чем если создавать код с нуля.
- Владеть кросс-браузерной версткой и овладеть созданием страниц, которые будут одинаково эффективно отображаться и функционировать в разных браузерах (Opera, Firefox, Яндекс Браузер, Safari и т.п.).
- Знать принципы адаптивного дизайна, т.е. того, который «растягивается» или «ужимается» в нужные разрешения. Так можно гарантировать, что сайт будет адекватно отображаться на разных устройствах (стационарный компьютер, ноутбук, планшет и смартфон).
- В качестве дополнительного навыка весьма подойдет владение языками серверного программирования, хотя бы на начальном уровне (наиболее популярный язык программирования здесь – PHP).
- Изучить принцип работы Git и знать, как эффективно работать с системами контроля версий.
Что нужно знать начинающему front-end разработчику
На сегодняшний день услуги специалистов по созданию пользовательского интерфейса весьма востребованы и хорошо оплачиваются. Однако есть и существенные недостатки. В частности, здесь отсутствует четкое описание того, что входит в профессиональные обязанности, а что не входит. По этой причине каждый руководитель может самостоятельно определять и оценивать круг деятельности. Иногда это может стать проблемой, поскольку могут потребоваться знания и навыки, которыми фронт-энд разработчика не обладает.
Вторым, не менее отталкивающим фактом является то, что специалист зависим от огромного количества различных людей, будь то разработчики программно-административной части web-приложения, дизайнеры или аналитики. С каждым из них ему необходимо согласовывать этапы и непосредственно процесс работы, участвовать в обсуждениях для поиска оптимального варианта и т. д. Как правило, местом работы для него служат крупные компании и агентства по разработке созданию веб-ресурсов, клиент-серверных приложений и мобильных клиентов.
Также начинающий front-end разработчик должен знать, где именно он может получить соответствующие знания и образование, подкрепленное дипломом. Во-первых, он может поступить в Международный учебный центр IT-образования «Компьютерная академия Шаг». Здесь только очное отделение, а выпускники получают соответствующие сертификаты и международный диплом. На сегодняшний день филиалы академии представлены в шестнадцати странах мира. Во-вторых, можно пройти онлайн-курсы в Образовательном IT-портале GeekBrains. За шестинедельный курс здесь можно пройти стажировку.
Стоит отметить, что в данных учебных заведениях человек может получить только базовое образование, а чтобы стать настоящим профессионалом, необходимо заниматься самообразованием, параллельно подкрепляя полученные знания и навыки практикой.
Frontend языки
Список популярных языков, которые регулярно используются в сфере разработки интерфейсов, включает в себя:
- JavaScript: с его структурами и библиотеками, это ядро разработки в интерфейсе и за его пределами. Это первый клиентский язык, который по-прежнему является самым вездесущим сценарием на клиентской стороне в Интернете.
- HTML5: HTML диктует организацию и контент сайта, все взаимодействие, так что это то, что должен знать каждый frontend разработчик. Элементы HTML могут аннотировать нижние колонтитулы, заголовки, как отображаются тексты, как появляются медиа и изображения, и многое другое.
- CSS3: последний стандарт для каскадных таблиц стилей (CSS). CSS3 разбит на модули и содержит код для каждого графического элемента — от фона до шрифта — который составляет внешний вид веб-сайта.
- Также полезно: предварительный компилятор CSS, такой как Sass или LESS
- AJAX: JavaScript + XML, он позволяет обновлять определенные части сайта без обновления полной страницы путем асинхронного подключения к базе данных и вытягивания блоков данных на основе XML.
Сколько получают
Зарплаты фронтенд-разработчика находятся в диапазоне 70–100 тыс. рублей в среднем по России и 100–115 тысяч – по Москве. Точные суммы зависят от квалификации специалиста и уровня оплаты труда в компании. В некоторых случаях фронтендеру предлагаются оклады более 200 тыс. рублей
Нередко при отсутствии стажа и солидного портфолио/резюме работодатели обращают внимание на академический бэкграунд кандидата – какой именно вуз он окончил. Выпускники МФТИ могут рассчитывать на стартовую зарплату около 135 тысяч, а претенденту на ту же позицию, но уже с дипломом Казанского университета, вероятнее всего, предложат примерно 75–80 тысяч
Эксперимент 4
Последний эксперимент для отработки выученных правил. Иногда последствия передовых практик не всегда очевидны до тех пор, пока они не применяются для большого проекта.
В качестве последнего эксперимента создайте собственный сайт-портфолио. Для фронтенд-разработчика портфолио—самый важный актив. Сайт-портфолио предназначен для демонстрации ваших работ
Что еще более важно, это постоянно обновляющийся отчет вашего прогресса в разработке. Поэтому создавайте портфолио даже если у вас 1–2 работы
ShiftBrain Studio
Для начала прочитайте статью от Adham Dannaway Мой (простой) процесс дизайна и разработки сайта-портфолио (англ.).
Если первый вариант вашего портфолио не идеален — это нормально! Портфолио пройдет через множество итераций (рус.)
В первую очередь важно использовать при разработке все ваши навыки
Будьте в курсе
До тех пор, пока HTML и CSS не выйдут из употребления, важно оставаться в курсе всех событий в области фронтенда. Мир фронтенда все время изменяется
Мир фронтенда все время изменяется
Ниже приведен список сайтов, блогов и форумов, которые являются передовыми источниками информации.
Перспективы в профессии
Веб — перспективная отрасль для роста: профессионального и финансового. Даже новички могут претендовать на достойную зарплату. По состоянию на 26 апреля 2021 года на HeadHunter опубликовано 183 вакансии для фронтендеров без опыта работы. В 58-и из них предлагают от 65 000 рублей в месяц. Есть и более высокооплачиваемая работа. Специалист с опытом 3-6 лет может получать 300 000 — 400 000 рублей в месяц.
Как развиваться начинающему разработчику? Становиться узким специалистом или специалистом широкого профиля. Первый вариант предполагает, что вы будете расти как фронтендер, пополнять свои знания, набираться опыта и из джуниора превращаться сначала в мидла, а потом в сеньора. Деление это, конечно, условное. Категория во многом зависит от задач и компании, в которой трудится разработчик.
Что должен уметь джуниор? Ему понадобятся отличные знания HTML и CSS, а также уверенное владение JavaScript и знакомство с одним из его фреймворков.
Мидл — специалист с опытом работы не менее года. Он свободно пользуется фреймворками, может написать код, требующий меньших вычислительных мощностей. Понимает работу команды в целом, готов делать собственные предложения по проекту. Как правило, обучением новичков тоже занимается он.
Сеньор мастерски владеет всеми инструментами, при этом он сосредоточен не столько на деталях, сколько на проекте в целом, его планировании и реализации. Он распределяет работу, следит за качеством ее исполнения.
Доход фронтендера, выбравшего «узкий» путь развития, растет в соответствии с категориями.
Путь «широкого» специалиста предполагает, что фронт-разработчик, освоив базовые инструменты своей профессии, переходит к изучению бэкенд-технологий. Таким образом он расширяет круг задач, которые может выполнять. В перспективе фронтендер превращается в фулстэка.
В чем преимущества? В более полном понимании всех процессов и возможности самому создать сайт от и до. В чем минусы? Широта познаний порой исключает их глубину. Вы можете овладеть множеством инструментов, но не будете управлять в совершенстве ни одним из них. Это отразится в том числе на зарплате. Узкому специалисту доверят трудный, высокобюджетный проект с большей вероятностью, чем широкому. Чтобы стать дорогим фулстэкером, необходимо по-настоящему круто разбираться в нескольких технологиях.
Путь обучения
Время изучения: 1–2 часа
Необходимые условия
Ничего, кроме базовой компьютерной грамотности.
Как понять, что я могу двигаться дальше?
В этой части курса нет оценок, но обязательно убедитесь, что вы ничего здесь не пропустили — важно всё настроить и подготовиться к выполнению упражнений в дальнейшем
Основные руководства
- Установка базового программного обеспечения— базовая настройка инструмента (15 минут чтения)
- История всемирной сети и веб-стандартов (45 минут чтения)
- Обучение и получение помощи (45 минут чтения)
Время завершения: 35–50 часов
Необходимые условия
Ничего, кроме базовой компьютерной грамотности и базовой среды разработки веб-приложений.
Как понять, что я могу двигаться дальше?
Оценки в каждом модуле предназначены для проверки ваших знаний по предмету — завершение каждого из них докажет, что вы можете перейти к следующему модулю.
Основные модули
- Введение в HTML (15–20 часов чтения/упражнений)
- Мультимедиа и встраивание (15–20 часов чтения/упражнений)
- HTML таблицы (5–10 часов чтения/упражнений)
Время завершения: 90–120 часов
Необходимые условия
Рекомендуется иметь базовые знания HTML перед началом изучения CSS. Сначала вы должны изучить Введение в HTML.
Как понять, что я могу двигаться дальше?
Оценки в каждом модуле предназначены для проверки ваших знаний по предмету — завершение каждого из них докажет, что вы можете перейти к следующему модулю.
Основные модули
- Первые шаги в CSS (10–15 часов чтения/упражнений)
- Структурные элементы CSS (35–45 часов чтения/упражнений)
- Стилизирование текста (15–20 часов чтения/упражнений)
- CSS разметка (30–40 часов чтения/упражнений)
Книга рецептов CSS
Время завершения: 135–185 часов
Необходимые условия
Рекомендуется иметь базовые знания HTML перед началом изучения JavaScript. Сначала вы должны изучить Введение в HTML.
Как понять, что я могу двигаться дальше?
Оценки в каждом модуле предназначены для проверки ваших знаний по предмету — завершение каждого из них докажет, что вы можете перейти к следующему модулю.
Основные модули
- Первые шаги в JavaScript (30–40 часов чтения/упражнений)
- Структурные элементы Javascript (25–35 часов чтения/упражнений)
- Клиентский веб API (30–40 часов чтения/упражнений)
- Введение в объекты Javascript (25–35 часов чтения/упражнений)
- Асинхронный Javascript (25–35 часов чтения/упражнений)
Время завершения: 40–50 часов
Необходимые условия
Для эффективного использования форм требуется знание HTML, CSS и JavaScript. Они сложны и поэтому рассматриваются отдельно.
Как понять, что я могу двигаться дальше?
Упражнения и оценки в каждом модуле предназначены для проверки ваших знаний по предмету — завершение каждого из них докажет, что вы можете перейти к следующему модулю.
Основные модули
Веб формы (40–50 часов)
Время завершения: 60–75 часов
Необходимые условия
Рекомендуется ознакомиться с HTML, CSS и JavaScript перед началом работы с этим разделом — многие из техник и лучших практик используются в нескольких технологиях.
Как понять, что я могу двигаться дальше?
Упражнения и оценки в каждом модуле предназначены для проверки ваших знаний по предмету — завершение каждого из них докажет, что вы можете перейти к следующему модулю.
Основные модули
- Кросс-браузерное тестирование (25–30 часов чтения/упражнений)
- Доступность (20–25 часов чтения/упражнений)
Время завершения: 55–90 часов
Необходимые условия
Рекомендуется ознакомиться с HTML, CSS и JavaScript перед началом работы с этим разделом, так как обсуждаемые инструменты работают со многими из этих технологий.
Как понять, что я могу двигаться дальше?
В этом наборе модулей нет специальных статей для оценки, но учебные примеры в конце 2-го и 3-го модулей хорошо подготовят вас к пониманию основ современного инструментария.
Основные модули
- Git и Github (5 часов чтения)
- Понимание инструментов на стороне клиента (20–25 часов чтения/упражнений)
-
Понимание JavaScript-фреймворков для фронтенда (30-60 часов чтения/упражнений)
Базовые требования к профессионалу
Стажёр (Intern) | Младший (Junior) | Средний (Middle) | Старший (Senior) | Ведущий (Lead) |
---|---|---|---|---|
|
|
|
|
|
— | Git, БЭМ, адаптивная вёрстка, СУБД | +кроссбраузерная вёрстка | +управление разработкой, Ruby on Rails | + управление людьми, проектирование архитектуры приложения |
- Владение и понимание принципов веб-дизайна, UI/UX.
- Понимание потребностей разных групп пользователей, включая необходимость работы с Accessibility (доступность сайта для прочтения, понимания и взаимодействия лицами с ограниченными возможностями).
- Навыки мониторинга производительности и состояний сайта, наблюдения за трафиком.
- Понимание правил и проблем юзабилити, навыки быстрого исправления проблем.
- Навыки проектирования архитектуры веб-приложения.
- Тестирование сайтов на удобство использования, специальные возможности, необходимый дебаггинг.
- Профилирование, рефакторинг и оптимизация разработанных приложений.
Наиболее популярные веб-фреймворки по версии отчёта StackOverflow. Очень рекомендую перейти на страницу отчёта и просмотреть его весь, хотя бы по графикам, попереключать вкладки, — так вы получите целостную картину происходящего в мировом IT. Много инсайтов даже для продвинутого, опытного айтишника.
С чего начать и что читать? Чек-лист обучения
1. Как работает Веб
- How the Web Works: A Primer for Newcomers to Web Development or anyone really (FreeCodeCamp);
- Как работает Веб — Mozilla (MDN);
- Всё, что нужно знать про HTTP.
2. Среда разработки
- VSCode — бесплатный быстрый редактор с большим количеством дополнений для разработки;
- JetBrains WebStorm — полноценная IDE, есть пробный период и возможность получить доступ по студенческой лицензии;
- Если у вас возникает потребность отправить другому человеку фрагмент кода, быстро проверить или сохранить код в сети, можно воспользоваться онлайн-редактором, например, Codepen.
3. Основы HTML
- Руководство по HTML — Mozilla (MDN);
- Справочник по HTML, уроки по HTML и CSS — Webref;
- FreeCodeCamp — Learn to code at home — очень полезный источник для практического изучения HTML, CSS, JS и др. (пошаговые задачи в интерактивном режиме обучения);
- Введение в Chrome DevTools. Панель Elements для просмотра HTML-элементов сайта;
- Семантика (HTML5 Semantic Tags: What Are They and How To Use Them!, рус. перевод);
- Доступность (Writing HTML with accessibility in mind, рус. перевод).
4. CSS
- CSS и CSS3. Свойства для форматирования HTML элементов — Html5Book;
- Cascading Style Sheets (CSS) — Mozilla (MDN);
- Справочник по CSS — Webref;
- Инструменты разработчика Chrome DevTools для просмотра стилей;
- Вёрстка на Flexbox в CSS. Полный справочник (перевод и оригинал на CSS Tricks);
- 10 modern layouts in 1 line of CSS от Google;
- БЭМ Методология;
- БЭМ для начинающих. Очевидные и неочевидные вопросы верстки.
5. Система контроля версий Git
- Интерактивный тур по GIT для начинающих — GitHowTo;
- Github — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.
6. Язык программирования JavaScript
- Современный учебник JavaScript — отличный источник с множеством примеров;
- Серия книг «Вы не знаете JS» — подробный гид по основным механизмам языка (каждая книга подробно разбирает часть языка);
- Не забывайте про уже упомянутый FreeCodeCamp с задачками для практики JS;
- Онлайн-курс по JavaScript для начинающих в виде рассылки писем от Дэна Абрамова (разработчик из Facebook, создатель Redux и Create React App);
- Chrome Dev Tools. Отладка JavaScript кода.
11. Препроцессоры CSS
- Sass (SCSS);
- Stylus;
- Less.
- Модульность. Вы сможете создавать CSS-код в разных файлах и импортировать стили при необходимости.
- Вложенность. Вкладывайте селекторы друг в друга для компактности и логичной структуры кода. Это улучшит читабельность и уменьшит дублирование (будет особенно удобно, если вы станете использовать BEM-методологию для написания CSS).
- Использование CSS-переменных и функций (миксинов).
- Вы можете выбрать препроцессор с удобным для вас синтаксисом (например, CSS-код без фигурных скобок и точек с запятой).
PostCSS
стандарт компании Airbnb
- Prettier;
- ESLint;
- EditorConfig;
- Husky.
14. Изучение фреймворка/UI-библиотеки
официальной документацииModern React and Reduxпроверка типов с помощью PropTypesJSDocцикл статейReduxпереводомGetting Started with Reduxдокументация
16. Углубленное
- Как браузеры рендерят сайт (Ryan Seddon: So how does the browser actually render a website | JSConf EU 2015);
- Как работают браузеры — Html5Rocks;
- Филипп Робертс: Что за чертовщина такая event loop? | JSConf EU 2014;
- CSS-модули (статья Glen Maddern);
- Оптимизация производительности фронтенда;
- Вводный курс по VSCode для JS разработчиков (Владилен Минин);
- Руководство для начинающих по HTTP и REST;
- Что такое CORS;
- Паттерны проектирования (книга Javascript Design Patterns);
- Progressive Web Applications;
- Redux-Saga для продвинутого управления состоянием React-приложения.
Часто задаваемые вопросы для фронтенд-разработчиков
В чём разница между веб-дизайнером и фронтенд-разработчиком?
Хотя оба они озабочены конечным пользователем, они имеют разную направленность. Веб — дизайнер фокусируется на веб — дизайн или внешний вид. С другой стороны, интерфейсный веб-разработчик больше озабочен функциональностью веб-сайта.
Получают ли фронтенд-разработчики больше, чем бэкенд-разработчики?
Да, в среднем. Однако в обеих сферах зарплата примерно одинакова. Средняя зарплата фронтенд-разработчиков составляет 76000 долларов в год. Между тем, серверные разработчики зарабатывают 75 000 долларов в год.
Какой язык лучше всего подходит для фронтенд-разработки?
JavaScript лежит в основе фронтенд-разработки. Более того, это один из самых простых и универсальных языков программирования. Другие языки для начинающих HTML и CSS также идут рука об руку с JavaScript.