Зарплаты бэкенд‑разработчиков разного уровня в России: исследование Skillbox Media
Сколько получают бэкендеры, какие скиллы нужны для зарплаты в 500 тысяч рублей и какие необычные плюшки для работников предлагают компании.
Кадр: фильм «Зачинщики»
IT-профессий так много, что рассказать обо всех специализациях в одной статье вряд ли получится. Но укрупнённо можно выделить такие направления:
- разработчики (фронтенд и бэкенд),
- специалисты по работе с данными и аналитики,
- менеджеры,
- тестировщики,
- технические писатели,
- IT-рекрутеры,
- системные администраторы и сетевые инженеры.
Мы проводим исследование рынка вакансий СНГ по всем направлениям. Сегодня — первая часть, зарплаты и скиллы бэкендеров.
Как изменилось количество вакансий с февраля 2022 года
По данным hh.ru, количество вакансий в марте 2022 года уменьшилось на 18%, в апреле вакансий стало ещё на 11% меньше.
При этом количество резюме за этот же период выросло на 15%.
Получается, конкуренция в сфере IT растёт, но не всё так плохо. На одну вакансию приходится 2,6 резюме, и получить работу вполне реально — ведь значительная часть тех, кто публикует резюме, пытаются перейти на другую работу, а значит, добившись цели и заняв одну вакансию, высвободят другую, на прежней работе.
Возможно, придётся пройти дополнительное обучение или написать свой авторский код, чтобы на собеседовании было что ответить работодателю на вопрос об опыте работы.
Большинство вакансий (80%) предлагают удалённую работу и плавающее начало рабочего дня. Для остальных 20% комфорт в офисе — чай/кофе/печеньки/фрукты — это уже норма. А в Нижнем Новгороде пошли дальше и даже джуниор-разработчику обещают оплачивать такси, чтобы он мог без проблем добираться на работу.
Посмотрим, какие вакансии предлагают работодатели и сколько зарабатывают бэкендеры.
Стажёры
15 000–30 000 рублей
Вакансии есть, но быстро закрываются, поэтому их нужно отслеживать и действовать быстро. Обычно нужно пройти отбор. Например, решить задачи на логику или словами описать алгоритм будущей программы.
Стажировки можно искать не только на сайтах с вакансиями, но и в компаниях напрямую. Для тех, кто хочет попасть на стажировку в «Яндекс», компания подготовила специальный раздел с советами для начинающих и примерами тестовых прошлых лет. По отзывам разработчиков, технические ошибки у кандидатов встречаются разные, а ошибки, связанные с софт-скиллами, повторяются. Новички мало задают вопросов по условию задачи, стесняются сказать, что не знают ответа на вопрос, и не следуют заранее оговорённому плану, когда пишут код, что плохо для командной работы.
Junior
50 000–120 000 рублей
Зарплата зависит от уровня знаний и опыта работы сотрудника, в большинстве вакансий нужны такие профессиональные навыки:
Знание одного или нескольких языков программирования. JavaScript, Python, PHP, Java, Kotlin, Ruby, C#, Go, Scala и так далее. Статистику по всем языкам программирования можно посмотреть в исследовании Stack Overflow.
Знание фреймворков (в зависимости от языка программирования). Самые популярные в бэкенде: 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 рублей). Если предполагается наставничество, скорее всего, придётся ездить в офис.
Middle
80 000–250 000 рублей
Чтобы устроиться мидл-разработчиком, нужен опыт работы от трёх (иногда от двух) лет.
В некоторых компаниях существует внутренняя система аттестации — у сотрудников есть возможность проверять свой уровень и сразу переходить на мидла с увеличением зарплаты.
От специалистов мидл-уровня ожидают более уверенных профессиональных знаний и самостоятельности. Если для джуниора работа в команде — это скорее обучение, то мидл-разработчик должен анализировать разные решения и предлагать оптимальные, объясняя, почему они лучше. Вот среднестатистический список софт-скиллов, которые хотят видеть у мидла работодатели:
У тех специалистов, которые не просто понимают, как правильно писать код, а делают это оптимально, учитывая объём данных и нагрузку на систему, зарплата будет выше, что вполне логично. Знание английского тоже повышает шансы получить работу с зарплатой выше средней по рынку. Вот пример требований из вакансии с зарплатой 300 тысяч рублей.
Senior
250 000–500 000 рублей
На должности сеньор-разработчика работодатели хотят видеть профессионалов, которые мыслят системно, умеют писать оптимальный код, выполнять ревью кода участников команды и готовы передавать знания и быть наставниками для менее опытных коллег.
Небольшие компании обычно ищут человека, который сможет сработаться с существующей командой. Поэтому встречаются вакансии, где кроме интервью с руководителями нужно пройти собеседование с командой.
Помимо высокой зарплаты, есть другие приятные бонусы. Например, в Петербурге ищут сеньор-разработчика и предлагают совместные походы по барам Васильевского острова и кальян после работы.
Тимлид
400 000–500 000 рублей
Если к высокому уровню знаний добавить ответственность за реализацию проекта, то можно стать тимлидом. Зарплата специалистов такого уровня зависит от сложности проекта и уровня ответственности и в среднем достигает 500 000 рублей.
Ниже пример вакансии из Санкт-Петербурга с зарплатой от 480 000 рублей, ДМС и другими плюшками.
А теперь посмотрим, как меняются зарплаты в зависимости от выбранных технологий разработки.
Что нужно знать, чтобы пройти собеседование на 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 сегодня достаточно.