Сколько зарабатывает бэкэнд разработчик
У сайта есть две стороны: пользовательская и серверная. Всё, что видит пользователь на сайте: кнопки, плашки, заставки — это ответственность frontend-разработчика. Всё, что пользователь не видит, — это ответственность backend-разработчика. К backend можно отнести всё, что располагается на сервере: CMS, API систем сайта, админки и личные кабинеты, базы данных.
Из этой статьи вы узнаете, кто такой backend-разработчик и как им стать. Мы расскажем, чем он занимается, какие карьерные возможности есть в этой профессии и какие языки программирования нужны для работы.
Оглавление
- Кто такой backend-разработчик
- В каких сферах нужен
- Чем backend отличается от frontend-разработчика
- Junior
- Middle
- Senior
- Преимущества
- Недостатки
- Профессиональные навыки
- Личные качества
- Знание иностранных языков
- PHP
- Java
- Python
- Вуз
- Онлайн-курсы
Кто такой backend-разработчик
Backend — это программист, который находится на невидимой для пользователя стороне ресурса. Он отвечает за обработку пользовательского ввода, хранение и передачу данных.
Что должен знать JUNIOR BACKEND разработчик? Подробный план
Представьте, вы покупаете что-то в интернет-магазине. Вы сформировали корзину, ввели номер карты и нажали кнопку «Оплатить». В этот момент вы перешли на страницу платёжного шлюза. Вот тут вы сталкиваетесь с работой backend-разработчика. Он отвечает за то, чтобы сайт правильно определил вашу карту, банк и платёжную систему.
От него зависит, пройдёт ли оплата вашей покупки успешно.
Страница платёжного шлюза
В каких сферах нужен
Backend-разработчики нужны везде, где есть приложение, сайт или программа, которые взаимодействуют с пользователем. Другой вопрос, что уровень специалистов может быть очень разным. Всё зависит от потребностей компании.
Над чем может работать backend-разработчик:
- сайты-агрегаторы,
- платёжные терминалы,
- банковские системы,
- корпоративные сайты,
- интернет-магазины,
- приложения.
Чем backend отличается от frontend-разработчика
| Backehd | Frontend |
| Отвечает за «начинку» ресурса | Отвечает за внешнюю часть ресурса |
| Для работы нужно знание серверного языка программирования (PHP, Python, Java, Ruby, Go) и SQL для работы с базами данных | Для работы нужно знание JavaScript, HTML, CSS, LESS, SASS |
| Сложное обучение, нужны глубокие знания в узких вопросах | Обучение среднего уровня сложности, нужно базовое знание широкого набора рабочих инструментов |
| Высокая востребованность | Высокая востребованность |
Frontend и backend работают над одной общей целью ― запустить удобный и стабильно работающий ресурс. В идеале они работают параллельно: пока фронтенд разрабатывает интерфейс, бекенд разрабатывает логику работы ресурса, а после помогает подключить серверную часть к движку.
Сколько Зарабатывает Front end Разработчик и Почему это Не Зарплата | “В чем сила IT, брат?” | GoIT
Мифы о работе backend-разработчика
Профессия backend-разработчика связана со множеством мифов, мы разберём три самых популярных.
Backend-разработчики по статусу выше frontend-разработчиков. На самом деле это не так: backend и frontend — это партнёры, а не конкуренты. Один не может существовать без другого. А вот если говорить об уровне сложности работы, то сложнее всё-таки backend: там выявлять и исправлять ошибки труднее. Можно сказать, что backend — фундамент и стены, а frontend — штукатурка.
Слабые и кривые стены штукатуркой не спасёшь.
Backend-разработчики получают миллионы. Некоторые на старте могут рассчитывать только на 40 000 ₽. Потолок заработка backend-разработчика, судя по сайтам с вакансиями, — 700 000 ₽. Чтобы получить такой доход, нужно иметь высокую квалификацию, обширные знания в серверном администрировании, архитектуре баз данных, оптимизации нагрузок.
Backend-разработка — это очень сложно. Да, backend — это сложно, потому что критично. Плохой бекендер может загубить даже самый продуманный проект. Но backend может быть не настолько сложным, как вы можете представить, потому что в этой сфере есть множество готовых решений.
Средние зарплаты
Backend-разработчикам готовы много платить не только в Москве.
Средняя зарплата backend-разработчика по городам России по данным zarplan.com
Карьерный путь
Карьерная лестница у backend такая: junior, middle, senior. Расскажем, какие навыки вам понадобятся для перехода на новый уровень и какую зарплату вам стоит ожидать на каждом из них.
Junior
Знает один из популярных языков программирования (PHP, Python, Java) на базовом уровне. Может выполнять простые задачи в проекте и умеет работать с базами данных.
Вакансия для junior backend-разработчика
Middle
Владеет одним из популярных языков программирования на продвинутом уровне. Умеет использовать фреймворки, сам выполняет часть работы на проекте и участвует в разработке решений для небольших задач. Понимает, сколько времени нужно на выполнение той или иной работы, может устанавливать дедлайны для junior-разработчиков.
Вакансия для middle backend-разработчика на Python
Senior
Разработчик, который много работал на проектах и понимает глубокие особенности задач, которые решают в backend. Он владеет несколькими языками программирования на продвинутом уровне. Участвует в проектировании масштабных задач, понимает, когда нужно отказаться или внедрить определённое решение. Может консультировать других разработчиков и обладает развитыми soft skills.
Вакансия для senior backend-разработчика на Java
Преимущества и недостатки профессии
Высокая востребованность и неплохая зарплата — ещё не всё, чем привлекает профессия backend-разработчика.
Преимущества
- можно работать удалённо,
- если вы на достаточном уровне знаете иностранный язык, можно найти работу в зарубежной компании,
- не обязательно учиться в вузе, чтобы работать backend-разработчиком.
Недостатки
- нужно следить за трендами IT-сферы, чтобы поддерживать свою востребованность,
- нужно знать несколько популярных языков программирования и быть готовым осваивать новые в короткие сроки,
- высокая личная ответственность — обычно ошибки бекендера дорого стоят компаниям.
Требования к backend-разработчику
Даже к начинающим разработчикам предъявляют высокие требования для вхождения в профессию.
Профессиональные навыки
- знать и уметь использовать один из основных серверных языков программирования — PHP, Python, Java, Ruby, Go;
- понимать, как работают сервера и ресурсы;
- проводить тестирование ресурса: юнит-тесты, нагрузочные, интеграционные;
- владеть основами сетевой безопасности;
- знать фреймворки;
- работать с базами данных и проектировать их;
- администрировать UNIX-подобные системы;
- знать API;
- уметь составлять ТЗ на работу другим кодерам;
- разбираться в основах объектно-ориентированного программирования;
- использовать системы контроля Git.
Личные качества
- важно быть системным и чётким,
- уметь прислушиваться к советам и аргументировать своё мнение,
- быстро находить и применять нужную информацию,
- планировать свою работу и соблюдать дедлайны,
- уметь добиваться поставленных целей.
Знание иностранных языков
Если вы знаете английским хотя бы на разговорном уровне, это будет большим плюсом. Вы сможете изучать рекомендации по разработке от Google и других компаний, смотреть видеолекции иностранных коллег, читать в оригинале книги по юзабилити и дизайну. При желании вы можете найти работу в англоязычной компании и зарабатывать больше российских коллег.
Обязанности backend-разработчика
Главная обязанность backend-разработчика ― создать надёжный и корректно работающий ресурс. Кроме этого, специалист в сфере backend должен:
- разрабатывать, организовывать и управлять базами данных,
- обеспечивать безопасность веб-сервисов,
- настраивать автоматические уведомления,
- разрабатывать архитектуру кода,
- создавать и дорабатывать семантическое ядро сайта,
- заниматься API-разработкой,
- оптимизировать функции и работу сайта для его быстрой загрузки,
- работать с системами резервного копирования,
- контролировать работу сайта и заниматься отладкой его компонентов,
- оптимизировать алгоритмы,
- тестировать ресурс или отдельные элементы,
- контролировать состояние серверов.
На скрине ниже — почти обычная «раскладка» рабочего пространства бекендера.
Слева направо, сверху вниз.
- Файловая система проекта.
- Код скрипта.
- Файловая система на сервере.
- Git — система контроля версий.
- Терминал — серверные процессы.
Большую часть дня рабочий стол бекендера выглядит вот так
Типичный день backend-разработчика
Мы попросили знакомого backend-разработчика рассказать, как проходит его обычный рабочий день.
Источник: digital-academy.ru
Сколько зарабатывает бэкенд-разработчик в России и за границей в 2022 году
В статье мы собрали для вас статистику зарплат backend-программистов. Разберемся, сколько платят джуниорам, миддлам и сеньорам в разных странах, а также узнаем, какие деньги можно заработать на фрилансе.
Средняя зарплата бэкенд-разработчика в России в 2022 году
Средняя зарплата backend-разработчика в России составляет 117 500 рублей. От 85 000 до 150 000 рублей – именно в этот диапазон попадает большинство актуальных вакансий на сайте HeadHunter в 2022 году.
Перечислим основные факторы, которые влияют на доходы бэкенд-программистов:
- Квалификация, опыт и навыки. Заработок джуниора начинается от 40 тыс. руб., middle+ и senior-разработчики могут получать от 350 до 500 тыс. руб.
- Регион. Самые высокие заработные платы – в Москве, Санкт-Петербурге, Казани, Новосибирске и Екатеринбурге. В менее крупных городах, например, в Тамбове, Новокузнецке и Ульяновске предлагают оклад от 30 000 рублей даже специалистам с опытом.
- Язык программирования. По статистике, средняя зарплата по России: PHP – 73 000 руб., Python – 81 800 руб., Java – 135 000 руб.
Мы изучили данные с ХедХантера и составили сводную таблицу – в ней указаны минимальные и максимальные зарплаты, которые предлагают бэкенд-разработчикам российские работодатели.
| Условия | Диапазон зарплат |
| Junior | от 15 000 до 80 000 руб. |
| Middle | от 50 000 до 300 000 руб. |
| Senior | от 70 000 до 700 000 руб. |
| Удаленно | от 30 000 до 500 000 руб. |
Подробнее о профессии читайте в нашей статье Кто такой бэкенд-разработчик, что делает и где работает.
В Москве
На текущий момент на сайте HeadHunter опубликовано почти 350 вакансий для московских бэкенд-программистов, из них более 90% – с зарплатой от 85 000 рублей.
То есть можем сделать вывод, что в среднем backend-разработчик в Москве зарабатывает не менее 100 тысяч рублей ежемесячно. Еще в 44 объявлениях заработная плата превышает 350 000 руб.
| Условия | Диапазон зарплат |
| Junior | от 50 000 до 150 000 руб. |
| Middle | от 100 000 до 500 000 руб. |
| Senior | от 120 000 до 500 000 руб. |
| Удаленно | от 50 000 до 340 000 руб. |
В Санкт-Петербурге
Зарплата разработчика на бэкенде со стажем 1-3 года начинается от 70 000 рублей. В большей части вакансий указан заработок в размере от 100 до 120 тыс. руб.
Максимальный доход предлагают программисту с опытом от 3 лет, со знанием Java, MySQL, Agile и Git на условиях полной занятости в офисе.
| Условия | Диапазон зарплат |
| Junior | от 30 000 до 130 000 руб. |
| Middle | от 70 000 до 200 000 руб. |
| Senior | от 100 000 до 395 000 руб. |
| Удаленно | от 40 000 до 315 000 руб. |
Рекомендуем также прочитать нашу статью Как научиться программированию на бэкенд и стать разработчиком с нуля.
Зарплата backend-разработчика в США и Европе
Однозначного ответа, сколько зарабатывают бэкенд-программисты за границей, нет. На заработок влияет множество факторов:
- Квалификация, опыт, образование – в большинстве случаев IT-специалисты, имеющие диплом международного или европейского образца, получают больше.
- Регион – доход разработчика в США может быть выше в 1,5-2 раза, чем у его коллеги из Восточной Европы.
- Знание языков программирования – специалист, знающий фронтенд и бэкенд, ценится выше.
- Налоговая ставка – в некоторых странах существенная часть дохода уходит на налоги.
На сайте HeadHunter мы нашли несколько вакансий для backend-программистов с указанной зарплатой. Условия собрали в таблице:
| Должность | Зарплата в долларах | Зарплата в рублях | Условия |
| Backend Python-разработчик в США | от 2500 до 4000 долл. | от 185 000 до 295 000 руб. | опыт от 3-6 лет, знание Python, Flask, MySQL, API |
| Full Stack C# Developer в США | от 3500 до 4000 долл. | от 260 000 до 295 000 руб. | опыт не менее 3 лет в бэкенде, хорошее знание фронтенда |
| Full Stack Developer в Германии | от 2500 до 4000 долл. | от 185 000 до 295 000 руб. | опыт до 3 лет, знание PHP и фреймворков, JavaScript, HTML, CSS |
| Full-Stack Web-developer for Data Science в Германии | от 3750 долл. | от 275 000 руб. | опыт от 3 лет, знание PHP, Symfony, Javascript, HTML 5, CSS, DOCKER, Git |
Работать разработчиком на бэкенде можно из любой точки мира. Обучиться профессии тоже можно удаленно. Мы собрали лучшие онлайн-курсы от ведущих школ. С помощью удобного фильтра на нашем сайте вы сможете отсортировать их по цене, длительности, формату занятий, наличию дипломов и трудоустройству.
Подборка курсов Все онлайн-курсы по backend-разработке в 2022 году
Посмотреть подборку
Сколько зарабатывает бэкенд-программист на фрилансе
Доход бэкенд-разработчика зависит от:
- его опыта и квалификации;
- языков программирования, которыми он владеет;
- востребованности и стоимости услуг;
- времени, которое он уделяет работе.
Заработок фрилансера напрямую зависит от его мотивации. Мы сравнили заказы на фриланс-биржах, чтобы выяснить, сколько зарабатывают программисты на одном заказе. Примерные условия собраны в таблице:
| Задание | Стоимость заказа |
| Создать бота для Вконтакте на PHP | 5000 руб. |
| Восстановить работоспособность программы на Python | 5000 руб. |
| Создать робота для криптобиржи | 10 000 руб. |
| Подключить систему скидок к сайту на CMS | 15 000 руб. |
| Сделать Telegram-бота на Python | 30 000 руб. |
| Бэкенд-разработка киберспортивной платформы | 120 000 руб. |
Источник: uchis-online.ru
Зарплаты: Backend разработчик, Россия | декабрь 2022 года
206427.0 руб. — средняя зарплата для ‘Backend разработчик’ (Россия).
Средняя зарплата для ‘Backend разработчик’, рассчитанная на основе вакансий, показывает среднее арифметическое по зарплатам из найденных вакансий (количество таких вакансий для ‘Backend разработчик’ равно 426).
199000.0 руб. — медианная зарплата для ‘Backend разработчик’ (Россия).
Возможно, вас заинтересуют зарплатные обзоры по следующим профессиям и специализиям:
| Developer | 160134.0 | 151000.0 | 8988 вак. (с зп) 20782 вак. 03.12.2022 |
| разработчик | 161126.0 | 151000.0 | 6969 вак. (с зп) 16470 вак. 29.12.2022 |
| программист | 161362.0 | 151000.0 | 6950 вак. (с зп) 16429 вак. 29.12.2022 |
Статистика зарплат для ‘Backend разработчик’ по городам
Лидеры по количеству вакансий для ‘Backend разработчик’: Москва, Санкт-Петербург, Екатеринбург, Новосибирск, Казань.
Лидеры по уровню средней зарплаты для ‘Backend разработчик’: Москва, Казань, Санкт-Петербург, Новосибирск, Екатеринбург.
| Москва | 250437.0 | 251000.0 | 191 вак. (с зп) 431 вак. 17.11.2022 |
| Санкт-Петербург | 215459.0 | 207000.0 | 61 вак. (с зп) 150 вак. 13.11.2022 |
| Екатеринбург | 205250.0 | 197000.0 | 16 вак. (с зп) 37 вак. 05.11.2022 |
| Новосибирск | 208176.0 | 179000.0 | 17 вак. (с зп) 34 вак. 05.11.2022 |
| Казань | 231308.0 | 199000.0 | 13 вак. (с зп) 27 вак. 19.11.2022 |
| Нижний Новгород | 183444.0 | 183000.0 | 9 вак. (с зп) 20 вак. 19.11.2022 |
| Краснодар | 163571.0 | 179000.0 | 7 вак. (с зп) 18 вак. 19.11.2022 |
| Ростов-на-Дону | 163400.0 | 133000.0 | 10 вак. (с зп) 17 вак. 19.11.2022 |
| Пермь | 122000.0 | 101000.0 | 8 вак. (с зп) 16 вак. 19.11.2022 |
| Челябинск | 151800.0 | 119000.0 | 5 вак. (с зп) 15 вак. 11.08.2022 |
Статистика зарплат для ‘Backend разработчик’ по некоторым регионам
| Новосибирская область | 195936.0 | 175000.0 | 47 вак. (с зп) 87 вак. 23.05.2021 |
| Республика Татарстан | 139429.0 | 113000.0 | 28 вак. (с зп) 61 вак. 15.05.2021 |
| Свердловская область | 172125.0 | 173000.0 | 32 вак. (с зп) 53 вак. 11.06.2021 |
| Самарская область | 199800.0 | 179000.0 | 20 вак. (с зп) 47 вак. 07.06.2021 |
| Ростовская область | 137545.0 | 131000.0 | 22 вак. (с зп) 44 вак. 27.06.2021 |
| Нижегородская область | 158333.0 | 141000.0 | 18 вак. (с зп) 41 вак. 21.05.2021 |
| Краснодарский край | 150579.0 | 131000.0 | 19 вак. (с зп) 40 вак. 15.06.2021 |
| Пермский край | 127364.0 | 131000.0 | 11 вак. (с зп) 29 вак. 10.06.2021 |
| Томская область | 148412.0 | 151000.0 | 17 вак. (с зп) 25 вак. 24.05.2021 |
| Республика Башкортостан | 156667.0 | 105000.0 | 12 вак. (с зп) 20 вак. 10.06.2021 |
Источник: zarplan.com
Профессия: бэкенд-разработчик
Если бы эта статья вышла не на Хабре, а в образовательном журнале, я бы начал её так: «Вспомните сайты, которые вам нравятся, на которых удобная навигация и приятный интерфейс. А знаете ли вы, что это только верхушка айсберга…». Но на Хабре это знают, пожалуй все, поэтому никакой лирики.
Бэкенд любого веб-проекта — это сложная система, которая позволяет приложению быстро работать, качественно искать, шустро отдавать информацию пользователю, надёжно и безопасно хранить данные и при необходимости работать с другими внешними системами. Это как швейцарские часы: покупают их за стиль и шильдик, но ценители знают, что под сдержанным циферблатом кроется волшебный мир часового механизма. И бэкенд-разработчики — это маги механизмов, организмов, кишочек, внутренностей или как вы ещё это называете у веб-приложений. Эх, без лирики не удалось!
Короче, сегодня разбираем очередную профессию в серии «Профессия…». Итак, а что, если пойти в бэкенд-разработчики?

