Код
#статьи

Бэкенд-разработчик: кто это, чем он занимается и как им стать

Необходимый минимум знаний и навыков в 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-устройств: смартфонов, телевизоров, умных вещей, приборов для бизнеса и промышленности — кассовых аппаратов, терминалов для сбора данных и так далее.

Какой из этих языков стоит учить? Лучше всего смотреть на их востребованность на рынке:

Скриншот: «Нетология» / Skillbox Media

Лидеры среди языков для бэкенда — Python и Java, популярность которых меняется в зависимости от страны, в которой находится работодатель. Исследование российского рынка подтверждает эти выводы.

Нужны ли бэкенд-разработчики?

В начале ноября 2023 года на HeadHunter было больше 1300 вакансий:

Количество вакансий бэкенд-разработчиков в России на ноябрь 2023 года
Скриншот: HeadHunter / Skillbox Media

Больше всего вакансий в Москве, на втором месте — Санкт-Петербург, а затем идёт Новосибирская область. Нужны специалисты разного уровня — от джуниоров до тимлидов.

Разработчики требуются в различных отраслях: в банковской сфере, электронной коммерции, медицине, образовании, туризме и многих других. Там они работают над:

  • платёжными терминалами;
  • банковскими системами;
  • интернет-магазинами;
  • сайтами-агрегаторами;
  • корпоративными сайтами
  • и другими проектами.

Карьера бэкендера

Для 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 Media

Как стать бэкенд-разработчиком

Стать бэкенд-разработчиком можно тремя способами: заняться самообразованием, получить профильное высшее образование или выбрать готовый курс от онлайн- или офлайн-школы.

Правильного пути нет — каждый сам выбирает, по какому идти, а мы лишь можем дать несколько советов. Кому-то они могут показаться слишком очевидными, но менее важными и справедливыми они от этого не становятся.

Практикуйтесь с первых дней. Прочитать два тома Лутца и Шилдта — это хорошо, но мастером Python и Java это ещё никого не сделало. Поэтому установите себе IDE или редактор кода и… пишите код, решая все упражнения с которыми столкнётесь в книгах, статьях и видеороликах.

Пилите пет-проекты для отработки навыков. Продолжаем предыдущую мысль. Самостоятельная разработка даже простого калькулятора или планировщика задач поможет активировать и связать воедино знания, полученные во время чтения книг и решения задач. Если сможете написать движок для личного блога, то закрепите навыки программирования на Python, разберётесь в устройстве фреймворка Django, научитесь работать с базами данных и ORM и даже узнаете, как функционирует веб-сервер. Такой комплексный опыт сложно получить, лишь читая книги и решая абстрактные задачи на LeetCode.

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

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!


* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована