Зарплаты бэкенд‑разработчиков разного уровня в России: исследование Skillbox Media
Сколько получают бэкендеры, какие скиллы нужны для зарплаты в 500 тысяч рублей и какие необычные плюшки для работников предлагают компании.


Кадр: фильм «Зачинщики»
IT-профессий так много, что рассказать обо всех специализациях в одной статье вряд ли получится. Но укрупнённо можно выделить такие направления:
- разработчики (фронтенд и бэкенд),
- специалисты по работе с данными и аналитики,
- менеджеры,
- тестировщики,
- технические писатели,
- IT-рекрутеры,
- системные администраторы и сетевые инженеры.
Мы проводим исследование рынка вакансий СНГ по всем направлениям. Сегодня — первая часть, зарплаты и скиллы бэкендеров.
Как изменилось количество вакансий с февраля 2022 года
По данным hh.ru, количество вакансий в марте 2022 года уменьшилось на 18%, в апреле вакансий стало ещё на 11% меньше.

Скриншот: Skillbox Media
При этом количество резюме за этот же период выросло на 15%.

Скриншот: Skillbox Media
Получается, конкуренция в сфере IT растёт, но не всё так плохо. На одну вакансию приходится 2,6 резюме, и получить работу вполне реально — ведь значительная часть тех, кто публикует резюме, пытаются перейти на другую работу, а значит, добившись цели и заняв одну вакансию, высвободят другую, на прежней работе.

Скриншот: Skillbox Media
Возможно, придётся пройти дополнительное обучение или написать свой авторский код, чтобы на собеседовании было что ответить работодателю на вопрос об опыте работы.
Большинство вакансий (80%) предлагают удалённую работу и плавающее начало рабочего дня. Для остальных 20% комфорт в офисе — чай/кофе/печеньки/фрукты — это уже норма. А в Нижнем Новгороде пошли дальше и даже джуниор-разработчику обещают оплачивать такси, чтобы он мог без проблем добираться на работу.

Скриншот: Skillbox Media
Посмотрим, какие вакансии предлагают работодатели и сколько зарабатывают бэкендеры.
Стажёры
15 000–30 000 рублей
Вакансии есть, но быстро закрываются, поэтому их нужно отслеживать и действовать быстро. Обычно нужно пройти отбор. Например, решить задачи на логику или словами описать алгоритм будущей программы.
Стажировки можно искать не только на сайтах с вакансиями, но и в компаниях напрямую. Для тех, кто хочет попасть на стажировку в «Яндекс», компания подготовила специальный раздел с советами для начинающих и примерами тестовых прошлых лет. По отзывам разработчиков, технические ошибки у кандидатов встречаются разные, а ошибки, связанные с софт-скиллами, повторяются. Новички мало задают вопросов по условию задачи, стесняются сказать, что не знают ответа на вопрос, и не следуют заранее оговорённому плану, когда пишут код, что плохо для командной работы.
Junior
50 000–120 000 рублей
Зарплата зависит от уровня знаний и опыта работы сотрудника, в большинстве вакансий нужны такие профессиональные навыки:
Знание одного или нескольких языков программирования. JavaScript, Python, PHP, Java, Kotlin, Ruby, C#, Go, Scala и так далее. Статистику по всем языкам программирования можно посмотреть в исследовании Stack Overflow.

