Одному человеку трудно совмещать в себе все роли и функции.
Веб-разработчики выбирают более узкие направления развития, а именно:
- Frontend-разработка (создание клиентской части)
Frontend-разработчики отвечают за то, как информация отображается в браузере. Они взаимодействуют с дизайнерами и воплощают в реальности их макеты, добавляют анимационные эффекты и некоторый интерактив — в общем, всё, что человек видит, просматривая сайт.
Фронтенд касается только браузера, но не сервера. К основным фронтенд-технологиям относятся JavaScript, HTML и CSS. Их и должен изучить начинающий фронтендер, чтобы уметь, например, поправить съехавший текст, убегающую при наведении кнопку, “битую” картинку.
- Backend-разработка (на стороне сервера)
Бэкендеры отвечают за логику, находящуюся “под капотом” и не видную конечному пользователю (например, аутентификацию на сайте, оптимизацию нагрузки на сервера, получение фронтендом запросов из базы данных).
Иногда бэкендерам приходится взаимодействовать с системными администраторами, чтобы обеспечить работоспособность сервера. Для серверного программирования используется довольно широкий набор языков общего назначения.
Пальма первенства по популярности среди них принадлежит PHP, а на enterprise-решениях обычно применяют Java, Ruby или Python. Их грозит потеснить Golang. Если при заполнении и отправке формы вы видите ошибку, её должен исправить бэкенд-программист.
- Fullstack-разработчики
Фулстек-программист занимается и фронтендом, и бэкендом — в общем, он мастер на все руки (а в маленьких компаниях нередко также выполняет обязанности дизайнера и сисадмина). Для краткости фулстеков обычно называют веб-мастерами.
Такой специалист может расширить свои скиллы, придя из бэкенда или фронтенда, или сразу учить всё понемногу, чтобы разбираться во всех аспектах веб-программирования. Фулстек-программист, развиваясь дальше, может дорасти до архитектора — это наиболее высокая позиция.