Бэкенд это всегда немного боль
Кто это?
Если говорить академично, то бэкенд-разработчик — это программист, который отвечает за внутреннюю и вычислительную логику веб-сайта или веб-приложения, а также иного программного обеспечения и информационных систем. Строго говоря, бэкенд бывает не только у веб-решений, он есть и у десктопа, и у мобильных приложений, т.к. по сути бэкенд — это всё, что относится к программно-аппаратной части сервиса. Но исторически так сложилось, что бэкенд и фронтенд начали особенно явно выделять именно в веб-разработке. А поскольку это ещё и самая популярная на данный момент сфера, то и мы будем говорить именно о вебе (для десктопа многие тезисы тоже будут справедливы, а про мобильных разработчиков мы с вами поговорим в одном из выпусков отдельно).
Бэкенд-разработчик создаёт компоненты и функции, которые доступны пользователю приложения или сайта через интерфейс. Проще говоря, бэкендеры — это программисты, которые разрабатывают всё то, что не видит и напрямую не трогает пользователь. То есть красивая форма ввода данных или корзина интернет-магазина — это фронтенд, а хранение данных в СУБД, связка полей формы регистрации и корзины, интеграция с платёжным шлюзом, автоматические письма, подгрузка и обновление контента — это всё бэкенд. Поэтому, если форма регистрации стала отдавать ошибку базы, виноват… тестировщик 🙂 (почему— мы тоже расскажем в очередной серии).
За что отвечает бэкенд-разработчик:
- обеспечение корректной работы всех функций сайта и его вычислительной логики;
- организация и работа с базами данных посредством СУБД;
- разработка базовой логики и алгоритмов работы приложения;
- API;
- необходимые интеграции с внешними сервисами;
- тестирование и отладка приложения и отдельных компонентов.

