Бэкенд-разработчик: кто это, чем он занимается и как им стать
Необходимый минимум знаний и навыков в 2024 году.
Иллюстрация: Катя Павловская для Skillbox Media
Кто такой бэкенд-разработчик и чем он занимается
Бэкенд-разработчик (backend developer) — это специалист, который занимается серверной частью сайтов, мобильных и десктопных приложений и игр. Он реализует внутреннюю логику работы приложения, обеспечивает его взаимодействие с базами данных и внешними сервисами.
По другую сторону сервера задачи решают фронтенд-разработчики. Они отвечают за клиентскую часть продукта: вёрстку, работу и взаимодействие элементов интерфейса, внешний вид данных и так далее. В общем, за всё, что пользователи видят на своих экранах.
Пример, чтобы лучше понять разницу
Представьте интернет-магазин. У него есть корзина, табы с разделами, кнопки, фотографии товаров, текст и другие элементы. За то, как всё это выглядит, отвечает фронтенд.
Но, чтобы фронтенду было что показывать, нужно «научить» сервер обрабатывать запросы пользователей и получать информацию о товарах из базы данных, подключить платёжную систему и дополнительные сервисы, например CRM-систему. Всё это относится к бэкенд-разработке.
Читайте также:
Итак, backend-программисты работают со всем, что не видит пользователь: базами данных, API, интеграциями и внутренними алгоритмами обработки данных.
В обязанности бэкендера входит:
- Реализация бизнес-логики приложения.
- Организация работы баз данных.
- Настройка работы сервера и мониторинг его состояния.
- Разработка и документирование API.
- Интеграция с внешними сервисами.
- Настройка резервного копирования данных.
В некоторых компаниях придётся заниматься настройкой серверов, мониторингом их работы и проведением бэкапов сайта для их восстановления в случае взлома или проблем с хостингом.
Что должен знать и уметь backend-разработчик
Требования в разных вакансиях могут различаться, но есть базовый набор навыков, который встречается в большинстве из них.
Языки программирования. Разработчику не обойтись без их знания — придётся выучить минимум один из классических языков программирования для бэкенда: Java, Python, Ruby, PHP или C#. Кроме этого, желательно знать базовые фреймворки для выбранного языка — Django или Flask для Python, Spring для Java, Ruby on Rails для Ruby, Laravel для PHP.
Базы данных и ORM. Джуны должны знать язык запросов SQL (Structured Query Language) и уметь работать с реляционными (MySQL, PostgreSQL или Oracle DB) и нереляционными (MongoDB или Redis) базами данных.
Начиная с уровня мидл-разработчика потребуется знать ORM, object-relational mapping, или объектно-реляционное отображение. Это способ работы с базами данных с помощью методов ООП, позволяющий бэкендеру писать запросы к БД на своём привычном языке программирования, не переключаясь на диалекты SQL. Например, в бэкенде часто применяют SQLAlchemy для Python или Hibernate для Java.
API внешних сервисов. API — это набор правил и методов взаимодействия с внешними сервисами, позволяющий интегрировать их в сайт. Бэкенд-разработчики должны уметь подключать и настраивать API-соединения.
Инструменты сетевой безопасности. Сайты и приложения подвергаются различным видам кибератак: SQL-инъекциям, DDoS-атакам, XSS и другим. Это важно учитывать при проектировании приложений и написании кода, соблюдая общепринятые стандарты безопасности.
Протоколы передачи информации HTTP и HTTPS. Они используются для передачи данных между разными источниками — как правило, между компьютером и сервером. Разработчику необходимо понимать, как технически устроена эта передача и уметь «читать» коды состояния сервера, оценивая его работоспособность.
Docker и Kubernetes для создания и управления контейнерами. Docker — это платформа, которая позволяет упаковать приложение со всем окружением и зависимостями в контейнер, который затем можно передать и запустить в нужной системе. Благодаря этому оно будет одинаково работать во всех средах вне зависимости от окружения. Kubernetes используется для управления ресурсами контейнеров, настройки их обновлений и безопасности.
Серверы Nginx и Apache. Это два самых распространённых веб-сервера в мире, на которые приходится более 50% всего интернет-трафика. В некоторых компаниях потребуется работать с ними: устанавливать, настраивать и мониторить доступность для пользователей.
Системы контроля версий. Они позволяют синхронизировать работу команды разработчиков над одним проектом и могут использоваться для создания бэкапов кода.
Юнит-тесты. Хороший код должен быть покрыт тестами, проверяющими его работоспособность. Часто в командах этим занимаются автоматизаторы тестирования, но иногда юнит-тестирование проводит сам разработчик.
Организации могут предъявлять дополнительные требования. Например, если компания разрабатывает агрегатор объявлений, то кандидат должен разбираться в микросервисной архитектуре, уметь работать с высокими нагрузками и системами их мониторинга. А для небольших локальных интернет-магазинов будет достаточно базовых навыков.
Курсы для старта в разработке
Основные языки backend-разработки
Главный инструмент работы бэкенд-разработчика — серверный язык программирования. Перечислим те из них, которые чаще всего встречаются в вакансиях.
PHP. Универсальный язык, который работает во всех известных операционных системах. Он специально создан для веб-разработки и подходит для объектно-ориентированного программирования. На PHP написаны популярные CMS: WordPress, Joomla!, Drupal и другие.
Java. Язык общего назначения, который применяют в различных отраслях: мобильной и веб-разработке, создании десктопных программ и игр, настройке промышленного оборудования и бытовой техники. Именно на Java написан бэкенд для интернет-магазинов eBay и Amazon, социальных сетей LinkedIn и X, платёжной системы PayPal и игры Minecraft.
Python. Используется для создания серверных частей приложений, анализа данных и data science, создания игр, мультимедийных приложений, работы с базами данных и решения других задач. На нём написаны YouTube, система автоматизации NASA, Google, «Инстаграма»*, «Фейсбука»* и другие популярные сервисы.
Ruby. Язык общего назначения, который используется в веб-разработке. Для создания сайтов пишут на Ruby on Rails — популярном фреймворке на основе Ruby.
Swift. Универсальный язык от Apple, на котором пишут программы для устройств на iOS, iPadOS, macOS, tvOS и watchOS, то есть для всех гаджетов корпорации — от часов до стационарных компьютеров. Swift позволяет одновременно создавать фронтенд и бэкенд приложений.
Kotlin. Молодой язык программирования, который используют для разработки мобильных, десктопных и веб-приложений, а также в data science. На Kotlin чаще всего пишут приложения для Android-устройств: смартфонов, телевизоров, умных вещей, приборов для бизнеса и промышленности — кассовых аппаратов, терминалов для сбора данных и так далее.
Какой из этих языков стоит учить? Лучше всего смотреть на их востребованность на рынке:
Лидеры среди языков для бэкенда — Python и Java, популярность которых меняется в зависимости от страны, в которой находится работодатель. Исследование российского рынка подтверждает эти выводы.
Нужны ли бэкенд-разработчики?
В начале ноября 2023 года на HeadHunter было больше 1300 вакансий:
Больше всего вакансий в Москве, на втором месте — Санкт-Петербург, а затем идёт Новосибирская область. Нужны специалисты разного уровня — от джуниоров до тимлидов.
Разработчики требуются в различных отраслях: в банковской сфере, электронной коммерции, медицине, образовании, туризме и многих других. Там они работают над:
- платёжными терминалами;
- банковскими системами;
- интернет-магазинами;
- сайтами-агрегаторами;
- корпоративными сайтами
- и другими проектами.
Карьера бэкендера
Для backend-разработчиков, как и других айтишников, существует система грейдов, классифицирующая их по опыту, навыкам и уровню зарплаты. Правда, система эта весьма условная — в каждом конкретном случае требуемый набор компетенций для специалистов разных уровней определяет работодатель. Не меньшая условность — годы опыта: в IT можно встретить как «вечных джунов», так и сеньоров, у которых молоко на губах обсохло с опытом в IT чуть больше года.
Тем не менее попробуем приблизительно охарактеризовать каждую ступень.
Джуниор-разработчик — начальный уровень. Опыт работы до года. Джуниор, или джун, выполняет задания, которые за него сформулировали старший программист или менеджер. Как правило, от джуниора требуется знать один язык программирования и фреймворк, уметь работать с базами данных и веб-сервером, понимать основные принципы веб-разработки.
Мидл-разработчик— средний уровень. Опыт работы от 1 до 3 лет. Это разработчик, который может самостоятельно формулировать и решать задачи. Контроль более опытного специалиста нужен только на этапе приёмки результата.
Мидл глубоко знает один или несколько языков бэкенд-разработки, понимает их возможности и ограничения, имеет большой опыт работы с базами данных и ORM, умеет самостоятельно развёртывать веб-серверы и работать с API внешних сервисов.
Сеньор-разработчик — специалист высокого уровня с опытом работы от 3 до 6 лет. Он создаёт и развивает архитектуру приложения, разрабатывает структуру баз данных, ориентируется в паттернах проектирования и знает, когда какой использовать в зависимости от задач бизнеса. Выступает наставником для джуниор- и мидл-разработчиков.
Backend-разработчик может вырасти до тимлида, занимающегося управлением разработки, и дойти до уровня CTO — технического директора компании. Также бэкендеры часто переходят в одну из смежных областей: фронтенд или фулстек-разработку, машинное обучение, DevOps и информационную безопасность.
В крупных компаниях для повышения мотивации и более точной оценки навыков могут вводиться промежуточные и дополнительные высшие грейды: strong junior, strong middle, strong senior, architect и так далее.
Сколько зарабатывают бэкендеры
По данным «Хабр Карьеры» за первое полугодие 2023 года, медианная зарплата бэкенд-разработчика в России — 200 000 рублей.
Примерные диапазоны зарплат для разных грейдов выглядят так:
- Джуны — от 25 000 до 70 000 рублей.
- Мидлы — от 90 000 до 200 000 рублей.
- Сеньоры — от 150 000 до 500 000 рублей.
Это усреднённые показатели, актуальные на осень 2023 года, на основе вакансий HeadHunter. В России самые высокие зарплаты в Москве и Санкт-Петербурге. В регионах они меньше на 20–30%.
На уровень зарплаты влияет и знание конкретного языка бэкенд-разработки. По данным «Хабр Карьеры», больше всего зарабатывают бэкендеры, использующие Java, PHP и Python:
Здесь мы напомним, что в Skillbox есть курсы для старта в разработке: «Профессия Разработчик», «Python-разработчик», «Фронтенд-разработчик» и «Веб-разработчик на PHP».
Как стать бэкенд-разработчиком
Стать бэкенд-разработчиком можно тремя способами: заняться самообразованием, получить профильное высшее образование или выбрать готовый курс от онлайн- или офлайн-школы.
Правильного пути нет — каждый сам выбирает, по какому идти, а мы лишь можем дать несколько советов. Кому-то они могут показаться слишком очевидными, но менее важными и справедливыми они от этого не становятся.
Практикуйтесь с первых дней. Прочитать два тома Лутца и Шилдта — это хорошо, но мастером Python и Java это ещё никого не сделало. Поэтому установите себе IDE или редактор кода и… пишите код, решая все упражнения с которыми столкнётесь в книгах, статьях и видеороликах.
Пилите пет-проекты для отработки навыков. Продолжаем предыдущую мысль. Самостоятельная разработка даже простого калькулятора или планировщика задач поможет активировать и связать воедино знания, полученные во время чтения книг и решения задач. Если сможете написать движок для личного блога, то закрепите навыки программирования на Python, разберётесь в устройстве фреймворка Django, научитесь работать с базами данных и ORM и даже узнаете, как функционирует веб-сервер. Такой комплексный опыт сложно получить, лишь читая книги и решая абстрактные задачи на LeetCode.
Учите английский. Документация к новым версиям фреймворков, библиотек и других технологий всегда публикуется на английском языке и только затем переводится энтузиастами или компаниями на русский. Если вы хотите использовать последние версии инструментов в работе, не дожидаясь перевода руководств, то без изучения языка не обойтись. Ну и количество бесплатных качественных образовательных материалов на английском на порядок выше.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!
* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».