Большинство сайтов и приложений состоят из двух слоёв — фронтенда и бэкенда.
Фронтенд — это разработка внешнего вида IT-продукта и пользовательских функций. К нему относятся интерактивные кнопки, всплывающие уведомления, формы для заполнения заявки или регистрации, анимация.
Бэкенд — это всё, что скрыто от пользователей, логика сайта или приложения. Чаще всего бэкенд связан с базой данных, где хранится информация. Она может передаваться из одного сервиса в другой — например, Яндекс Лавка сохраняет адрес доставки, и он затем может автоматически подтянуться при заказе в Яндекс Еде.
Бэкенд-разработчик отвечает за логику сайта или приложения. Создаёт компоненты и функции, с которыми пользователь взаимодействует через интерфейс. Делает так, чтобы запросы фронтенда обрабатывались на сервере. То есть отвечает за то, как сайт или приложение отреагирует на действия пользователя.
Обязанности бэкенд-разработчика могут отличаться в зависимости от сферы деятельности или IT-продукта, который он создаёт. Но общий список такой:
● пишет код для обеспечения работы сайта или приложения, разрабатывает логику;
● работает с базами данных;
● настраивает API (Application Programming Interface, программный интерфейс) для связи с внешними сервисами;
● пишет тесты (юнит — когда программист проверяет корректность отдельных модулей кода, и интеграционные — когда модули тестируются в группе);
● думает, как сделать сервис надежным и как его масштабировать.
Требования к программисту зависят от его грейда и компании, в которой он работает. Но есть несколько основных требований, связанных с хард- и софтскилами. Разберём их подробнее.
Хардскилы, или «жёсткие» навыки, ― профессиональные умения и компетенции. Чаще всего связаны с технической стороной. Вот какие хардскилы необходимы бэкенд-разработчику:
● Знать язык программирования. Бэкенд-разработчики пишут код на определённом языке. Но что это за язык, зависит от IT-продукта. Чуть позже разберём, какие могут быть варианты.
● Знать фреймворки. Как правило, когда разработчики создают какой-то сложный сервис, они используют готовые решения — это и есть фреймворки. Их много, и связаны они с языками программирования для бэкенда. Например, у Python это Django, Flask, FastAPI.
● Уметь пользоваться Git. Это система контроля версий для хранения истории изменений кода.
● Уметь работать с алгоритмами и структурами данных. Структура данных — это способ организации и хранения информации. И для каждой структуры есть свои алгоритмы — они помогают добавлять, извлекать, анализировать данные и получать необходимый результат.
● Знать SQL. Бэкенд-разработка тесно связана с базами данных. И программист должен уметь ими пользоваться. Один из инструментов — это язык запросов SQL. Он помогает находить среди большого объёма информации нужную, сортировать её, структурировать и представлять в понятном виде.
Чем выше уровень разработчика, тем большую важность приобретают его софт-скилы или «гибкие» навыки — личные качества, которые помогают в работе.
Вот каких ещё софтскилов требуют от бэкенд-разработчиков работодатели на примере вакансий с Хедхантера:
● постоянное самообучение;
● внимательность к деталям;
● умение организовать свою работу;
● умение работать в команде;
● пунктуальность;
● вовлечённость в проект;
● умение довести задачи до результата;
● готовность брать ответственность на себя и выступать автором идей;
● умение видеть проблемы;
● аналитическое мышление.
На Хабр Карьере составили список самых популярных языков в бэкенд-разработке. В топ-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 или книги. Подойдёт «Программирование: введение в профессию» Андрея Столярова.
Консультироваться с опытными специалистами можно на онлайн-курсах как у Практикума. Программа таких курсов обычно актуализируется, поэтому студенты получают знания и навыки, которые нужны рынку. А ещё — практикуются на реальных проектах.
Перейти в бэкенд из смежной профессии — тоже хороший вариант. Например, фронтенд-разработчику будет несложно понять особенности бэкенда, ведь он постоянно сталкивается с ними. Возможно, он даже сможет начать путь в этом направлении не с позиции джуна, а с позиции мидла.
Читать также: