Автор: Дмитрий Колесников
Обновлено 3 декабря 2021
Web-программист – это специалист, разрабатывающий веб-приложения (любые сайты, в которых есть элементы интерактива), то есть фактически большую часть интернет-ресурсов: поисковики, интернет-магазины, соцсети, видеохостинги, сервисы заказа и бронирования, онлайн-калькуляторы и т. д. Современные веб-приложения, как правило, клиент-серверные. Клиентскую часть разрабатывает фронтенд-программист, а серверную – бэкенд разработчик. Специалисты, способные выполнять обе эти роли, называются фуллстек-программистами. Кстати, в 2022 году центр профориентации ПрофГид разработал точный тест на профориентацию. Он сам расскажет вам, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Какие web-программисты бывают
Один человек не может быть профессионалом во всем, поэтому программисты в web-сфере специализируются на узких направлениях:
- frontend (клиентская часть) разработчики;
- backend (серверная часть) разработчики;
- fullstack-разработчики.
Frontend-разработчики занимаются отображением информации в браузере. Это те люди, которые работают в связке с дизайнерами и отвечают за корректность макета, плавность анимации, инфографику на сайте – за все, что видят пользователи, за frontend-часть (сторону) продукта. А она взаимодействует с браузером и использует его для выполнения определенных задач. Технологии (языки), которые понимает браузер, – это HTML, CSS и JavaScript. Все это надо знать web-программисту, работающему с frontend-частью. Если у вас «поплыл» текст или кнопка «убегает» от вас при наведении, знайте, что во всем виноват фронтендер.
Фронтенд-программист разрабатывает визуальное представление, с которым взаимодействует пользователь (вебсайт). Как правило, он работает с языком JavaScript или TypeScript (надстройка над JS). Есть и другие языки для фронтенда, но код, написанный на них, все равно интерпретируется в JavaScript, так как только он способен исполняться в веб-браузерах. Также фронтендер обязан знать CSS и HTML и как минимум один из популярных сейчас фреймворков – React, Vue или Angular.
Георгий Андрончик
Fullstack-программист и архитектор ПО
С чего все начиналось
Изначально веб-сайты оставляли желать лучшего: интерфейс невзрачен, инструментов для работы по пальцам пересчитать, а языки программирования плохо адаптированы под сетевой кодинг. Однако разработчики понимали: за интернетом будущее, и сейчас именно они в ответе за интеграцию технологий в массовую культуру.
В девяностые специалисты начали активно развивать веб-программирование. Появились JavaScript, Flash и каскадная разметка страниц (CSS), а полноценный браузер Mosaic показал, как с ними работать. Несмотря на большой прогресс, основной код писался на разных языках: C, C++, Perl. Несложно представить, какая получалась неразбериха из-за отсутствия единого синтаксиса.
Но вскоре появился PHP. Этот язык был нацелен на серверную часть разработки и помогал превращать статичные HTML-страницы в динамические. Теперь пользователь видел не просто текст, а привлекательные скрипты и красивые анимации без долгих загрузок.
Из перспективной технологии сайтостроение перешло в мощный продающий инструмент. Крупные компании сразу заметили потенциал: собственный ресурс добавлял статусности, популярности и собирал людей из разных уголков страны. Личный сайт хотели многие компании мира, и веб-разработка стала полноценной профессией с достойной оплатой труда.
Требования к web-программистам
Уровень сложности у программного продукта бывает разный. Это как в строительстве: можно строить загородную дачу, а можно возводить небоскребы. Так же и в разработке: условно в «Яндексе» требования к техническим знаниям значительно выше, чем для обслуживания сайта какого-нибудь местного завода. Соответственно, требования к web-программистам разные.
В целом в обязанности web-программиста входит разработка нового функционала и поддержка существующего. Если более детально, то:
- декомпозиция задач на подзадачи;
- оценка сроков реализации;
- проработка дизайна (не для бэкенда);
- написание кода;
- создание backup’ов – резервных копий (если нет сисадмина);
- устранение ошибок;
- обеспечение отказоустойчивости (способности системы сохранять работоспособность, даже если отказала одна или несколько из ее составляющих).
Соответственно, главное требование к web-программисту заключатся в том, что он должен обладать знаниями и навыками, нужными для того, чтобы справляться со своими прямыми обязанностями. В этом ему помогут такие личные качества, как:
- усидчивость;
- внимательность;
- хорошая память;
- способность выдерживать серьезные умственные нагрузки;
- умение слаженно работать в команде;
- желание и способность постоянно учиться.
К наличию высшего технического образования работодатели относятся по-разному, так как многие понимают, что в профессии web-программиста большую роль играет не наличие диплома, а навыки программирования и способность быстро осваивать новое.
Процесс веб-разработки
Прошло много лет с момента появления фундаментальных истин веб-программирования. Теперь PHP постепенно уходит в забвение, уступая место Java, JavaScript и Python. Браузеры имеют единые стандарты, и разработка больше не превращается в сущий кошмар.
Появились контейнерные технологии Kubernetes, на передовую вышел Linux с огромной библиотекой открытого программного обеспечения. Базы данных превратились в полноценные хранилища быстрого доступа, а скрипты преобразовались в сложные, но красивые интерактивные элементы.
Появилось множество инструментов и сред для написания кода, а проводить тестирование стало намного проще. И профессия не стоит на месте: по ходу работы специалисты осваивают новые языки (массовое помешательство на ), оптимизируют процессы и учатся универсализму. Означает ли это, что сегодня стать веб-разработчиком проще, чем десять лет назад? И да, и нет.
Где нужны web-программисты
- Корпорации, холдинги, компании-гиганты.
Сложные программные продукты крупных компаний называются enterprise-решения. В таких проектах существует своя культура кода, свои правила разработки продукта и очень четкие разделения ответственности (front/back). Очень важная составляющая – работа в команде и следования инструкциями/сроками. Обычно сложность программного продукта значительно выше средней по рынку, соответственно, требования к программисту выше. Работодатели требуют от программистов релевантный опыт, поэтому среднестатистическому web-мастеру не просто будет попасть в enterprise. Неудобства и сложность в большинстве случаев окупаются заработной платой.
- Крупный и средний бизнес.
Существуют бизнесы, которым нужна автоматизация или web-сайт. В зависимости от требований и ресурсов создается web-отдел или нанимается web-разработчик. Это может быть как web-мастер, так и frontend- и backend-разработчики. Сложность очень зависит от проекта.
- Стартапы.
Startup – это молодой бизнес, который хочет продвинуть на рынке какую-то инновационную идею. В таких компаниях привлекают инвестиции и необходимо в кратчайшие сроки создать продукт. Web-программист может понадобиться как для реализации сайта компании, так и для создания web-продукта. Обычно в стартапах уютная атмосфера семьи, все друг друга знают, но в то же время есть что-то и от спортивной команды, когда каждый должен быть в форме.
- Веб-студии.
Web-студии нацелены на создание сайтов для физических лиц и для разного уровня бизнесов. В них работают профессионалы, которые заточены под быструю и качественную разработку сайта. Так как web-сайты с каждым годом становятся все сложнее, теперь в студиях есть не только web-мастера, но и узкие специалисты – frontend/backend-разработчики.
- Аутсорсинговые компании.
Outsource-компаниям тоже нужны web-программисты. Такие организации предоставляют своих специалистов для работы с проектами. Своего рода агентство для программистов. Проекты подбирают под ваш уровень.
- Интернет-площадки поиска исполнителей заказов (биржи).
Freelance – это когда web-программист работает на себя и волен выбирать проекты, которые предлагают на бирже. Фрилансером может быть web-мастер, который обслуживает физических лиц и небольшие компании, и frontend/backend/fullstack-программист, работающий на enterprise-компанию.
В зависимости от выбранного вами стека технологий будут доступны разные типы компаний и проектов. В особенности если говорить про бэкенд. К примеру, Java и C# в большинстве своем применяются на больших долгоиграющих проектах (таких, как банковское ПО или сотовые операторы), а Python чаще всего используется в проектах, связанных с обработкой и анализом данных и нейросетями.
Георгий Андрончик
Fullstack-программист и архитектор ПО
Место работы
Программисты требуются в разных отраслях, начинающему специалисту будет нетрудно получить перспективную должность. Мы посмотрели на сайтах с вакансиями, в какие компании требуются веб-разработчики:
- IT (Kaspersky, Яндекс, Mail и др.).
- Банки (ВТБ, МКБ, ОТП и др.).
- Провайдеры (Билайн, МТС, Ростелеком и др.).
- Маркетплейсы (Lamoda, Wildberries, Ozon и др.).
- Разработка ПО (1С, Битрикс24, СКБ Контур и др.).
- Веб-студии (студия Лебедева).
- Онлайн-образование (Skyeng, GeekBrains, Novakid и др.).
- Услуги (Яндекс.Такси, Delivery Club, Сбермаркет и др.).
- Ритейл (Пятерочка, Перекресток и др.).
- Государственные учреждения.
Веб-разработчик – одна из немногих профессий, подходящих для фриланса. При желании вы можете работать дистанционно на себя: сотрудничать с постоянными заказчиками, находить заказы на российских и англоязычных биржах. Но стоит иметь в виду, что работодатели платят не только оклад, но и премии, бонусы, поэтому у программистов с официальным трудоустройством обычно доход выше.
У нас уже есть статья в блоге том, сколько зарабатывают веб-программисты.
Плюсы и минусы профессии
Плюсы:
- востребованность на рынке труда;
- творческая работа, так как каждая задача уникальна, и для ее решения существует несколько способов;
- возможность совмещения с учебой;
- не всегда требуется диплом;
- возможность стать специалистом в молодом возрасте;
- свобода в принятии решений (как решать ту или иную задачу, решает сам web-программист);
- возможность удаленной работы.
Еще плюсы профессии web-разработчика: работа в одной из наиболее перспективных отраслей современности; возможность работать с заказчиками и работодателями со всего мира; высокий доход; нет ограничения в профессиональном развитии.
Георгий Андрончик
Fullstack-программист и архитектор ПО
Минусы:
- ненормированный рабочий день;
- сидячая работа;
- большая нагрузка на зрение, что может привести к его ухудшению;
- иногда приходится работать «в стол» и переделывать, так как требования меняются на ходу;
- необходимо постоянно обучаться, потому что все быстро устаревает – это минус только для тех, кто не любит учиться.
К минусам я бы отнес то, что мало общения (но это не для всех минус), и специфику работы – она такова, что постоянно находишься в своих мыслях, а это деформирует личность, и со временем сложнее находиться в моменте.
Георгий Андрончик
Fullstack-программист и архитектор ПО