logo
Ещё

Профессия Backend-разработчик

Back end разработчик пишет внутреннюю логику веб-приложения. Это может быть что угодно: запросы в базу данных о наличии товара, обработка оплаты, возврат выдачи поиска на сайте и так далее. Профессия backend developer крайне востребована, поскольку внутреннюю составляющую любого более-менее крупного проекта нужно писать руками, освойте профессию – и вы никогда не останетесь без работы. Ниже – о том, чем именно разработчик занимается, что ему нужно знать, почему вакансия «java developer» так популярна и сколько зарабатывает ведущий разработчик.


Backend-разработчик – кто такой и чем занимается

В каких сферах востребован

Как мы уже сказали, backend разработчиком можно стать в любой компании, в которой есть более-менее крупное веб-приложение. Для того, чтобы объяснить востребованность профессии, мы приведем следующий пример: предположим, есть сайт по продаже галош. Сами галоши лежат на складе юрлица, а потенциальные покупатели сидят дома на ноутбуками и вбивают в поиск «купить галоши недорого Москва». Маркетинг мы опустим, сразу перейдем к тому, что наш сайт – ТОП-1 в РФ, и на него ежедневно заходит множество пользователей, желающих купить модные разноцветные галоши на скидке или без нее.

Итак, из чего должен состоять наш сайт?

  • Сервер (хостинг), на котором будут лежать все файлы сайта.
  • База данных, в которой хранится вся информация: логины-пароли пользователей, списки продукции в наличии, цены и так далее.
  • Сам сверстанный сайт – шапка, витрины товаров, красивые кнопочки.
  • Внутренняя логика действий: когда пользователь добавляет товары в корзину и жмет оплатить, каким-то образом нужно узнать номер его карты и адрес, подтвердить наличие денег, списать деньги с карточки покупателя себе, создать поручение курьерам на доставку, обновить базу данных, …

Профессия backend-разработчика полностью забирает себе последний пункт списка. Хороший программист делает так, чтобы невидимые скрипты делали основную работу, которая превращает бизнес в бизнес: что-то высчитывает, что-то обновляет в базе данных, создает новую информацию (то же поручение курьерам), уточняет текущую информацию и так далее. Все это – логика бизнеса, которую нужно отразить кодом. Поэтому профессия и востребована – у любого бизнеса есть бизнес-логика, и везде ее нужно переносить в код. Исключения – готовые сервисы вроде Tilda, в которых бизнес-логика прописана внутри изначально. Но крупные проекты по финансовым соображениям обычно создают свои собственные платформы, и для каждой такой платформы нужен свой бэкенд.

Из этого следует неочевидный вывод о том, что бэкенд бэкенду – рознь. Профессия бэкенд-разработчика – понятие довольно размытое, потому что в нем нет конкретных деталей. Одни бэкенды занимаются исключительно взаимодействием с базами данных, другие пишут кросс-серверный код, третьи пишут алгоритмы для парсинга данных, четвертые полностью тащат на себе всю инфраструктуру небольшого веб-приложения. Для того, чтобы как-то «упорядочить» бэкендов, чаще всего используется разбивка по языкам программирования и технологиям – ниже мы приведем описания основных.


Отличия от frontend

Если backend-разработчик выполняет задачи, связанные со внутренней логикой веб-приложения, то фронты занимаются конкретно «лицевой» частью этого приложения. И здесь есть одно заблуждение – нужно разделять внешний вид и функционал внешнего вида. Внешний вид – это непосредственно картинки, формочки и кнопочки. Функционал внешнего вида – это масштабирование картинок для разных экранов, проверка правильности введенных данных в формочках и запросы к серверу по нажатию кнопочек. Фронтенд занимается и тем, и тем, но функционал внешнего вида зачастую отнимает больше сил и времени, чем сам внешний вид.


