Программирование • 28 сентября 2023 • 5 мин чтения

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

Рассказываем про особенности популярной IT-профессии, карьерный путь специалиста и зарплаты.

Кто такой backend-разработчик

Большинство сайтов и приложений состоят из двух слоёв — фронтенда и бэкенда.

Фронтенд — это разработка внешнего вида IT-продукта и пользовательских функций. К нему относятся интерактивные кнопки, всплывающие уведомления, формы для заполнения заявки или регистрации, анимация.

Бэкенд — это всё, что скрыто от пользователей, логика сайта или приложения. Чаще всего бэкенд связан с базой данных, где хранится информация. Она может передаваться из одного сервиса в другой — например, Яндекс Лавка сохраняет адрес доставки, и он затем может автоматически подтянуться при заказе в Яндекс Еде.

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

Сергей Савельев,
наставник курса «Java-разработчик», старший разработчик в Яндексе

Бывают простые сайты, в которых нет бэкенда, — например, сайт-визитка. Но когда пользователь вводит данные — например, регистрируется в приложении каршеринга, — значит, эти данные должны где-то сохраниться. Вот здесь и начинает работать бэкенд.
Ещё один пример работы бэкенда — приложение, где можно смотреть прогноз погоды. Чтобы узнать, какая температура будет завтра в Новосибирске, нужно выбрать город из списка. Приложение посылает запрос на сервер, то есть из фронтенда в бэкенд, и сервер «отвечает» списком городов, а затем — данными о погоде.
Материал по теме:

Фронтенд или бэкенд: по какому пути в разработке пойти

Обязанности backend-разработчика

Обязанности бэкенд-разработчика могут отличаться в зависимости от сферы деятельности или IT-продукта, который он создаёт. Но общий список такой:

● пишет код для обеспечения работы сайта или приложения, разрабатывает логику;
● работает с базами данных;
● настраивает API (Application Programming Interface, программный интерфейс) для связи с внешними сервисами;
● пишет тесты (юнит — когда программист проверяет корректность отдельных модулей кода, и интеграционные — когда модули тестируются в группе);
● думает, как сделать сервис надежным и как его масштабировать.

Требования к бэкенд-разработчику

Требования к программисту зависят от его грейда и компании, в которой он работает. Но есть несколько основных требований, связанных с хард- и софтскилами. Разберём их подробнее.

Хардскилы, или «жёсткие» навыки, ― профессиональные умения и компетенции. Чаще всего связаны с технической стороной. Вот какие хардскилы необходимы бэкенд-разработчику:

Знать язык программирования. Бэкенд-разработчики пишут код на определённом языке. Но что это за язык, зависит от IT-продукта. Чуть позже разберём, какие могут быть варианты.

Знать фреймворки. Как правило, когда разработчики создают какой-то сложный сервис, они используют готовые решения — это и есть фреймворки. Их много, и связаны они с языками программирования для бэкенда. Например, у Python это Django, Flask, FastAPI.

Уметь пользоваться Git. Это система контроля версий для хранения истории изменений кода.

Сергей Савельев

Git решает две задачи. Первая — в любой момент времени зафиксировать состояние кода. Это даёт возможность экспериментировать. Например, у разработчика родилась гипотеза, как улучшить логику работы сайта. Он сохранил текущее состояние кода, протестировал гипотезу. И если она не подтвердилась, вернулся к текущему состоянию кода. Вторая задача — возможность работать в команде. Разработчик сохраняет свой код, а коллеги видят его и могут им пользоваться.

Уметь работать с алгоритмами и структурами данных. Структура данных — это способ организации и хранения информации. И для каждой структуры есть свои алгоритмы — они помогают добавлять, извлекать, анализировать данные и получать необходимый результат.

Знать SQL. Бэкенд-разработка тесно связана с базами данных. И программист должен уметь ими пользоваться. Один из инструментов — это язык запросов SQL. Он помогает находить среди большого объёма информации нужную, сортировать её, структурировать и представлять в понятном виде.

Пример одной из вакансий для бэкенд-разработчика на hh.ru. Специалист должен уметь писать код на одном или нескольких языках, составлять запросы к базам данных и знать основы сетевой безопасности

