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, бэкенду достаточно знать, что они делают.

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

  • С/С++. Новые приложения на них создают редко, только когда нужна крайне быстрая производительность. Но поддерживать приложение или писать вставки на С все еще приходится. Языки – крайне недружелюбные к новичкам.
  • Java. Освойте новую профессию Java Backend, чтобы всегда оставаться в сфере IT и при деньгах. Java – это вообще отдельная история, но если вкратце: ей повезло стать первым языком для масштабной кроссплатформенной разработки, поэтому Java доминирует на рынке энтерпрайза (больших приложений для больших компаний) и никуда уходить не собирается. 
  • C#. Очень похожий на Java язык от Microsoft. Не так популярен, хотя найти работу C# Backend Developer тоже не будет большой проблемой.
  • Python. Универсальный, мощный и медленный язык программирования. В основном используется на небольших или средних по величине проектах, на которых не нужна высокая производительность.
  • Ruby. Мощный нишевый язык программирования. Найти работу будет сложно, но платят Ruby Backend разработчикам существенно больше, чем джавистам.
  • PHP. Один из старейших серверных языков для веб-разработки. Многие программисты от него плюются, мол, «для школьников и маленький проектов». Эти программисты сильно ошибаются, ибо на PHP можно писать как маленькие пет-проекты, так и огромные инфраструктуры. Но если вы выберете PHP как главный язык, 99.9% вашей работы будет связано конкретно с сайтами.
  • JavaScript. Вообще, этим языком больше пользуются фронтенды, но пара фреймворков (Node.js, к примеру) позволяет писать на нем серверную часть. Подходит скорее для небольших проектов.

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

  • 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-разработчика с нуля

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

Java Developer от Skypro

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

Учат с нуля

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

11 месяцев

Стоимость

130 000 рублей (3 600 в месяц)

Рассрочка?

Да, на 12/24/36 месяцев

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

Да, есть свой центр карьеры; возвращают деньги, если вы не устроились

Довольно крепкий курс по бэкенд-джава разработке. Учат не только Java Core, но и всем распространенным фреймворкам. Отдельные модули – про техническое собеседование, про командную работу и связанные с ней технологии, про работу компилятора и JVM в целом. В конце – диплом.

Python-разработчик от Нетологии

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

Учат с нуля

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

12 месяцев

Стоимость

165 000 рублей (6 875 в месяц)

Рассрочка?

Да, на 24 месяца

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

Да, есть свой центр карьеры – помогают с резюме и собеседованиями

Интенсивный и насыщенный курс по Python-разработке. Есть командные проекты, есть курсовые работы, есть диплом. Учат в том числе и веб-фреймворкам. Дополнительно – основы DevOps и курсы английского.

Профессия Fullstack-разработчик на PHP от Skillbox

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

Учат с нуля

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

10 месяцев

Стоимость

166 000 рублей (4 900 в месяц)

Рассрочка?

Да, на 34 месяца

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

Да, дают личного HR, подготавливающего вас к трудоустройству. Если не устроитесь – вернут деньги.

Поскольку вас будут учить фулл-стэку, кроме PHP вы выучите JavaScript и ряд дополнительных технологий для быстрого создания сайтов. Основной упор в курсе сделан именно на сайты, хотя полноценные приложения вас писать тоже научат. Дополнительно школа дает годовой курс английского в подарок.

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

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 в последние годы наступает ей на пятки).
  • Работы – более чем хватает даже в условиях кризиса.
  • Проще всего получить профессию на платных годовых курсах, учиться самостоятельно – сложно, потому что нет ментора.
  • Английский желательно знать хотя бы на уровне чтения технической литературы.
Часто ищут