Это – материал о профессии backend-разработчик, поэтому глубоко вдаваться в жизнь фронтов мы не будем. Но есть одна вещь, о которой обязательно нужно рассказать – API. API – это интерфейс взаимодействия внешней и внутренней части веб-приложения. Когда фронтэнд-разработчик пишет функционал для кнопки добавления в корзину, ему нужно:

  1. После нажатия кнопки пользователем послать запрос на сервер.
  2. Получить однозначный ответ, который можно обработать.
  3. Выдать реакцию на нажатие в соответствии с ответом.

Когда бэкенд-разработчик пишет функционал для корзины, ему нужно:

  1. Дождаться запроса на добавление товара в корзину.
  2. Проверить валидность данных (сессия не истекла).
  3. Проверить наличие товара на складе.
  4. При наличии товара и валидности данных – создать новую запись о том, что у такого-то клиента теперь в корзине есть такой-то товар.
  5. Вернуть ответ либо об успешном добавлении, либо об ошибке.

А теперь давайте посмотрим, что здесь может пойти не так:

  1. Как конкретно должен выглядеть запрос (как выглядит протокол запроса)?
  2. Какие данные нужно посылать на сервер?
  3. Кто должен проверять валидность данных – бэкенд или фронтэнд? Или отсутствие очевидных ошибок в адресе почты будет проверять фронтэнд, а существование пользователя должен проверять бэкенд?
  4. В каких случаях нужно генерировать ошибки и на чьей стороне?
  5. Как именно должны выглядеть ошибки?

На эти, как и на многие другие вопросы, должен отвечать API. Запрос выглядит как «add_to_cart [username] [item]», дополнительно нужно послать на сервер номер телефона и почту, валидность проверяем пополам, ошибки генерируются на стороне сервера и имеют числовые коды, все сценарии-коды-обработки ошибок прописываются в отдельном документе. Что здесь самое важное – кроме навыков программирования бэкенд-разработчику понадобятся еще и навыки коммуникации, потому что API нужно согласовывать с другими разработчиками.

И поэтому хорошему бэкенду желательно в общих чертах знать, как устроен фронтенд – тогда договориться будет намного легче.

Какие языки и технологии используются в backend-разработке

Средние требования по грейду:

Интерн

Джун

Миддл

Сеньор

Лид

Любой «серверный» язык программирования

Предыдущее + SQL + Git

Предыдущее + концепция и применение ООП + SOLID + паттерны проектирования

Предыдущее + узкоспецифичные знания – тонкости работы конкретного компилятора, редкие фреймворки и так далее

Предыдущее + глубокое понимание бизнес-логики

Сейчас все чаще требуются скилы, связанные с инфраструктурой: Linux, Docker, Kubernetes, Terraform, Ansible и прочее.

Но хорошо разбираться в них должен DevOps, бэкенду достаточно знать, что они делают.

Что касается непосредственно языков, то «в ходу» сейчас следующие:

  • С/С++. Новые приложения на них создают редко, только когда нужна крайне быстрая производительность. Но поддерживать приложение или писать вставки на С все еще приходится. Языки – крайне недружелюбные к новичкам.

Курс «Разработчик игр на Unity» от Нетология

Школа

Нетология

Стоимость

107 500 руб

Цена в рассрочку

3 143 руб/мес

Длительность курса

13.5 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «C#-разработчик» от Skillfactory

Школа

Skillfactory

Стоимость

105 717 руб

Цена в рассрочку

3 263 руб/мес

Длительность курса

12 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Разработчик игр на Unity с нуля до Middle» от Skillbox

Школа

Skillbox

Стоимость

156 277 руб

Цена в рассрочку

5 041 руб/мес

Длительность курса

6 месяцев

Программа трудоустройства

Отсутствует

Формат

Запись лекций

  • Java. Освойте новую профессию Java Backend, чтобы всегда оставаться в сфере IT и при деньгах. Java – это вообще отдельная история, но если вкратце: ей повезло стать первым языком для масштабной кроссплатформенной разработки, поэтому Java доминирует на рынке энтерпрайза (больших приложений для больших компаний) и никуда уходить не собирается. 

