«Чтобы быть востребованным, нужно освоить фреймворк»
Senior Software Engineer в Allset — о том, как и зачем изучать frontend.
По данным Stackoverflow, фронтенд входит в тройку самых востребованных IT-специальностей — выше спрос только на бэкендеров и тех, кто освоил full-stack.
Преподаватель курса «Основы frontend-разработки: HTML, CSS, JavaScript», Senior Software Engineer в Allset Владислав Бурденюк рассказывает, что такое фронтенд и с чего начать его изучение.
Разница между бэкендом и фронтендом
Бэкенд — это изнанка сайта/приложения: все, что скрыто от пользователя и находится на сервере.
Фронтенд, напротив, — то, что видит и с чем взаимодействует пользователь (сайт или приложение, включая кнопки и всплывающие окна).
Хороший пример работы фронтендеров — сайт сервиса бронирования Airbnb. Окна, где вы выбираете даты, а также страну и город, где будете останавливаться, фильтры, по которым можете определить параметры жилья, — это фронтенд.
Что должен уметь фронтенд-разработчик
Не люблю, когда говорят, что задача фронтенд-разработчика — передать в верстке то, что придумал дизайнер. С одной стороны, это действительно так. Но с другой, специалист по фронтенду должен также реализовывать пользовательскую логику — понимать, как построить приложение, разработать интерфейс и внедрить в него скрипты, как обращаться с серверной частью сайта и, конечно, как сверстать макет.
Чтобы выполнять эти задачи, нужно знать HTML (HyperText Markup Language), CSS (Cascading Style Sheets) и JavaScript.
HTML — язык текстовой разметки, необходимый для верстки. Это каркас, с которого следует начать изучение фронтенда, и затем подпитывать знания: круто, если разработчик знает разные методы постройки блоков на сайте.
CSS говорит браузеру, как отображать веб-элементы, и отвечает за стили. А JavaScript — это двигатель, который помогает всем составляющим сайта взаимодействовать между собой и с пользователем. JavaScript говорит, как реагировать на взаимодействия, используя язык программирования.
На чистом JavaScript уже никто не пишет, и чтобы быть востребованным, нужно обязательно освоить какой-то фреймворк. Какой — спорный вопрос. Мне кажется, что самый универсальный — React. Но по популярности его догоняет Vue — фреймворк с открытым исходным кодом. Также интересен Angular.
Самые популярные фреймворки
Я писал на React и Angular для коммерческих проектов. Считается, что порог входа в React ниже, потому что это библиотека для того, чтобы отрисовать элементы на странице. Больше у React ничего нет. Но ни одно приложение не будет полноценно работать без форм, без страниц с редиректами. Проблема React в том, что для любого дополнительного функционала, помимо рендинга элементов, нужно изучать дополнительные инструменты и библиотеки.
У Angular порог намного выше — придется сталкиваться и с запросами, и с формами, например. Но у этого фреймворка есть жесткий набор правил, как должен писаться код, и даже архитектура, как именно строить папки. Если придерживаться архитектуры, то молодым специалистам будет проще разобраться именно в Angular. Хотя в нем подключены более сложные вещи, например, реактивное программирование.
Есть мнение, что Angular лучше подходит для больших коммерческих продуктов, потому что его архитектуру проще поддерживать в долгосрочной перспективе.
Vue объединил лучшее — элементы свободы React и структурированность Angular, и стал очень популярным.
Стоит ли совмещать фронтенд и бэкенд
Совмещать фронтенд и бэкенд можно. Работодателю дешевле нанять full-stack, чем двух специалистов. Все зависит от уровня разработчика — я сам сейчас выполняю задачи как по бэк-, так и по фронтенду. Но на старте сложно разобраться даже с одной технологией, поэтому я не советую сразу изучать и бэкенд, и фронтенд.
Что читать и за кем следить фронтенд-разработчику
Советую Learn JavaScript — самый известный и понятный учебник.
Также стоит следить за отдельными людьми. Мне интересны Эдди Османи (Addу Osmany), Engineering Manager в Google, и Дэн Абрамов (Dan Abramov), который работал в Facebook. Еще полезно будет отслеживать тематические публикации в Twitter.
Когда я только начинал заниматься программированием, то читал, слушал и смотрел все, что было в открытом доступе. Если мне нравился лектор — находил его сайт, соцсети, подписывался на YouTube-канал. Сначала обращаешь внимание на большое количество людей, а потом выбираешь наиболее интересных для себя.