Фронтэнд-разработчики красят лампу в жёлтый цвет и втирают бэкенду, что лампочка работает, но только в дневное время.

Бэкенд-разработчики удивляются, откуда у всех взялись проблемы с этими лампочками, вспоминает, что забыл задеплоить свет в базу данных, успокаивается и валит вину на фронтэнд.
Где нужен?
Как и в случае с фронтенд-разработкой, абсолютно везде, где есть сайт или приложение, которое в вебе взаимодействует с пользователем. Другое дело, что всем нужны бэкендеры разного уровня: в офисе условной социальной сети или крупного сайта объявлений бэкенд-разработчик обязан не просто иметь базовые навыки, но и работать с высокими нагрузками, микросервисной архитектурой и контейнеризацией (Docker, Kubernetes), знать системы мониторинга (типа Zabbix, Grafana), иметь навыки Scrum (опционально для конкретных компаний). А для небольшого интернет-магазина вполне достаточно связки PHP-Ajax-нужная СУБД-немного HTML, иногда и того меньше. Понятно, что и оплата труда, и требования к опыту также совершенно разные.
Традиционно на «Хабр Карьере» мы нашли 444 вакансии бэкенд-разработчика, что без малого в 2 раза больше, чем во фронтенде. На hh.ru — около 1800. В общем, на рабочих местах вас уже ждут фронтендеры, у которых поиск по сайту отрабатывает два часа 🙂 А если серьёзно, в компании может быть 2-3 бэкенд-разработчика на одного фронтенда, особенно если речь идёт о приложениях со сложной внутренней логикой и бизнес-логикой (интернет-магазин, CRM-ERP, корпоративный портал и т.д.).
Средняя заработная плата
Заработную плату будем смотреть тоже на «Хабр Карьере». Возьмём данные за второе полугодие 2019 года, вне зависимости от владения тем или иным стеком.
| Стажёр (Intern) | 35 345 руб. |
| Младший (Junior) | 55 241 руб. |
| Средний (Middle) | 105 048 руб. |
| Старший (Senior) | 168 350 руб. |
| Ведущий (Lead) | 185 335 руб. |
Если сравнить с заработной платой фронтендеров, то рост незначительный, от нескольких сотен рублей до 6000 руб. (у мидлов). Но это реально очень средние значения, многое зависит именно от стека программирования, дополнительных навыков, опыта и основного языка разработки. Кстати, для всех уровней бэкенд-разработчика на первом месте стоит PHP, и мы о нём ещё поговорим.
Базовые требования к профессионалу
Требования к бэкендеру ещё более чувствительны к особенностям компании и её бизнес-процессам, чем у фронтендера. Иногда это могут быть весьма странные на первый взгляд вещи такие как «понимание принципов работы рыбного холодильника как предприятия», «знание основ продаж или опыт в продажах», «блестящее знание JavaScript, CSS и HTML».
Но это выглядит безумно и отталкивающе только при первом подходе. На самом деле, бэкенд-разработчик действительно больше погружён в бизнес-процессы, должен не только разрабатывать код в соответствие с ними, но и подстраивать какие-то вещи под конкретные задачи, понимать, как оно работает изнутри. Если вы никогда не видели воронку продаж и не понимаете, чё это за фигня, вы никогда не сможете разработать её логику вместе с фильтрами, срезами и переходами (даже если у вас будет отличное ТЗ, разобраться сложно). Ну а в примере с «блестящее знание JavaScript, CSS и HTML» всё просто: вероятно, руководитель не очень-то доверяет своему другому разработчику и готов пересмотреть подход к разработке. Такое нередко случается в небольших компаниях.
Но есть и базовый набор требований, который бэкенд-разработчик увидит практически в любой вакансии.
- Знание хотя бы одного «серверного» языка программирования: PHP, Go, ASP.NET, C/C++, Python, Ruby, Java. В некоторых случаях достаточно знания JavaScript для бэкенда (Node.js), но это скорее как плюс, чем как пункт.
- Знание API (REST, SOAP — всё реже).
- Понимание принципов работы серверов Apache, NGINX, IIS и проч.
- Навыки написания юнит-тестов и покрытия кода тестами.
- Основы сетевой безопасности и знание инструментов её обеспечения.
- Знание популярных веб-фрейморков, которые способны решать задачи разработки конкретного приложения.
- Навыки написания запросов к БД и проектирования баз данных.
- Знание основ фронтенда — и это не плюс, а обязательный пункт, иначе вам придётся крайне непросто проектировать и писать приложение.
- Администрирование UNIX или знание Linux (можно любого одного дистрибутива).
- Знание принципов работы HTTP (кэширование, авторизация, структура сообщений, заголовки, коды ответов и проч.)
- Модель OSI.
- Навыки составления и оценки технического задания (ТЗ) — очень важный навык, который необходим для сбора самой точной информации о требованиях к ПО.
Кстати сказать, среди бэкендеров много хороших, крепких математиков, потому что бэкенд-разработка — наука точная, и качество результата сильно зависит от того, насколько выверены будут выбранные вами и применённые алгоритмы, паттерны, циклы, функции и т.д.
Топ-5 востребованных технологий у специалистов по данным «Хабр Карьера», 2 полугодие 2019 года, нижняя строка — «дополнительные» скиллы.
Принцип формирования списка: пользователи, внося данные о заработной плате, указывают скиллы, которые у них в приоритете (что они умеют делать!). То есть это не требования работодателя, а навыки специалистов каждой категории.
Как видите, компании готовы брать стажёров с базовыми вузовскими C, C++ и C#, но в дальнейшем предпочитают специалистов с «рабочим набором» бэкендера. Обратите внимание на интерес к контейнеризации и высоконагруженным системам.
Кстати, вот вам очередной роадмап, но уже для бэкенд разработчика (остальные тоже есть на сайте — по-моему, это одно из лучшего и системного, что мне приходилось видеть по этой теме). Разглядывайте, распечатывайте и вперёд, к вершинам бэкенда.