Курс «Инженер по тестированию» от Нетология

Школа

Нетология

Стоимость

98 600 руб

Цена в рассрочку

2 883 руб/мес

Длительность курса

8 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Java-разработчик» от Skillfactory

Школа

Skillfactory

Стоимость

131 235 руб

Цена в рассрочку

4 050 руб/мес

Длительность курса

14 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Инженер по тестированию» от Skillbox

Школа

Skillbox

Стоимость

96 439 руб

Цена в рассрочку

4 384 руб/мес

Длительность курса

10 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций

  • C#. Очень похожий на Java язык от Microsoft. Не так популярен, хотя найти работу C# Backend Developer тоже не будет большой проблемой.

Курс «Разработчик игр на Unity» от Нетология

Школа

Нетология

Стоимость

107 500 руб

Цена в рассрочку

3 143 руб/мес

Длительность курса

13.5 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «C#-разработчик» от Skillfactory

Школа

Skillfactory

Стоимость

105 717 руб

Цена в рассрочку

3 263 руб/мес

Длительность курса

12 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Разработчик игр на Unity с нуля до Middle» от Skillbox

Школа

Skillbox

Стоимость

156 277 руб

Цена в рассрочку

5 041 руб/мес

Длительность курса

6 месяцев

Программа трудоустройства

Отсутствует

Формат

Запись лекций

  • Python. Универсальный, мощный и медленный язык программирования. В основном используется на небольших или средних по величине проектах, на которых не нужна высокая производительность.

Курс «Python-разработчик с нуля» от Нетология

Школа

Нетология

Стоимость

82 700 руб

Цена в рассрочку

3 625 руб/мес

Длительность курса

7.5 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «IT-специалист с нуля» от Skillfactory

Школа

Skillfactory

Стоимость

123 655 руб

Цена в рассрочку

3 817 руб/мес

Длительность курса

10 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Python-разработчик» от Skillbox

Школа

Skillbox

Стоимость

154 392 руб

Цена в рассрочку

4 980 руб/мес

Длительность курса

10 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

  • Ruby. Мощный нишевый язык программирования. Найти работу будет сложно, но платят Ruby Backend разработчикам существенно больше, чем джавистам.

Курс «Разработчик на Ruby on Rails» от Хекслет

Школа

Хекслет

Стоимость

58 000 руб

Цена в рассрочку

5 402 руб/мес

Длительность курса

5 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

  • PHP. Один из старейших серверных языков для веб-разработки. Многие программисты от него плюются, мол, «для школьников и маленький проектов». Эти программисты сильно ошибаются, ибо на PHP можно писать как маленькие пет-проекты, так и огромные инфраструктуры. Но если вы выберете PHP как главный язык, 99.9% вашей работы будет связано конкретно с сайтами.

Курс «Bitrix-разработчик» от Нетология

Школа

Нетология

Стоимость

81 700 руб

Цена в рассрочку

3 585 руб/мес

Длительность курса

11.5 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Fullstack-разработчик на PHP и JavaScript» от Skillfactory

Школа

Skillfactory

Стоимость

149 376 руб

Цена в рассрочку

4 610 руб/мес

Длительность курса

20 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «PHP-разработчик. Базовый уровень» от Skillbox

Школа

Skillbox

Стоимость

57 733 руб

Цена в рассрочку

4 811 руб/мес

Длительность курса

3 месяца

Программа трудоустройства

Отсутствует

Формат

Запись лекций

  • JavaScript. Вообще, этим языком больше пользуются фронтенды, но пара фреймворков (Node.js, к примеру) позволяет писать на нем серверную часть. Подходит скорее для небольших проектов.

Курс «Fullstack-разработчик на Python» от Нетология

Школа

Нетология

Стоимость

