Рассказываем, как стать повелителем онлайн-платформ.
Каждый день мы взаимодействуем с сайтами и веб-приложениями: смотрим фильмы в онлайн-кинотеатрах, покупаем товары на маркетплейсах, общаемся в социальных сетях и проверяем почту. Все эти сервисы создают веб-разработчики. Они верстают страницы, прописывают серверную логику и заботятся о том, чтобы всё работало быстро и открывалось даже на самых старых гаджетах.
В этой статье рассказываем о том, как устроена веб-разработка, какие этапы она включает, какие технологии используют для создания популярных сервисов и как стать веб-разработчиком.
Что такое веб-разработка
Главная страница Skillbox Media «Код» — пример работы веб-разработчиков
Скриншот: Skillbox Media
В веб-разработке используют множество технологий и языков программирования, но чаще всего для клиентской части применяют HTML и CSS и JavaScript, а для серверной — Java и Python. С их помощью веб-разработчики верстают сайты, анимируют их и прописывают скрипты, которые обрабатывают нажатие кнопок на сайте и поведение пользователей.
В разработке сайтов принимают участие целые команды специалистов. Чтобы работать быстрее и не мешать друг другу, разработку разделяют на несколько этапов.
Виды веб-разработки
Веб-разработка — это большая область программирования, которая включает в себя несколько направлений. Разберём основные.
Бэкенд-разработка
Например, вы заходите на сайт интернет-магазина, добавляете товар в корзину и оплачиваете покупку. Именно бэкенд-разработчики отвечают за то, чтобы информация о товаре сохранилась, сумма списалась, а заказ отобразился у менеджера магазина.
Основные задачи бэкенд-разработчиков:
- создание серверной логики, которая обрабатывает действия пользователя на сайте;
- подключение и настройка баз данных, например MySQL или PostgreSQL;
- разработка API, с помощью которых сайт может передавать информацию другим сервисам, например платёжным системам.
Фронтенд-разработка
Основные задачи фронтенд-разработчиков:
- разработка пользовательского интерфейса, включая анимации, всплывающие окна и кнопки;
- адаптация сайта под экраны разных размеров — от телефона до компьютера;
- работа над производительностью, чтобы все анимации воспроизводились не только на мощных компьютерах, но и на слабеньких ноутбуках.
Подробнее о том, чем различается бэкенд- и фронтенд-разработка, рассказали в статье.
Фулстек-разработка
В больших компаниях за разработку фронтенда и бэкенда отвечают разные специалисты. Но в стартапах часто нет возможности нанимать много сотрудников, поэтому задачи бэкендера и фронтендера может выполнять один человек — фулстек-разработчик.
Вёрстка
В своей работе верстальщики обычно используют HTML, CSS и иногда JavaScript. Для некоторых проектов, например лендингов, вообще не нужен фронтенд-разработчик, и со всеми задачами может справиться верстальщик.
Веб-дизайн
Разработка PWA
Тестирование
Этапы веб-разработки
В создании сайта участвует много специалистов: разработчики, тестировщики, дизайнеры, маркетологи и менеджеры. Работу над проектом разделяют на несколько этапов, чтобы она проходила слаженно и без ошибок. Для удобного управления ходом разработки в компаниях используют специальные методики, например Agile или Waterfall.
Разберём основные этапы веб-разработки.
Планирование
В самом начале разработки менеджеры и маркетологи определяют цели проекта: кто будет им пользоваться, какую проблему он решает и какие функции надо реализовать для этого. Команда собирает требования клиента и формирует техническое задание. В нём описывают все детали проекта, включая пожелания к дизайну и технологии, которые планируется использовать.
Разработка дизайн-макета
После этого техническое задание получают дизайнеры. Они разрабатывают макет будущего веб-приложения. Чаще всего для этого используют Figma — облачный инструмент для совместной работы над дизайн-макетами. Также с помощью Figma можно создать прототип приложения и посмотреть, как оно будет работать.
Программирование
С помощью кода веб-разработчики «оживляют» дизайн-макет. Этот процесс состоит из двух этапов:
- Фронтенд-разработка — создание пользовательского интерфейса и реализация дизайн-макета с помощью кода. Обычно фронтенд-разработчики используют языки программирования JavaScript, TypeScript и фреймворки, например React, Angular или Vue.js.
- Бэкенд-разработка — разработка логики веб-приложения, включающая в себя работу с серверными скриптами и базой данных. Чаще всего для этого применяют языки программирования Python, Java или JavaScript.
Тестирование и запуск
Когда сайт готов, его тщательно проверяют: ищут ошибки, тестируют на разных устройствах и в разных браузерах. Всем этим занимаются тестировщики. Их задача — убедиться в том, что доступ к сайту могут получить все пользователи. Также тестировщики проверяют производительность веб-приложения. Если сайт долго загружается, то разработчикам придётся выяснить, что ему мешает.
Готовый и протестированный сайт развёртывают на веб-сервере и делают доступным для пользователей. Для автоматизации этого процесса используют CI/CD-платформы, например Jenkins или GitHub Actions.
Поддержка
Работу над сайтом продолжают и после запуска: добавляют новые страницы, устраняют баги и реализуют дополнительные функции. Поэтому команда проекта, включая разработчиков, дизайнеров и менеджеров, остаётся на связи с владельцами сайта.
На каких языках программирования пишут веб-приложения
Код даже простого веб-приложения строится на основе нескольких технологий. Вот какие языки программирования и фреймворки используют в популярных сервисах:
Сервис | Фронтенд | Бэкенд |
---|---|---|
JavaScript, TypeScript | C, C++, Go, Java, Python, JavaScript (Node.js) | |
YouTube | JavaScript, TypeScript | Python, C, C++, Java, Go |
Amazon | JavaScript | Java, C++, Perl |
Wikipedia | JavaScript | PHP |
X | JavaScript | C++, Java, Scala, Ruby (с фреймворком Ruby on Rails) |
eBay | JavaScript | Java, JavaScript, Scala |
JavaScript | Java, JavaScript, Scala | |
JavaScript | Python (с фреймворком Django), Erlang, Elixir | |
Netflix | JavaScript | Python, Java |
Подробнее о языках программирования в веб-разработке:
Как стать веб-разработчиком
Если вы загорелись идеей освоить веб-разработку, то определитесь, какое направление вам больше нравится: фронтенд или бэкенд. В будущем можно освоить оба направления и стать фулстек-разработчиком, но с чего-то всё равно надо начать.
Если хотите во фронтенд
Если больше нравится фронтенд, то начните с изучения HTML и CSS. Это поможет верстать страницы и создавать простые сайты, например лендинги. Больше практикуйтесь и постепенно переходите к изучению JavaScript или TypeScript. Знание одного из этих языков программирования поможет разрабатывать интерфейсы со сложной структурой и анимациями.
Помимо этого фронтенд-разработчику надо:
- Уметь работать с фреймворками. Сейчас мало кто использует чистый JavaScript в веб-разработке. Это долго и даёт меньше гибкости. Поэтому изучите один из популярных фреймворков для веб-разработки: React, Vue или Angular. Это поможет вам создавать проекты быстрее и стать ценнее в глазах работодателя.
- Знать основы хорошего дизайна. Вы работаете с визуальной частью сайта, поэтому важно понимать, как правильно располагать элементы и сочетать цвета. Быстро разобраться с основами веб-дизайна можно на бесплатном курсе от Envato Tuts+.
- Уметь работать с дизайнерскими инструментами. Часто веб-дизайнеры будут отдавать вам макеты в Figma, Adobe XD или Sketch. Поэтому стоит разобраться, как работать с этими инструментами. У freeCodeCamp есть большой курс по основам работы с Figma и UI-дизайну.
- Разбираться в адаптивной вёрстке. Задача фронтендера ― создавать сайты, которые корректно отображаются на всех устройствах и открываются во всех браузерах. Начать можно с изучения нашей статьи про инструменты Chrome DevTools.
- Уметь оптимизировать. Страницы сайта должны грузиться быстро, иначе пользователь заскучает и уйдёт. Научитесь работать с инструментами фреймворка, которые отвечают за оптимизацию производительности.
Если больше нравится бэкенд
Если вам больше нравится создавать сложные алгоритмы и высокопроизводительные скрипты, то обратите внимание на бэкенд-разработку. Начать стоит с выбора языка программирования. Проанализируйте вакансии в вашем городе и выясните, со знаниями какого языка чаще всего нанимают веб-разработчиков (обычно в топе находятся Python, Java и JavaScript). Да, конечно, разработчики из регионов могут устроиться удалённо в московские или петербургские компании — однако новичкам это сделать сложнее, чем опытным специалистам.
Изучите основы выбранного языка программирования и попробуйте создавать свои первые небольшие проекты. Главное — как можно чаще практиковаться, чтобы закреплять материал.
Также бэкенд-разработчику надо:
- Уметь работать с базами данных. В коде сложных веб-приложений практически всегда есть функции, которые получают данные из базы или записывают их туда. Научитесь работать с популярными системами управления базами данных.
- Знать REST API и GraphQL. Серверная и клиентская части веб-приложения «общаются» между собой с помощью специальных протоколов. Чаще всего используют REST API и GraphQL. С их помощью веб-разработчики связывают бэкенд и фронтенд.
- Работать с популярными фреймворками. В бэкенд-разработке тоже есть фреймворки, которые упрощают труд разработчиков. Например, с Python обычно используют Django или Flask, а стандарт для Java-разработчика — Spring.
- Знать основы защиты данных. Полезно знать основы кибербезопасности и разбираться в протоколах шифрования, например HTTPS. Так вы сможете создавать безопасные сайты и предотвратить кражу данных пользователей.
Также любой веб-разработчик должен уметь работать с системами контроля версий. Это поможет быстро обмениваться кодом с коллегами и отслеживать, как меняется проект. Самая популярная система контроля версий — Git.
Как искать работу
После изучения основ можно приступать к поиску работы. Это может быть как должность веб-разработчика в технологической компании, так и разработка сайтов на заказ. В будущем можно запустить собственную веб-студию и нанять команду.
Создайте портфолио
Самый важный шаг для новичка — практика. Создавайте небольшие проекты: персональный блог, калькулятор, онлайн-магазин с возможностью оплаты или трекер задач. Пробуйте реализовывать эти веб-приложения и собирать их в своём GitHub-профиле. Обычно на собеседованиях просят ссылку на GitHub, чтобы оценить, как вы пишете код.
Фронтенд-разработчики часто практикуются в копировании популярных сайтов. Например, откройте главную страницу Skillbox Media и попробуйте сверстать её, соблюдая оригинальный масштаб. Это упражнение тренирует насмотренность и в будущем поможет быстрее верстать макеты.
Ещё один хороший способ закрепить знания — взять небольшой заказ на фрилансе. Это даст вам навык общения с заказчиком, позволит создать реальный проект и научит планировать время работы над проектом. Заказы можно найти на популярных биржах фриланса, например «Хабр Фрилансе», FL или Kwork.
Занимайтесь нетворкингом
Посещайте мероприятия, посвящённые веб-разработке, например лекции, конференции или хакатоны. Там вы можете познакомиться с другими разработчиками и узнать о профессии изнутри.
Если возможности выбраться на живые встречи нет, общайтесь с комьюнити в телеграм-чатах. Чаты обычно создают школы, которые обучают разработке и веб-дизайну, а также диджитал-агентства или крупные блогеры. Там вы сможете получать ответы на свои вопросы и даже найти ментора, который поможет решать возникающие проблемы.
Если в процессе обучения у вас накопилось много опыта в какой-то из тем, то поделитесь им с сообществом, например опубликуйте статью на «Хабре». Важно, чтобы тема была интересной и уникальной. Не стоит писать статью о том, как создать простое веб-приложение на Java. Таких статей много, и ваша рискует потеряться в этом изобилии. А вот если, например, во время изучения Java вы обнаружили необычный способ обработки дат, о котором ещё никто не знает, — то об этом стоит написать статью.
Нетворкинг — это не только общение с интересными людьми, но и шанс найти хорошую работу. Если на вас обратит внимание HR компании или тимлид команды веб-разработки, то они могут предложить пройти собеседование.
MVP (minimum viable product) — версия приложения с базовым набором функций, которую разрабатывают, чтобы проверить спрос или показать инвесторам.