Важные личные качества
Бэкендеру хорошо, он может быть интровертом 🙂 Его зона работы с пользователями сведена до минимума, в основном, все рабочие контакты с менеджерами или коллегами. Эти ребята нередко работают по ТЗ и делают всё так, как это прописано в документе либо так, чтобы получить состояние, максимально близкое к целевому (ТЗ, знаете ли, тоже бывают несовершенны, а то и совершенно не…).
Однако есть набор качеств, без которых о направлении бэкенда думать не стоит. Они вам могут показаться чем-то вроде качеств сотрудника, который нужен «молодой динамически развивающейся команде», но нет, речь именно о внутренних императивах, которые помогут не просто хорошо выполнять работу, но и делать это с внутренним комфортом (а не на «отвяжись»).
- Ответственность. Действительно, на бэкендере лежит ответственность буквально за всё: чтобы данные сохранились, чтобы реляционные таблицы работали как надо, чтобы временные пояса учитывались, чтобы сайт был шустрым и т.д. И если кривая навигация от фронтендера приведёт к паре злобных вскриков пользователей, то ошибка бэкендера может стоить очень дорого — в прямом смысле (например, если бизнес-данные по какой-то причине перестанут сохраняться или не сработает разделение прав доступа в какой-нибудь CRM-системе).
- Внимательность и внимание к мелочам. Опять же, мелочей в бэкенде не бывает, поэтому необходимо тщательно проектировать связность работы всех компонент и не упустить ничего.
- Трудоспособность. Прокрастинация — опасный враг бэкендера, он должен уметь сосредоточенно работать, иногда в крайне сжатые сроки, поэтому «пилить код с ленцой» это, пожалуйста, в пет-проект или уже в состоянии тимлида (там других задач хватает).
- Логическое мышление и аналитический склад ума. Оно и понятно.
- Умение доводить дело до конца, нацеленность на результат. В бэкенде важен результат — корректно и ожидаемо работающее приложение.
- Способность переключаться на макрозадачах. Нередко бывает, что нужно оставить код одной части проекта и реализовать довольно крупную функцию. Это непросто, потому что программист уже погружён в архитектуру и логику. Способность переключаться без особых проблем для задач — практически джедайская.
- Навыки планирования и исполнения плана. Бэкенд любого проекта — это сборник разноплановых задач. И если вы единственный бэкендер проекта или у вас с коллегами слабо реализовано разделение труда, только планирование и спасёт от авралов, факапов и срыва дедлайнов. Жёсткое к себе и времени планирование — залог спокойной работы практически без переработок (которые у бэкендеров случаются чаще остальных).
- Умение работать в команде. Вам нужно будет взаимодействовать с единой командой разработки единого же приложения, а значит, дискуссии, но не конфликты, рефакторинг, но не оскорбления, отстаивание своей позиции, но не бойкоты. Если злой интровертный бэкендер отлично сделает свою работу, закоммитит и умоет руки, его труд пользователи ещё долго не смогут оценить — потому что нужно «собирать» проект в составе всей команды, а не отгораживаться по принципу «к фронтенду ни ногой».
Необходимость знания иностранных языков
Вот что было написано для фронтенд-разработчика.
Для любого программиста крайне желателен английский язык не ниже upper-intermediate с уклоном в технический английский. Так вы сможете читать в оригинале многочисленные рекомендации Google и других компаний для оптимальной разработки (очень много полезной документации!), самообучаться с помощью зарубежных лекций, общаться с коллегами на форумах, задавать вопросы, а также читать книги по юзабилити и дизайну, среди которых очень много крутых англоязычных и пока не переведённых изданий.
Это же справедливо и для бэкендера, даже в большей мере. В комментариях к предыдущей статье заметили, что уровень upper-intermediate великоват для айтишника, достаточно и ниже. Я сужу по себе и по уровню учебников. Скажем так, от intermediate до upper-intermediate шаг не выглядит пропастью и уровень «на поболтать» берётся легко. А вот от upper до advanced — пропасть и по сложности, и по лексике.
Впрочем, если вам норм читать и понимать, что читаете при другом уровне, никто вас экзамен сдавать не заставит, пользуйтесь.
Где учиться
В принципе, те же технические вузы, курсы, самообразование и корпоративные университеты. Но есть важные нюансы.
- Если фронтент-разработчиком можно стать и после непрофильного вуза (строительство, дизайн, экономика и проч.), то бэкендером гораздо сложнее. Идеальная образовательная основа для бэкенд-разработчика — математическое, физическое и собственно ИТ образование. Именно они дают отличную базу для понимания алгоритмов, функций, паттернов, вычислительных процессов и т.д.
- С курсами дело обстоит тоже печальнее — вы можете начать изучать какой-то язык (например, PHP или Java) и даже сделать какой-то фуллстековый мини-проект, но только опыт реальной работы даст полное понимание функционирования и взаимодействия всех компонентов, потому что у бэкенда слишком много деталей и подводных камней (даже несмотря на крутые инструменты разработки).
- Именно для бэкенда лучшим образовательным путём мне видится изучение основ серверного языка и путь от стажёра в компании, где есть наставник/ментор по специальности. На реальном проекте и узких задачах вы быстрее поймёте, что к чему.
- Никто не отменяет небольшие open source проекты, в которые можно коммитить.
- И, конечно, должен быть свой сайт (пет-проект), который станет главным тренировочным плацдармом. Путь предстоит не самый простой, поэтому выбирайте ту тематику, которую, кроме самой разработки, вам будет интересно развивать. Например, если вы увлекаетесь спортом и здоровым образом жизни, разработайте приложение-дневник со счётчиками, коннекторами к каким-нибудь датчикам, ачивками и т.д. Это будет полезно и увлекательно (а иногда из таких сайд/пет проектов вырастают коммерчески успешные стартапы).