169 100 руб

Цена в рассрочку

4 945 руб/мес

Длительность курса

21.5 месяц

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Fullstack-разработчик на PHP и JavaScript» от Skillfactory

Школа

Skillfactory

Стоимость

149 376 руб

Цена в рассрочку

4 610 руб/мес

Длительность курса

20 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Инженер по тестированию» от Skillbox

Школа

Skillbox

Стоимость

96 439 руб

Цена в рассрочку

4 384 руб/мес

Длительность курса

10 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций

Что касается основных технологий:

  • SQL. Язык структурированных запросов к базе данных. Поскольку без баз данных не обходится ни один более-менее крупный проект, и поскольку бэкенду чаще всего приходится работать с БД – обязательная технология.
  • Git. Система контроля версий, которая позволяет нескольким разработчикам работать одновременно и откатывать изменения, если что-то пошло не так. Тоже маст хэв.
  • ООП. Объектно-ориентированная модель программирования, которая позволяет легко масштабировать приложение и изолировать отдельные его части. Серьезная разработка практически всегда использует ООП.
  • SOLID.Набор принципов, позволяющих строить масштабируемую и отказоустойчивую архитектуру.
  • Паттерны проектирования. Набор готовых решений для типовых задач. ООП, SOLID и паттерны вместе образуют базу для архитектора/инженера.

Должностные обязанности и личные качества

Основные должностные обязанности: разрабатывать новую инфраструктуру и поддерживать существующую. Конкретные задачи зависят от проекта: где-то надо часто создавать и изменять базы данных, где-то разработчиков привлекают для создания сайтов, где-то разработчик отвечает исключительно за исправление багов. Если рассматривать бэкенд с точки зрения интересной профессии, то можно без проблем найти работу по душе, поскольку проектов и возможностей для самореализации – более чем достаточно.

Если смотреть на отзывы, то основное личное качество – это коммуникабельность. Разработчик может владеть любым инструментом в мире, но если он не может синхронизировать свою работу с работой команды – он будет приносить очень много проблем. Сейчас приложения в одиночку практически не разрабатываются – «маленькое» приложение тянет до полугода времени и до 10 человек в команде.

И, как вы может помнить из нашего рассказа про API выше, эти люди постоянно вынуждены что-то согласовывать.

Что должен знать и уметь Backend-разработчик

Основной стек языков/технологий мы уже рассмотрели выше. К нему можно добавить знания бизнес-логики, поскольку бэкенд-разработчик обычно ее и реализует. На реальной работе вы будете работать по ТЗ, и ТЗ далеко не всегда будут идеальными. Иногда будут пробелы в описаниях, иногда будут логические ошибки, иногда четкого ТЗ вообще не будет. Вам нужно будет самостоятельно разбираться в том, чего от вас хотят, и иногда самостоятельно генерировать и предлагать прибыльные идеи. А чтобы генерировать и предлагать их, вам нужно понимать, как работает бизнес.

Обзор рынка труда – зарплаты Backend, перспективы и востребованность

По запросу Backend на hh.ru можно найти 4 988 вакансий. Зарплата указана только у 1 713, потому что в IT частой практикой является обсуждение зарплаты непосредственно на собеседовании. Из указанных зарплат – у 1 478 вакансий доход начинается от 90 000 рублей, от 450 000 рублей доход начинается у 57 вакансий. По языку программирования – ищут самых разных девелоперов.

В бэкенд разработку берут как новичков, так и Middle/Senior, но вакансий для джунов, как всегда, на порядок меньше (хотя все равно хватает).

Плюсы и минусы работы 

Из плюсов:

  • Высокие зарплаты специалистов. Бэкенд-девелоперы зарабатывают хорошие деньги даже в условиях кризиса.
  • Действительно интересная работа. Вам придется решать разнообразные задачи, иногда – нестандартно и творчески.
  • Свобода. Если у вас есть опыт – вы без проблем найдете другую работу при желании, и даже – на удаленке.