Чем выше уровень разработчика, тем большую важность приобретают его софт-скилы или «гибкие» навыки — личные качества, которые помогают в работе.

Сергей Савельев

В начале карьеры разработчик фокусируется на развитии своих хардов. Но когда он переходит из джуна в мидла и сеньора, он получает новые задачи — придумать что-то самостоятельно, собрать требования с заказчика, организовать работу команды. Появляется элемент коммуникации, а значит, необходимы софты. Например, у разработчиков есть код-ревью: специалист, перед тем как запустить код в работу, показывает его другим коллегам. Они смотрят, есть ли ошибки, можно ли написать лучше. И софтскилы «умение правильно донести обратную связь» или, наоборот, «адекватно воспринимать критику» здесь очень важны.

Вот каких ещё софтскилов требуют от бэкенд-разработчиков работодатели на примере вакансий с Хедхантера:

● постоянное самообучение;
● внимательность к деталям;
● умение организовать свою работу;
● умение работать в команде;
● пунктуальность;
● вовлечённость в проект;
● умение довести задачи до результата;
● готовность брать ответственность на себя и выступать автором идей;
● умение видеть проблемы;
● аналитическое мышление.

Какие языки программирования используются в бэкенде

На Хабр Карьере составили список самых популярных языков в бэкенд-разработке. В топ-8 вошли:

1. Java ― кроссплатформенный язык программирования с поддержкой объектно-ориентированного программирования (ООП). Суть в том, что вся работа в нём происходит через объекты — ими могут быть, например, клиент банка и его счёт в мобильном приложении. Эти объекты описываются в виде кода и учатся взаимодействовать друг с другом. Java применяют в веб- и мобильной разработке, он подходит для создания надёжных и безопасных приложений и систем.

2. Python подходит для начинающих бэкенд-разработчиков благодаря простому синтаксису. Он работает с разными платформами и программными системами. Применяется во многих сферах — от машинного обучения до создания игр. Python лаконичен — на нём можно писать меньше кода для выполнения задач.

3. PHP — скриптовый язык программирования с открытым исходным кодом. Скрипт — набор команд, которые необходимы для выполнения задачи. PHP чаще используют для создания веб-приложений. Хорошо работает с базами данных и поддерживается на самых популярных операционных системах (Windows, Linux, macOS).

4. Golang (Go) — ещё один простой, как Python, язык программирования для бэкенда. На Go можно быстро запускать независимые друг от друга функции и не опасаться, что не хватит памяти. Язык хорошо подходит для создания отдельных частей системы, которые выполняют конкретную функцию и вместе складываются в полноценное приложение или сайт. Например, в маркетплейсе с помощью Go можно создать отдельно корзину или карточку товара.

5. C# («си-шарп») — объектно-ориентированный язык, разработанный компанией Microsoft для платформы .NET. Он менее гибкий, так как зависит от этой платформы. Но у языка много библиотек и готовых решений. На C# пишут программы для экосистемы Microsoft и веб-приложения.

6. C++ — объектно-ориентированный язык, на котором пишут сложные сервисы, требующие скорости и производительности. Учить его тяжелее, чем Python и Go, но зато на C++ можно создавать разные продукты: от беспилотных автомобилей до веб-приложений и компьютерных игр.

7. JavaScript — популярный язык, на котором работают и фронтенд-, и бэкенд-разработчики. JavaScript подходит и для пользовательской части продукта, и для серверной. Чаще с его помощью создают динамический контент на странице: например, всплывающие уведомления. Используют заранее написанные шаблоны — фреймворки.

8. Kotlin. Создан на основе Java и полностью совместим с ним. Kotlin можно применять везде, где работает Java: бэкенд, веб, десктоп. Но главная сфера применения языка — разработка приложений для устройств (смартфонов, телевизоров, умных часов) на Android. Большинство таких приложений написаны на Kotlin, в том числе приложения Google.

Сергей Савельев

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

Карьерный путь и средние зарплаты специалистов

Карьерный путь любого разработчика начинается с позиции джуна — новичка с минимальным опытом работы в специальности или вообще без него. Джун может хорошо знать теорию, но в практике ему нужна помощь более опытных коллег. В новичка надо вкладываться, ему приходится подробно объяснять, что именно делать, отвечать на его вопросы.