Лучшие книги и средства обучения
Выбирать средства обучения необходимо исходя из выбранного языка программирования и актуального в конкретный момент стека. Общие рекомендации такие.
- Базовая книга по вашему языку программирования — мне нравятся издания O’Reilly, многие переведены издательством «Питер».
- Аналогично базовые книги по вашему стеку.
- Кукбуки (cookbook) по языкам и рекомендации корпораций, статьи в блогах и т.д.
- Бек Кент, Экстремальное программирование. Разработка через тестирование — отличная книга для любого разработчика в принципе, но особенно для бэкендера. Проникнуться философией TDD дорого стоит.
- Джоэл Х. Спольски — можно читать его блог, можно ещё на просторах Рунета найти электронную книгу «Джоэл о программировании» — сборник постов из блога на русском.
- Роберт Мартин «Идеальный программист», «Чистый код» — переводная книга от «Питера» хороша, но в оригинале стиль и шутки вообще бесподобны.
- Мартин Фаулер и коллектив авторов «Шаблоны корпоративных приложений» — «взрослая» книга для джавистов, но не помешает ни для одного серверного языка как сборник инсайтов и крутых находок.
- Бесплатные курсы и видео, которых бесконечно много на Youtube на русском и английском языках. Просто слушайте, повторяйте, систематизируйте знания. Для начала подойдут любые, очень скоро вы научитесь отличать крутые вещи от дилетантских.
- webref.ru — очень классный сайт для разработчиков веба, разбирайтесь, обучайтесь.
- codecademy.com — интерактивный сайт для обучения разработке на разных языках программирования на английском, с самого низкого, нулевого, уровня.
- ITc | сообщество программистов — вагон организованной информации с курсами, лекциями и чем угодно. Читайте комментарии, легко определяйте лучшее для обучения.
- Библиотека программиста — куча книг по любой айти-тематике.
Будущее бэкендера
Будущее бэкендера прорисовывается довольно чётко и перспективно.
- Стандартный путь внутри своего стека: junior с односложными задачами и запросами, middle с глубокими навыками программирования и отличным владением стеком, senior с проектированием, архитектурами, высокими нагрузками и прочим кубернетесом, team lead с управленческими навыками т.д. Это хороший корпоративный путь, внутри которого можно менять компании, проекты, отрасли, расти и быть востребованным.
- Переход на другой стек и выход из веба: нередко именно бэкенд-разработчики осваивают Java, С/С++ и уходят в «кровавый энтерпрайз», десктопные приложения, разработку средств разработки, нейросети, компьютерное зрение и т.д. Действительно, бэкендеру проще осваивать эти трудные технологии и ЯП.
- Переход в фуллстек-разработку: бэкендер ближе к фуллстеку и совершить такую трансформацию можно совершенно незаметно.
- Переход в DevOps, DevSecOps, информационную безопасность — когда знаешь веб-приложения изнутри как свои пять пальцев, этот путь оказывается логичным и весьма доходным.
- Переход на менеджерские позиции, если есть желание и склонность к управленческим задачам.
- Фриланс и своё программное агентство — для смелых и в меру азартных ребят. Можно неплохо зарабатывать на аутсорс-разработке (особенно если идти в сторону фуллстек-разработки).
Главное, что у вас не выйдет — это быть плохим разработчиком и при этом рассчитывать на что-то интересное. Дело в том, что каждая компания ждёт от бэкендера ответственности (представьте себе ошибки в коде банковского приложения, какой-нибудь критически важной ГИС или системы онлайн-мониторинга — сразу поседеть можно) и здравого подхода к работе. Филонить или говорить «так задумано» вряд ли получится — при всей внешней незаметности работы бэкенда сбой в ней заметнее всего.
Мифы профессии
▍Бэкенд — это очень сложно
Спорный вопрос. Часть разработчиков утверждают, что он проще благодаря средствам разработки, бесчисленным библиотекам и низкому уровню динамичности, другая часть боится подойти к бэкенду в принципе. Правда, как всегда, посередине: скорее, стэк бэкенд-разработчика многообразен и имеет разнородные компоненты, но, во-первых, не всё нужно в проекте, во-вторых, стоит понять что-то одно, и вот уже все взаимосвязи очевидны, знания нанизываются на единый стержень. В любом случае попробовать себя в бэкенде нужно — даже если вы развернётесь и выберете другой тип разработки, полученные знания помогут вам в работе.

▍Бэкенд-разработчик получает миллионы
Это вообще общий миф про программирование. Самая большая реальная заработная плата у российского разработчика, которую мне приходилось видеть своими глазами — это 540 тыс. руб. в месяц (С/С++, зарубежный проект, системы компьютерного зрения, кандидат наук, удалёнка), вторая от него — 400 тыс. руб. (Delphi, удалёнка, зарубежный энтерпрайз, немецкий язык как нативный).
Остальные очень похожи на те цифры, которые я взял с «Хабр Карьеры» для своих табличек. Миллионы получать вы будете только в том случае, если сойдётся: блестящее знание языка + талант + опыт и уникальные навыки в узкой сфере + проект, готовый столько платить. Таких ребят единицы и я не скажу, что их участь прекрасна: 99% их жизни работа, 1% — сон. Поэтому важно осознать другой тезис: бэкенд-разработчики востребованы и хорошо зарабатывают, лучше многих специалистов. Значит, стоит постараться.
Обожаю этот холивар! Но при этом знаю, как его пугаются новички и стремятся обойти этот мощный и во многом удобный язык и его фреймворки. Дело в том, что в начале 2000-х-2010-х PHP был крайне популярным языком программирования у фрилансеров и прочих джентльменов удачи от ИТ. На нём написано море плохих дилетантских сайтов и приложений — но не потому что язык плохой, а потому что эти ребята не были способны использовать его изящно и грамотно. Оттуда и пошли эти мифы про «плохость».
Конечно же, PHP прост в изучении, живее всех живых, на нём написаны и поддерживаются сотни тысяч проектов, проектищ и проектиков и жить ему ещё довольно долго. Согласно Stackoverflow PHP выбирают 25.8% профессиональных разработчиков. Да и по Octoverse GitHub язык довольно стабилен по количеству проектов:

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

- бэкенд
- бэкенд-разработчик
Источник: habr.com