Из минусов:

  • Непростое обучение. Освоить эту новую профессию будет непросто, если вы решите пойти по пути самообучения – без ментора учиться очень тяжело.
  • Нужно постоянно учиться. Особенностями профессии являются постоянное обучение и самообучение – технологии не стоят на месте.
  • Придется учить логику и математику. Задачи бэкенд-разработчика почти всегда включают в себя построение логических цепей и высчитывание чего-либо, мозги придется напрягать постоянно.
  • Сидячая работа. Вам придется дополнительно беспокоиться о здоровье – заниматься спортом в свободное время, адекватно питаться.

С какими сложностями сталкиваются специалисты

Начинающие специалисты обычно сталкиваются с ошеломляющим масштабом технологий, проектов и возможных решений. Их действительно много, и зачастую непонятно, с какой стороны вообще подходить к сложным задачам. Когда разработчик получает опыт (который решает эту проблему), сами проблемы становятся более высокоуровневыми: как оптимизировать приложение, как наделать меньше багов, какой паттерн лучше выбрать и так далее. Программисты высоких уровней, которые уже умеют работать со всеми этими вопросами, сталкиваются с совсем другой проблемой: где можно зарабатывать хорошие деньги?

Поскольку Senior умеют выполнять самые сложные задачи, владеют большим стеком технических навыков и опытом разработки, их готовы с руками и ногами забирать в любую компанию, поэтому вопрос заработка/интересного проекта/соцпакета становится самым сложным.

Карьерный путь Backend-разработчика

  1. Интерн. Карьера backend-разработчика начинается либо с этой стадии, либо с джуна. Вы еще даже не разработчик – вас берут на обучение. Начнете с изучения языков, решать сложнейшие задачи вы будете еще не скоро.
  2. Junior. Вы уже что-то умеете, но на самом деле – еще нет. Вам уже будут платить зарплату, но к реальному проекту еще не подпустят, чтобы вы ничего не сломали. Будете набираться опыта в песочнице.
  3. Middle. Здесь начнется ваша реальная разработка. На вас будут скидывать простые и рутинные, но уже реальные задачи. Зарплата повысится раза в 1.5-2 по сравнению с джуном, потому что вы начнете представлять реальную ценность.
  4. Senior. Полноценный разработчик, за которым уже не нужно следить и который может посматривать за джунами. Вы можете взять на себя полную ответственность за какой-либо функционал и самостоятельно решить возникшие проблемы.
  5. Lead/PM/техдир/… Senior может эволюционировать в любую сторону, в которую ему захочется. Или он может остаться на позиции Senior и углублять свои навыки. В общем, все дороги открыты.

Обучение на Backend-разработчика с нуля

Платные курсы

Курс «Python-разработчик с нуля» от Нетология

Школа

Нетология

Стоимость

82 700 руб

Цена в рассрочку

3 625 руб/мес

Длительность курса

7.5 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Java-разработчик» от Skillfactory

Школа

Skillfactory

Стоимость

131 235 руб

Цена в рассрочку

4 050 руб/мес

Длительность курса

14 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Курс «Профессия Java-разработчик» от Skillbox

Школа

Skillbox

Стоимость

123 964 руб

Цена в рассрочку

3 646 руб/мес

Длительность курса

8 месяцев

Программа трудоустройства

Есть

Формат

Запись лекций, Онлайн занятия с преподавателем

Бесплатные курсы

Introduction to Java Programming: Starting to code in Java

Порог вхождения

Учат с нуля

Длительность

5 недель

Небольшой вводный курс по Джаве – синтаксис, объекты, ООП, API и другие базовые вещи.

Java. Базовый курс

Порог вхождения

Учат с нуля

Длительность

18 часов

То же, что и предыдущий курс, только на русском.

Java для начинающих

Порог вхождения

Учат с нуля

Длительность

23 часа

