Кто такой бэкенд-разработчик и что он делает

Кто такой бэкенд-разработчик и что он делает

easy

Делает очень много, но это мало кто видит

В программировании сегодня есть много специальностей, но вот основные технические.

  • Фронтенд-разработчики пишут видимую часть сервисов и приложений. Они создают красивые анимации, удобную вёрстку, пишут код, чтобы всё это правильно работало.
  • Бэкенд-разработчики отвечают за невидимую часть, с которой связан фронтенд: занимаются серверами, базами данных, делают API для веб-приложений. Пользователи не видят бэкенд, но без него ничего не работает.
  • Фулстек-разработчики занимаются сразу двумя направлениями.
  • Ещё есть инженеры DevOps и MLOps. Они следят за общей инфраструктурой и улучшают процессы разработки так, чтобы всё работало быстро и без поломок.
  • Это не всё: есть тестировщики, аналитики данных, специалисты Data Science, инженеры данных и машинного обучения. IT растёт, и количество направлений тоже увеличивается.

Что делает backend-разработчик

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

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

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

Бэкенд — это про разработку и программирование

Обычно бэкенд-разработчики работают с одним из трёх языков: Python, Ruby или Java. 

На Python создают веб-приложения, его применяют для автоматизации, используют в машинном обучении и на нём разрабатывают отдельные модули в играх. Это самый популярный, универсальный и востребованный из всех современных языков программирования:

Ещё один универсальный язык — Ruby. На нём написан сервис бронирования жилья Airbnb, крупнейший хостинг IT-проектов GitHub и утилита Homebrew для командной строки в MacOS и Linux.

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

Java (не путайте с JavaScript, это другое) создавался для программирования техники. Сейчас на нём написаны серверные части сервисов «Госуслуг», «Кинопоиска», «Яндекс Маркета», Amazon и Ebay. 

Все три языка достаточно просты в изучении. Тем, кто планирует научиться бэкенду, для выбора одного из них стоит посмотреть, в каких компаниях их применяют и как они выглядят вживую, то есть в коде. Можно не бояться ошибиться: зная один язык, переучиться на другой будет уже несложно.

Самый быстрый язык бэкэнда — C++. Но работать на нём сложнее, поэтому на C++ пишут, только если нужная высокая производительность или нужно выжать максимум из железа. 

Разработка — сфера для бесконечного совершенствования. Но чтобы уверенно писать код, для начала нужно изучить:

  • синтаксис языка;
  • основные принципы объектно-ориентированного программирования;
  • библиотеки и хотя бы один фреймворк — это инструменты, которые сильно ускоряют процесс написания кода.

Алгоритмы и структуры данных

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

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

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

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

Три самых популярных Python-фреймворка для серверной части веб-приложений на сегодня — Flask, Django и FastAPI.

Flask используется для простых несложных приложений. Это минималистичный фреймворк, на его освоение не нужно много времени, но для крупных проектов лучше взять что-то помощнее.

На Django можно написать любой бэкенд. Из всех фреймворков он самый популярный и сложный в освоении из-за своих широких возможностей. 

FastAPI в России догоняет Django по популярности. Главная причина этому — в асинхронности FastAPI: он позволяет работать с несколькими задачами одновременно. В Django тоже добавили такие возможности, но пока что FastAPI остаётся самым быстрым из всех фреймворков на Python.

Работа с Git и другими системами

Чтобы над кодом одновременно могли работать и не запутаться несколько разработчиков, есть системы контроля версий. Самая популярная из них — Git.

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

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

SQL и базы данных

Все данные приложений нужно где-то хранить:

  • информацию о пользователе;
  • историю посещений;
  • списки сохранённых продуктов;
  • заказы, бронирования, отзывы.

Данные могут быть не только в веб-сервисах. Хранить информацию нужно и в компьютерной игре, и в мобильном приложении, и в модели машинного обучения.

За работу со всем этим отвечает тоже бэкенд-разработчик. Для этого нужно освоить устройство хотя бы одной из баз данных и язык для общения с ними — SQL. Создавать самому базы данных не нужно, этим занимаются другие разработчики.

Если говорить точнее, базы данных разделяют на сами базы (БД), где всё хранится, и системы управления базами данных (СУБД) для работы с ними. Но обычно название конкретной технологии означает сразу оба этих понятия.

Вот что нужно делать бэкенд-разработчику:

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