Следующий уровень, мидл, — уверенный в своих знаниях разработчик. Он берёт задачу, планирует сроки, выполняет её, задаёт мало вопросов. Он сам себя контролирует, ищет ошибки в коде и предлагает не одно-два, а несколько решений.

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

Сергей Савельев

От уровня к уровню бэкенд-разработчик может повышать свою планку по зарплате. Ведь он становится всё более квалифицированным специалистом. Затем может стать тимлидом — руководителем команды. Или экспертом — когда уже консультирует компании, выступает на конференциях. Либо он может быть архитектором ПО — описывать какую-то систему, сервис, базу данных, придумывать, как всё это должно работать, какой язык программирования нужен.
Разработчик проходит путь от джуна до сеньора. Затем у него есть выбор — стать руководителем команды или экспертом

По данным «Хабр Карьеры», самые популярные среди бэкенд-разработчиков — мидлы, 50% вакансий публиковали для них. Немного реже искали сеньоров — 31%. Для лидов и джунов в бэкенде было 8% и 4% вакансий соответственно.

Начинающим платят меньше, чем продвинутым специалистам. Но уровень зарплаты бэкенд-разработчика зависит и от языка программирования. За знание самого популярного — Java — работодатели готовы платить от 95 000 до 326 000 ₽ в зависимости от квалификации человека, сообщает Хабр Карьера. В случае с Python нижняя планка меньше — от 74 000 ₽, а вот верхняя больше — 350 000 ₽.

Зарплаты джунов, знающих самые популярные у работодателей языки программирования, начинаются от 63 тыс. рублей. Но если дорасти до сеньора, например в Java, можно получать 297 тыс. рублей — данные «Хабр Карьеры»

Ещё один вариант развития в работе — горизонтальный. Когда человек, например, изучает фронтенд и становится универсальным специалистом — фулстек-разработчиком. Или выбирает совсем другое направление, например iOS-разработчик, и начинает всё практически с нуля, то есть с позиции джуна или мидла. Но такие варианты, как правило, не приводят к быстрому росту зарплаты.

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

Человеку, который хочет стать бэкенд-разработчиком, сначала нужно узнать больше об этом направлении. Для этого стоит почитать статьи о профессии — например, в блоге Практикума или на Хабре. А ещё — поговорить с теми, кто уже работает в этом направлении, и попросить их описать свой рабочий день.

Сергей Савельев

Может, человек думает, что разработчик целый день пишет код и главный навык — умение быстро печатать. Это не так. Разработчик может часами думать о том, как исправить ошибку, решить проблему. И вот когда человек всё это поймет, он должен составить свой план обучения, выделить деньги и время на это.

Базовые знания о профессии можно получить самому — через видео на Youtube или книги. Подойдёт «Программирование: введение в профессию» Андрея Столярова.

Сергей Савельев

Но проблема самостоятельного изучения в том, что никто не даёт обратную связь. Человек может много времени потратить на то, чтобы понять ошибки. Или вообще их не понять. Самое ценное, когда есть ментор, преподаватель.

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

Перейти в бэкенд из смежной профессии — тоже хороший вариант. Например, фронтенд-разработчику будет несложно понять особенности бэкенда, ведь он постоянно сталкивается с ними. Возможно, он даже сможет начать путь в этом направлении не с позиции джуна, а с позиции мидла.

Совет эксперта

Сергей Савельев

Чтобы стать бэкенд-разработчиком с нуля, нужно запастись терпением и выстроить расписание — выделить несколько часов каждый день и в это время учиться, не пропуская. Делать пет-проекты, проситься в компании на стажировку. Когда начнётся этап поиска работы, специалист должен быть готов к тому, что будет непросто. И можно действовать так: сходил на неудачное собеседование, записал по итогу всё, что не получилось, причины, почему не прошёл. А затем отработал эти моменты, улучшил.
Статью подготовили:
Сергей Савельев
Яндекс Практикум
Наставник курса «Java-разработчик», старший разработчик в Яндексе
Надежда Низамова
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Fri Oct 04 2024 16:35:52 GMT+0300 (Moscow Standard Time)