Основной упор на курсе сделан конкретно на синтаксис языка и базовые управляющие конструкции. 

Учат ли в ВУЗах

И да, и нет. Такие специальности есть, но ВУЗы довольно медлительны в плане изменения учебной программы, поэтому знания, которые они дают, очень быстро устаревают. Ученик, прошедший 4-5 лет ВУЗа, идет после обучения работать джуном.

Ученик, прошедший годовые платные курсы, тоже идет работать джуном, но тратит на обучение и меньше денег, и меньше времени.

Где искать работу и как откликаться на вакансии – гайд для начинающих

Первое, что вам нужно – это резюме на LinkedIn. В резюме желательно указать пет-проекты и/или дипломные проекты, которые нужно залить на Гитхаб – так рекрутер сможет посмотреть на ваш код. Составили резюме – рассылайте его повсюду. Искать вакансии можно где угодно: hh.ru, паблики соцсетей, каналы в Телеграм, какие-нибудь специализированные форумы. В 2022 году очень сильно помогает активность в LinkedIn – пишите посты о своем тяжелом пути джуна, старайтесь получить как можно больше репостов. Ваша цель – охватить как можно больше HRов и податься на максимальное число вакансий. Поиск первой работы может занимать месяц-два.

Что почитать о профессии

Другие профессии – на что еще обратить внимание

  • QA. Если вы хотите работу попроще – можете устроиться в тестировщики. По началу из знаний от вас будет требоваться только английский.
  • Frontend. Если вы больше тяготеете к графике, то рассмотрите вариант фронтенда. Технических знаний там требуется меньше, творческих – больше.
  • DevOps. Если вас всегда необъяснимо тянуло в мир серверов, Linux и сетей, DevOps будет вашим выбором. Это – сложная профессия на стыке программирования и сисадминства, но платят девопсам очень хорошо.

Интересные факты и мифы о backend

  • Ты же программист, почини мне тостер. Древний мем, отсылающий на то, что «компьютерщики» умеют все подряд. Естественно, это не так, ибо технологий и специализаций – миллионы, и во всем этом одновременно разбираться невозможно.
  • Программисты ничего не делают и зарабатывают 300кк в наносекунду. Людям, далеким от интеллектуальной работы, действительно может показаться, что бэкенд-разработчики получают огромные деньги за то, что пишут по 100 строк кода в день. Но эти люди не понимают, что: а) деньги – не такие уж и огромные, если мы будем смотреть на зарплаты в более развитых странах; б) на продумывание небольшого кусочка кода может уйти день/неделя/месяц.
  • Программирование – для молодых. Многим инженерам-программистам уже за 40, в советах директоров крупных IT-компании зачастую встречаются люди за 50, нередки новости о том, что пожилые скучающие домохозяйки внезапно вкатывают в IT и начинают хорошо зарабатывать. Главное – желание и мотивация, остальное вторично.

FAQ

Бэкенд-разработчик – профессия для математиков?

Нет. Если нужно написать какой-то сложный алгоритм – в 99.99% случаев это уже сделали за вас и выложили решение на StackOverflow. Вам нужно только найти этот алгоритм.

Насколько хорошо нужно знать английский?

Нужно как минимум уметь читать техническую литературу. Английский – это довольно важный скилл для любого разработчика, поскольку на нем написана вся свежая документация и огромное количество решений типовых вопросов.

Подведем итоги

Тезисно:

  • Бэкенд-разработчик – это человек, который пишет бизнес-логику на серверной стороне.
  • Работа, как ни странно, предполагает много общения.
  • Самый популярный серверный язык – Java (хотя Python в последние годы наступает ей на пятки).
  • Работы – более чем хватает даже в условиях кризиса.
  • Проще всего получить профессию на платных годовых курсах, учиться самостоятельно – сложно, потому что нет ментора.
  • Английский желательно знать хотя бы на уровне чтения технической литературы.
Часто ищут