Кто такой бэкенд-разработчик и что он делает
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
Как установить Вордпресс на свой сайт

Совсем взрослый стал, сайты свои делает, молодец.

hard
Что такое HTML (и почему это важно)

Изучаем основы веба на простом примере.

easy
Зачем на компьютере нужны разные пользователи

Делаем жизнь друг друга проще

easy
Radix Sort — самая быстрая сортировка для чисел и строк

Объясняем, в чём секрет поразрядной сортировки

medium
Что такое порт в программировании

С ними компьютер не путает, что и куда отправлять

easy
Бесконечная прокрутка против пагинации (и против дополнительной загрузки)

На это можно смотреть бесконечно

easy
easy
[anycomment]
Exit mobile version