Скриншот: Skillbox Media
Знание фреймворков (в зависимости от языка программирования). Самые популярные в бэкенде: Ruby on Rails, Meteor, Laravel, Express, Django, Flask, Spring, Koa, Symfony, Codelgniter, Beego, .NET Core, Yii Framework, Phoenix, Play Framework, Ktor. Статистику по всем фреймворкам можно посмотреть в исследовании Stack Overflow.
Знание SQL. Основные операторы, логика транзакций, внешние ключи, индексы и их влияние на скорость выборки и так далее. Кроме основных операторов SQL нужно понимание транзакций (в том числе их уровней), варианты хранения данных (таблицы связей, EAV и прочее), нормализация, связи (внешние ключи используются почти всегда), индексы (не только какие бывают, но и как организовано сбалансированное дерево B-tree, как влияет селективность на выборку), план запроса, оптимизатор и сбор статистики, какие бывают локи и из-за чего и для каких изменений нужно снимать нагрузку. Также важны «сопутствующие» вещи — миграции, фикстуры, драйверы СУБД, подготовленные запросы, SQL-инъекции и тому подобное. Для начала достаточно иметь общее теоретическое понимание этих вещей, реально будете их изучать на практике, в зависимости от проектов и их нагрузки с разной степенью глубины.
Умение работать с системой контроля версий Git и сервисами типа GitHub и GitLab.
Также во многих вакансиях приветствуется умение разбираться с чужим кодом.
Компании предлагают достаточно большую вилку зарплат, в которой верхняя граница может отличаться от нижней на 50–70%. Это связано не только с уровнем знаний соискателя. Через какое-то время после начала работы зарплату могут повысить, потом ещё. И так добраться до верхней границы. Но этот момент нужно уточнять на собеседовании.
В Москве уровень зарплат выше (80 000–120 000 рублей). Если предполагается наставничество, скорее всего, придётся ездить в офис.

Скриншот: Skillbox Media
Middle
80 000–250 000 рублей
Чтобы устроиться мидл-разработчиком, нужен опыт работы от трёх (иногда от двух) лет.
В некоторых компаниях существует внутренняя система аттестации — у сотрудников есть возможность проверять свой уровень и сразу переходить на мидла с увеличением зарплаты.

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

Скриншот: Skillbox Media
У тех специалистов, которые не просто понимают, как правильно писать код, а делают это оптимально, учитывая объём данных и нагрузку на систему, зарплата будет выше, что вполне логично. Знание английского тоже повышает шансы получить работу с зарплатой выше средней по рынку. Вот пример требований из вакансии с зарплатой 300 тысяч рублей.

Скриншот: Skillbox Media
Senior
250 000–500 000 рублей
На должности сеньор-разработчика работодатели хотят видеть профессионалов, которые мыслят системно, умеют писать оптимальный код, выполнять ревью кода участников команды и готовы передавать знания и быть наставниками для менее опытных коллег.

Скриншот: Skillbox Media
Небольшие компании обычно ищут человека, который сможет сработаться с существующей командой. Поэтому встречаются вакансии, где кроме интервью с руководителями нужно пройти собеседование с командой.
Помимо высокой зарплаты, есть другие приятные бонусы. Например, в Петербурге ищут сеньор-разработчика и предлагают совместные походы по барам Васильевского острова и кальян после работы.

Скриншот: Skillbox Media
Тимлид
400 000–500 000 рублей
Если к высокому уровню знаний добавить ответственность за реализацию проекта, то можно стать тимлидом. Зарплата специалистов такого уровня зависит от сложности проекта и уровня ответственности и в среднем достигает 500 000 рублей.
Ниже пример вакансии из Санкт-Петербурга с зарплатой от 480 000 рублей, ДМС и другими плюшками.

