Разработка веб-приложений уже давно разделилась на frontend и backend, и отвечают за эти стороны, как правило, два разных программиста. А то и две команды программистов. При этом, кто такой backend-разработчик и чем он занимается, немногим известно. Формулировка «разрабатывает внутреннюю логику и архитектуру» мало о чём говорит.
Backend-разработчик: кто это?
Типичный пример работы backend-разработчика: представим любой интернет-магазин. Поле ввода покупок, красивая отрисовка анимации, удобная корзина – всё это frontend. Ну а правильная обработка запросов, хранение данных в СУБД, интеграция с платежной системой, обновления контента и его загрузка без задержек и подвисания – это backend.
Чем конкретно занимается бекэнд на рабочем месте:
-
Выстраивание внутренней архитектуры и логики сайта (веб-приложения);
-
Работа с базами данных, настройка и оптимизация СУБД;
-
Разработка алгоритмов приложения (как оно будет работать и какие функции выполнять в ответ на команды);
-
Взаимодействие приложения с другими программами и программными средами (API);
-
Интеграции с другими сервисами и приложениями;
-
Тестирование и отладка системы, устранение багов.
Что должен уметь backend-разработчик
Навыки любого IT-специалиста принято делить на hard skills и soft skills. Под первыми в широком смысле понимают его умения по технической части, под вторыми – способность коммуницировать и находить общий язык с коллегами и заказчиками.
Hard Skills
Пройдемся по техническим навыкам. Бекэнд должен уметь и знать:
-
Языки программирования. В первую очередь PHP, Python, C/C++, Ruby и другие. Нередко требуется знание JavaScript (хотя бы развертывание на Node.js);
-
Работу с базами данных, например, MySQL, PostgreSQL, MongoDB, Redis;
-
Фреймворки и алгоритмы;
-
Принципы работы Git и серверов;
-
Как функционируют сетевые протоколы TCP/IP, HTTP;
-
Администрирование UNIX или по крайней мере один из дистрибутивов Linux;
-
Как составлять техническое задание по спецификациям от заказчика.
Насущная необходимость для любого бекэнда – знание английского, не обязательно разговорного. Однако его должно быть достаточно, чтобы читать документацию.
Soft Skills
Что касается личностных качеств, требования просты. Нужно уметь общаться с коллегами:
-
Умение вести диалог, отстаивать свою точку зрения, задавать вопросы, признавать ошибки и не сваливать вину на других;
-
Стремление к самообучению, непрерывное освоение новых навыков;
-
Умение планировать и оптимизировать рабочий процесс, навыки тайм-менеджмента;
-
Здравая оценка собственных знаний и опыта, готовность слушать и учиться у старших коллег;
-
Чувство ответственности, умение работать на конечный результат;
-
Усидчивость, терпеливость и скрупулезность в работе.
Набор технологий, которыми должен владеть backend-разработчик по версии Хабр:
Стажёр (Intern) |
Младший (Junior) |
Средний (Middle) |
Старший (Senior) |
Ведущий (Lead) |
C++ C# Golang SQL .NET |
PHP Python Java Java spring framework PostgreSQL |
PHP Python Java PostgreSQL Java spring framework |
PHP Java Python PostgreSQL Java spring framework |
PHP Java MySQL PostgreSQL Высоконагруженные системы |
— |
+ ООП, фреймворки |
+ ООП, фреймворки, Docker |
+ высоконагруженные системы, ООП, фреймворки, Docker |
+ Linux, ООП, фреймворки, Docker |
Как выучиться на backend-разработчика
-
«Информационные системы и технологии» 09.03.02.
-
«Информатика и вычислительная техника» 09.03.01.
-
«Прикладная информатика» 09.03.03.
-
«Программная инженерия» 09.03.04.
-
«Системный анализ и управление» 27.03.03.
-
«Специальные организационно-технические системы» 27.05.01.
Плюс вузовской подготовки в системном подходе: специалист по итогу более полноценно владеет методиками вычислений. Кроме того, талантливых студентов могут уже на втором-третьем курсе пригласить на работу или хотя бы стажировку в крупную компанию. Кроме того, в среде backend ценятся математические навыки, а получить и прокачать их проще всего именно в вузе.
Минус в общем-то один и существенный: слишком много ненужных знаний и длительное обучение, плюс нередко невозможность совмещать полноценную работу с учебой.
Курсы для backend-разработчиков с нуля
В отличие от вузовской программы курсы обучения дают только конкретные навыки и компетенции. Какие конкретно, зависит, под что она заточена программа обучения. Однако традиционно учат:
-
Python;
-
Django;
-
SQL и PostgreSQL;
-
Nginx;
-
GitHub.
Проблема в том, что курсы для backend-разработчиков с нуля не настолько распространены, как для frontend. При этом нет каких-то единых стандартов образования и каждый подбирает те программы обучения, которые для него актуальны.
Кроме того, знания зачастую разрозненные – например, курсы могут быть разбиты по языкам программирования под общим названием «Веб-разработка». Поэтому нужно четко понимать, в какую сторону хотите двигаться и подбирать тот набор инструментов, который пригодится в дальнейшей работе.
В общем, успешному бекэнду нужно знать и уметь очень многое. Хорошая новость в том, что инструментарий в этой области меняется не так стремительно, как во фронтэнде, поэтому торопиться некуда.
Где работают backend-разработчики?
Да практически везде. Если у фирмы, компании или государственной структуры, есть сайт или приложение, значит, понадобится и штат программистов.
Пандемия COVID-19 немало повлияла на мировую торговлю, поэтому наиболее перспективными сейчас считаются направления электронной коммерции, доставки и перевозки товаров и прочие направления.
Другое дело, что потребности у работодателей разные. Если разработчика берут в офис на фуллтайм, скорее всего он будет работать над высокоуровневыми системами данных, микросервисами, виртуальными приложениями и т.д. Соответственно, и требования к его навыкам будут выше.
Проще устроиться на удаленную работу или какой-то конкретный проект, например, создание небольшого интернет-магазина или сайта местного ресторана с доставкой.
Зарплата backend-разработчиков в 2022 году
Самая насущная проблема – это сколько получает хороший бекэнд. Хороший в нашем случае, значит, опытный, то есть со стажем от 3 лет и уровнем не ниже middle. Если судить по вакансиям на HeadHunter и другим сайтам по поиску работы, в Москве таким специалистам готовы платить от 100 тысяч рублей. Для Senior зарплаты ещё выше: от 200 до 350 тысяч рублей.
В вакансиях для начинающих вообще предпочитают не указывать конечную сумму. Что логично: нужно сначала оценить, что умеет соискатель и подходит ли он для конкретной работы.
Плюсы и минусы работы backend-разработчика
Плюсы:
-
Устойчивое положение на рынке труда и востребованность;
-
Высокая заработная плата и её повышение по мере роста навыков;
-
Карьерные перспективы, возможность вырасти в lead-разработчика.
Минусы:
-
Более тяжелая в освоении специализация;
-
Высокая ответственность;
-
Как правило, загруженность и переработки;
-
Высокие требования к скиллам и навыкам при трудоустройстве.