Основные базы данных, с которыми приходиться работать на бэкэнде, — MySQL, PostgreSQL и MongoDB:

Работа с серверами

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

Сервером могут называть две вещи:

  1. Компьютер, на котором установлены и работают программы для бэкенда сайтов и приложений.
  2. Сами программы.

Программы-серверы тоже бывают разные.

Все фреймворки предполагают работу со своими серверами. Например, для Django и Flask это Gunicorn, а для FastAPI — асинхронный сервер Uvicorn. Разработчик может поднять эти серверы у себя на компьютере двумя-тремя строчками кода и локально протестировать, что всё работает должным образом.

Ещё есть веб-серверы, которые можно взять в аренду у других компаний, например у «Яндекса» или «Амазона». Это избавляет от необходимости заводить свой серверный компьютер и следить, чтобы на нём ничего не сломалось.

Сети и API

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

Для связи по интернету используется несколько технологий: начиная от протокола HTTP и браузера до ответа на сервере и обработки данных. Почти для всех задач бэкенд-разработки достаточно понимания HTTP. Если понадобится что-то ещё, можно доучить.

Одного протокола для общения программ друг с другом недостаточно: нужно написать для каждого приложения свой язык и объяснить остальным, как его использовать. Для этого нужен программный интерфейс приложения, или API. API одной программы будут пользоваться фронтендеры, мобильные разработчики, другие бэкендеры и другие программы, которые научились этому API. 

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

Востребованность на рынке

Если посмотреть сайт hh.ru, сейчас открыты почти 3000 вакансий по поиску только Python-разработчиков и только в Москве. При этом в 526 из них уровень дохода начинается от 110 000 рублей в месяц:

Для сравнения, вот количество вакансий по другим запросам:

  • Java-разработчик: 2332 вакансии;
  • C++-разработчик: 1375 вакансий;
  • backend developer: 2887 вакансий;
  • общее количество вакансий «разработчик» или developer в Москве — 70 000.

Сайт «Хабр-карьера» оценивает среднюю зарплату Junior-бэкенд-разработчика в среднем в 88 000 рублей, уровня Middle — 200 000 рублей в месяц:

Развитие в профессии бэкенд-разработчика

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

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

  • какие данные пользователя нужно хранить в базе данных;
  • какие вычисления можно сделать на фронтенде, а какие лучше перенести на сервер;
  • как подготовить нужную информацию к выдаче пользователям.

Чем сложнее задача, которую разработчик может решить самостоятельно, тем выше уровень его мастерства и оклада.

Бэкенд-разработчик уровня «сеньор» и выше может развиваться в разных направлениях:

  • руководить командой, больше работать с коллегами и клиентами, контролировать выполнение проектов;
  • продолжить прокачивать технические навыки и стать экспертом-архитектором;
  • выучить новые технологии, стать DevOps-инженером;
  • продолжить работать Senior-разработчиком, пока не надоест.

Где научиться

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

Если хотите получить помощь и советы от опытных разработчиков, приходите учиться в Яндекс Практикум. С проблемами в учёбе помогут наставники, в портфолио за время курса наберётся несколько проектов, есть тренажёр для программирования. После обучения получаются готовые к работе бэкенд-разработчики. Попробовать всё это можно бесплатно первые 20 часов.

С чего начать

Почитайте наши статьи про бэкенд-языки: Python, PHP и Java.

Начните решать задачи с собеседований.

Попробуйте первые 20 часов курсов Практикума бесплатно. Вам понравится.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Вам может быть интересно
Что такое Git и как с ним работать

Зачем нужен контроль версий и что делать, если ваши друзья его используют

easy
Кто такой фронтенд-разработчик и что он делает

Руководство для входа в профессию

easy
10 интересных вещей, которые можно сделать на Arduino

Красивые, полезные и странные — всё как мы любим.

medium
Haskell — ленивый язык программирования

Он сам решает, что и когда нужно посчитать.

easy
Как устроен российский корпоративный мессенджер «Пачка»

Технологии, разработка и перспективы российского ИТ

easy
Линтеры для начинающих

Красивый код с самого начала.

easy
Как работает доставка товаров в России

Подкаст о «Сберлогистике»

easy
WebP — что это за формат, как устроен, зачем нужен и почему он так всем не нравится

Изображения легче, а качество — то же

easy
ColdFusion — редкий и важный язык программирования

Один из первых серверных языков, который смог найти себе место в современном мире.

easy
easy
[anycomment]
Exit mobile version