Скриншот: Skillbox Media
А теперь посмотрим, как меняются зарплаты в зависимости от выбранных технологий разработки.
Что нужно знать, чтобы пройти собеседование на Junior-разработчика в бэкенде
В любой технологии есть свои плюсы и минусы. Кстати, об этом часто любят спрашивать на собеседованиях. Есть общие требования для всех технологий: знание баз данных, типов и структуры HTTP-запросов, REST API, MVP, понимание стандартных алгоритмов обработки данных (любят спрашивать про бинарное дерево).
Плюсом будет умение покрывать код тестами, а также понимание процессов масштабирования и расчёта нагрузки на память и процессор. Нужно знать, как работает система контроля версий Git, уметь объяснить основные команды.
Go
Что нужно знать. Объектно-ориентированный подход вообще (наследование, полиморфизм, инкапсуляция) и то, как он реализован в Go. Типы данных и синтаксис. На собеседовании могут дать задачи на слайсы и спросить, чем последние отличаются от массива, или на map и попросить объяснить её особенности. Кроме того, нужно знать каналы, горутины, планировщик, многопоточность, конкурентность.
Сколько получают
Junior: от 70 000 до 120 000 рублей;
Middle: от 100 000 до 250 000 рублей;
Senior: от 220 000 до 450 000 рублей.
Node.js
Что нужно знать. Как устроена технология (что такое потоки, потоковая передача данных). Обработка событий (асинхронное программирование). Структуры данных, классы и наследование. Приведение типов данных, замыкания и тому подобное. На собеседовании могут попросить написать простой веб-сервер.
Сколько получают
Junior: от 100 000 до 150 000 рублей;
Middle: от 150 000 до 240 000 рублей;
Senior: от 300 000 до 400 000 рублей.
Kotlin/Java
Что нужно знать. Помимо общих вопросов, на собеседовании обычно задают вопросы про совместимость с Java, типы классов и виды функций в Kotlin, дженерики (чем они отличаются от дженериков в Java) и корутины.
Сколько получают
Junior: от 50 000 до 120 000 рублей;
Middle: от 160 000 до 350 000 рублей;
Senior: от 240 000 до 400 000 рублей.
C#
Что нужно знать. На собеседовании, кроме теории и решения задач, могут попросить объяснить готовый код. Примеры тем вопросов: разница между классом и структурой, классом и объектом; что такое boxing/unboxing; особенности работы со строками; сборщик мусора; методы Object, ковариантность. Фреймворк .NET.
Сколько получают
Junior: от 120 000 до 150 000 рублей;
Middle: от 200 000 до 280 000 рублей;
Senior: от 250 000 до 360 000 рублей.
PHP
Что нужно знать. Понимать разницу между PHP 7 и PHP 8. Преимуществом будет опыт написания тестов PHPUnit (понимание TDD), опыт работы с Composer. На собеседовании часто встречается задача написать функцию, которая склоняет слово в зависимости от числительного, передающегося ей в качестве аргумента.
Сколько получают
Junior: от 30 000 до 60 000 рублей;
Middle: от 120 000 до 200 000 рублей;
Senior: от 200 000 до 270 000 рублей.
C++
Что нужно знать. Понимать разницу между C и C++ и между версиями (например, знать, когда появилось лямбда-выражение и что это такое), процесс компиляции и линковки, модель памяти, шаблоны и указатели. Примеры вопросов: «Что используется вместо интерфейсов? Есть ли виртуальные функции? Как создать динамический массив?» В задачах на собеседовании нужно знать стандартные алгоритмы (бинарный поиск, сортировка, два указателя, сканирующая линия, обход в глубину и ширину).
Сколько получают
Junior: от 90 000 до 120 000 рублей;
Middle: от 100 000 до 240 000 рублей;
Senior: от 200 000 до 440 000 рублей.
Python
Что нужно знать. Структуры данных, изменяемые и неизменяемые типы данных, генераторы и итераторы, GIL, контекстные менеджеры, фреймворк Flask/Django. Примеры вопросов: «Как во множественном наследовании отрабатывается поиск атрибута? Отличия одного типа данных от другого. Разница между хешированием и шифрованием».
Сколько получают
Junior: от 60 000 до 140 000 рублей;
Middle: от 150 000 до 450 000 рублей;
Senior: от 380 000 до 500 000 рублей.
Заключение
Пройти путь от джуниор-разработчика до сеньора в среднем реально за пять-шесть лет. Курсы по специальности с преподавателями-практиками помогут получить нужные навыки быстрее. Если есть чёткая цель, желание развиваться и умение брать на себя ответственность, то всё получится — вакансий и возможностей для развития в сфере IT сегодня достаточно.