Что такое backend developer
Выбираем профессию frontend- и backend-разработчика: принципы и отличия
Статья о том, что такое frontend- и backend-разработка, чем отличаются и как взаимодействуют между собой. Разбираемся и выбираем себе направление.
Традиционно эти две сферы разработки разделяют на сцену и закулисье. Во frontend вы работаете на глаза пользователя, в backend же — на его опыт и ощущения. В Skillbox мы учим и frontend, и backend. Остается только выбрать направление своей будущей профессии. А теперь подробнее.
Что такое
frontend-разработка?
Frontend — это разработка пользовательского интерфейса и функций, которые работают на клиентской стороне веб-сайта или приложения. Это всё, что видит пользователь, открывая веб-страницу, и с чем он взаимодействует.
Пишет про дизайн и маркетинг в Skillbox. С 2011 по 2017 год писала про бизнес в деловые СМИ, соучредитель агентства копирайтинга «Абзац».
Frontend-разработчик сотрудничает с дизайнерами, программистами
и UX-аналитиками, чтобы создавать удобный и востребованный продукт.
Чтобы наглядно понять frontend-разработку, откройте страницу любого сайта — перед собой вы увидите интерфейс. Щёлкнув правой кнопкой мыши, откроете код страницы в браузере.
Это и есть пример работы frontend-разработчика, он скачивается в браузер пользователя, и его можно увидеть своими глазами. Код страницы описывает цвета, вёрстку, шрифты, расположение графических элементов и так далее.
Компоненты frontend-разработки
Что такое
backend-разработка?
Backend-разработка — это набор аппаратно-программных средств, при помощи которых реализована логика работы сайта. Попросту говоря, это то, что скрыто от глаз пользователя и происходит вне его браузера и компьютера.
Например, когда вы вводите запрос на странице поисковика и жмёте клавишу Enter, frontend заканчивается и начинается backend. Ваш запрос отправляется на сервер Google или «Яндекса», где расположены алгоритмы поиска. Именно там случается всё «волшебство». Как только на мониторе появилась информация, которую вы искали, — вновь происходит возвращение в зону frontend.
По большому счёту, сервер — это тот же компьютер, только более мощный. Он хранит данные и отвечает на запросы пользователей.
Backend — это процесс объединения сервера с пользователем.
Компоненты backend-разработки
Backend-разработчик применяет те инструменты, что доступны на его сервере. Он вправе выбрать любой из универсальных языков программирования, например, Ruby, PHP, Python, Java. Всё зависит от конкретного проекта и задачи заказчика.
Также для backend-разработки используются системы управления базами данных:
В зависимости от продукта обязанности backend-разработчика сильно меняются. Такой специалист может создавать и интегрировать базы данных, обеспечивать безопасность или настраивать технологии резервного копирования и восстановления.
Как взаимодействуют frontend и backend?
Взаимодействие frontend и backend происходит по кругу:
Этими работами занимаются разные специалисты, но каждому из них желательно понимать принципы, по которым работают коллеги. Даже дизайнеру интерфейсов важно хотя бы в общих чертах знать, что представляет собой backend проекта, которым он занимается. Это поможет адекватно оценить, какие технические возможности есть у сайта или приложения.
Существует несколько вариантов взаимодействия frontend и backend:
Обязанности frontend- и backend-разработчиков, как правило, разделены, но бывают моменты, когда программист решает проблемы как на стороне сервера, так и в клиентской части. Оба вида разработки подразумевают и технические, и творческие компоненты. Нередко на рынке встречаются специалисты, которые уверенно чувствуют себя как во frontend, так и в backend и могут совмещать их.
Заключение
Начать свой путь в обеих отраслях можно с 12-месячного курса Skillbox «Профессия веб-разработчик». Он подходит для новичков и программистов с небольшим опытом. За год вы на практике изучите основные языки программирования и создадите портфолио, которое поможет найти перспективную и хорошо оплачиваемую работу.
Что нужно уметь бэкенд-разработчику
Веб-разработка, если упростить, состоит из двух частей — фронтенда и бэкенда. Фронтенд — видимая пользователю часть сайта, картинки, тексты и кнопки. Бэкенд — код, который работает на серверах и обрабатывает запросы пользователей после нажатия на эти кнопки.
То есть фронтендеры пишут код, который работает в браузере у пользователя, а бэкендеры — тот, что выполняется на серверах. И если про фронтенд более-менее понятно: он оживляет интерфейсы, добавляет анимации и всю другую красоту, то давайте разбираться, зачем вообще нужен серверный код.
Что такое бэкенд
Серверного кода не видно — это самое главное, что нужно понять. Если фронтендер может положить в портфолио сайт и будет виден результат его работы, то результат работы бэкендера в том, что сайт вообще работает и откликается на запросы.
Серверный код выполняет основную работу — даёт пользователям ту информацию, за которой пришли и попросили. Чаще всего бэкендеры пишут код, который связывает фронтенд и базу данных.
Фронтенд — это продавец-консультант в Икее, к которому вы пришли и попросили шкаф, а бэкенд — кладовщик, который принесёт ваш шкаф со склада.
Взять даже эту статью: откуда сайт знает, какого числа была опубликована эта статья, сколько у неё просмотров, какие заголовки и откуда брать картинки? Вся эта информация хранится на сервере. Бэкенд-разработчики Академии сделали так, чтобы всю эту информацию можно было сохранить и получить в нужный момент, а фронтендеры — чтобы вы увидели эту страницу такой, как я задумал.
Что делает бэкендер
Если совсем коротко: пишет серверный код, работает с базами данных, пишет API, создаёт библиотеки. Работает с компонентами системы, у которых нет интерфейсов.
Решает задачи. И чем лучше он это делает, тем больше его зарплата и ценность для компании.Код — только один из способов решения. В этом разработчику помогают язык программирования, веб-стандарты, шаблоны проектирования и лучшие практики, наработанные годами опыта других программистов.
Пишет код. Это основная задача бэкенд-разработчика, которая занимает больше всего рабочего времени. При этом есть достаточно большой выбор, на каком языке писать. Например, Python — очень лёгкий для освоения, а PHP — самый популярный серверный язык. Можно писать бэкенд даже на JavaScript в связке с Node.js, Perl или Ruby. Но это не самый простой путь.
Код, чаще всего, обрабатывает разные запросы. Звучит скучно, но запросов может быть тьма.
Что нужно знать бэкенд-разработчику
Новичку нужны не все эти знания и навыки, но чем больше вы знаете, тем больше шансы найти хорошую работу.
Программирование. Нужно знать синтаксис языка и основные конструкции, понимать логику работы. Знать, как применять шаблоны проектирования, алгоритмы и структуры данных.
Базы данных. Как писать запросы и организовывать базы в MySQL, Postgres или NoSQL. Ну или в других системах управления базами данных — тут зависит от конкретной компании. Важно знать, что основные принципы всё равно похожи.
Как работает веб. Два самых важных слова — HTTP и HTTPS.
Веб-серверы. Как настроить Apache или Nginx.
API. Как устроены JSON, REST и XML и как с их помощью эффективнее передавать информацию.
Аутентификация. Как организовать сессии, хранить куки, заводить токены и ключи. Как работает Oauth.
Безопасность. Как избежать CSRF, XSS, SQL-инъекций.
Масштабирование. Как устроены асинхронные запросы и кэширование.
Серверное администрирование. Как настроить Windows, Linux, Unix, OS X. В больших компаниях этим занимаются отдельные администраторы, но в небольших студиях бывает нужно хотя бы представлять, как это сделать.
Бэкенд — большая и интересная часть веба, которую не видно снаружи, потому что всё внимание пользователей приковано к фронтенду — красивым интерфейсам, анимациям и современной вёрстке. Но работа бэкендеров важная, сложная и интересная, за это так много людей выбирают именно это направление, а не фронтенд.
Приходите на профессию «Бэкенд-разработчик»
Мы перезвоним и всё расскажем — вам даже не придётся ничего делать. Только форму заполнить, но куда без этого в 2021.
Нажатие на кнопку — согласие на обработку персональных данных
Что такое backend developer
У сайта есть две стороны: пользовательская и серверная. Всё, что видит пользователь на сайте: кнопки, плашки, заставки — это ответственность frontend-разработчика. Всё, что пользователь не видит, — это ответственность backend-разработчика. К backend можно отнести всё, что располагается на сервере: CMS, API систем сайта, админки и личные кабинеты, базы данных.
Из этой статьи вы узнаете, кто такой backend-разработчик и как им стать. Мы расскажем, чем он занимается, какие карьерные возможности есть в этой профессии и какие языки программирования нужны для работы.
Кто такой backend-разработчик
Backend — это программист, который находится на невидимой для пользователя стороне ресурса. Он отвечает за обработку пользовательского ввода, хранение и передачу данных.
Представьте, вы покупаете что-то в интернет-магазине. Вы сформировали корзину, ввели номер карты и нажали кнопку «Оплатить». В этот момент вы перешли на страницу платёжного шлюза. Вот тут вы сталкиваетесь с работой backend-разработчика. Он отвечает за то, чтобы сайт правильно определил вашу карту, банк и платёжную систему. От него зависит, пройдёт ли оплата вашей покупки успешно.
Страница платёжного шлюза
В каких сферах нужен
Backend-разработчики нужны везде, где есть приложение, сайт или программа, которые взаимодействуют с пользователем. Другой вопрос, что уровень специалистов может быть очень разным. Всё зависит от потребностей компании.
Над чем может работать backend-разработчик:
Чем backend отличается от frontend-разработчика
Backehd | Frontend |
Отвечает за «начинку» ресурса | Отвечает за внешнюю часть ресурса |
Для работы нужно знание серверного языка программирования (PHP, Python, Java, Ruby, Go) и SQL для работы с базами данных | Для работы нужно знание JavaScript, HTML, CSS, LESS, SASS |
Сложное обучение, нужны глубокие знания в узких вопросах | Обучение среднего уровня сложности, нужно базовое знание широкого набора рабочих инструментов |
Высокая востребованность | Высокая востребованность |
Frontend и backend работают над одной общей целью ― запустить удобный и стабильно работающий ресурс. В идеале они работают параллельно: пока фронтенд разрабатывает интерфейс, бекенд разрабатывает логику работы ресурса, а после помогает подключить серверную часть к движку.
Мифы о работе backend-разработчика
Профессия backend-разработчика связана со множеством мифов, мы разберём три самых популярных.
Backend-разработчики по статусу выше frontend-разработчиков. На самом деле это не так: backend и frontend — это партнёры, а не конкуренты. Один не может существовать без другого. А вот если говорить об уровне сложности работы, то сложнее всё-таки backend: там выявлять и исправлять ошибки труднее. Можно сказать, что backend — фундамент и стены, а frontend — штукатурка. Слабые и кривые стены штукатуркой не спасёшь.
Backend-разработчики получают миллионы. Некоторые на старте могут рассчитывать только на 40 000 ₽. Потолок заработка backend-разработчика, судя по сайтам с вакансиями, — 700 000 ₽. Чтобы получить такой доход, нужно иметь высокую квалификацию, обширные знания в серверном администрировании, архитектуре баз данных, оптимизации нагрузок.
Backend-разработка — это очень сложно. Да, backend — это сложно, потому что критично. Плохой бекендер может загубить даже самый продуманный проект. Но backend может быть не настолько сложным, как вы можете представить, потому что в этой сфере есть множество готовых решений.
Средние зарплаты
Backend-разработчикам готовы много платить не только в Москве.
Средняя зарплата backend-разработчика по городам России по данным zarplan.com
Карьерный путь
Карьерная лестница у backend такая: junior, middle, senior. Расскажем, какие навыки вам понадобятся для перехода на новый уровень и какую зарплату вам стоит ожидать на каждом из них.
Junior
Знает один из популярных языков программирования (PHP, Python, Java) на базовом уровне. Может выполнять простые задачи в проекте и умеет работать с базами данных.
Вакансия для junior backend-разработчика
Middle
Владеет одним из популярных языков программирования на продвинутом уровне. Умеет использовать фреймворки, сам выполняет часть работы на проекте и участвует в разработке решений для небольших задач. Понимает, сколько времени нужно на выполнение той или иной работы, может устанавливать дедлайны для junior-разработчиков.
Вакансия для middle backend-разработчика на Python
Senior
Разработчик, который много работал на проектах и понимает глубокие особенности задач, которые решают в backend. Он владеет несколькими языками программирования на продвинутом уровне. Участвует в проектировании масштабных задач, понимает, когда нужно отказаться или внедрить определённое решение. Может консультировать других разработчиков и обладает развитыми soft skills.
Вакансия для senior backend-разработчика на Java
Преимущества и недостатки профессии
Высокая востребованность и неплохая зарплата — ещё не всё, чем привлекает профессия backend-разработчика.
Преимущества
Недостатки
Требования к backend-разработчику
Даже к начинающим разработчикам предъявляют высокие требования для вхождения в профессию.
Профессиональные навыки
Личные качества
Знание иностранных языков
Если вы знаете английским хотя бы на разговорном уровне, это будет большим плюсом. Вы сможете изучать рекомендации по разработке от Google и других компаний, смотреть видеолекции иностранных коллег, читать в оригинале книги по юзабилити и дизайну. При желании вы можете найти работу в англоязычной компании и зарабатывать больше российских коллег.
Обязанности backend-разработчика
Главная обязанность backend-разработчика ― создать надёжный и корректно работающий ресурс. Кроме этого, специалист в сфере backend должен:
На скрине ниже — почти обычная «раскладка» рабочего пространства бекендера.
Слева направо, сверху вниз.
Большую часть дня рабочий стол бекендера выглядит вот так
Типичный день backend-разработчика
Мы попросили знакомого backend-разработчика рассказать, как проходит его обычный рабочий день.
10:00 Получил обновления кода проекта из репозитория кода. Сижу разбираюсь, кто это натворил и зачем.
11:00 Половину обновлений оставил, половину попросил переделать.
12:00 Объяснял, почему нужно переделать именно так.
13:00 Запустил сборку и тестирование проекта с учётом пожеланий.
14:00 Пока тестировалось — перекусил. Волшебная ситуация: проект собрался с первой попытки, можно готовить для переноса на прод (в продакшен).
15:00 Подготовил билд (готовую сборку проекта) — перенёс на прод, проверил, что ничего не упало.
16:00 Обсуждение с заказчиком новых хотелок. Планирование сроков, расстановка приоритетов.
17:00 Обсуждение с остальной командой новых хотелок заказчика. Выбор наиболее оптимальных способов реализации задач, небольшое обучение команды.
18:00 Проверил работу сервера — логи, нагрузки, место на сервере, достаточное количество памяти. Можно закругляться.
Какие языки используются в backend
В разработке используют разные языки, но есть 3 основных. Их полезно будет знать всем бекенд-разработчикам. В качестве основного нужно выбрать один из них. Из тех языков, что мы приводим ниже, новичку проще всего будет освоить PHP.
Этот язык был создан специально для веб-разработчиков. Он помогает автоматизировать работу сайта и добавлять те элементы, которые подразумевают сохранение данных на сервере. Говорят, PHP сдаёт позиции, но это не так: на нём работает множество ресурсов. Под PHP постоянно обновляются фреймворки, да и сам язык прогрессирует: в конце 2020-го вышел PHP 8 с набором уникальных возможностей, которых практически не найдёшь в других языках.
Этот универсальный язык набирает популярность последние 20 лет. Веб-разработчикам доступно множество фреймворков, бесплатная среда разработки и сервера. Есть много книг, курсов и форумов, посвящённых Java. Среда разработки на Java имеет богатый API ― набор способов и правил, по которым ресурсы или приложения обмениваются информацией.
Бойцы невидимого фронта. Кто такой Backend-разработчик и как им стать?
Кто такой Back-end разработчик?
Навыки Back-end разработчика
Как стать Back-end разработчиком?
Выучите основы структур данных и алгоритмов.
Нередко разработчики пропускают данный шаг и сразу приступают к изучению фреймворков. Однако эксперты советуют сначала изучить основы структур данных и алгоритмов, хотя бы поверхностно. Еще рекомендуют разобраться с алгоритмами хеширования, сортировки и поиска, стеками алгоритмов.
Выучите язык программирования и выберите фреймворк(и).
Раз уж в бэкенд-разработке используются разные языки программирования, лучше с самого начала определиться с языком или языками (никто не запрещает изучать сразу несколько), на которых вы будете специализироваться. Помимо Java, начинают чаще всего с изучения C, Python или PHP. JavaScript также будет хорошим вариантом для дополнительного развития.
Выучите SQL и основы управления базами данных.
Следующий логический шаг на пути становления бэкендера — изучение языка SQL и основ управления базами данных. Сейчас есть много удобных и относительно простых систем управления базами данных, из которых можно выбрать одну или две. А знание языка SQL поможет легко разбираться в аналогичных системах и писать sql-запросы. Поскольку все веб-сайты сегодня так или иначе используют базы данных, этот скилл в любом случае будет полезен.
Выбор фреймворка, конечно, будет зависеть от языка программирования. Поскольку большинство фреймворков, таких как Spring, используют один и тот же архитектурный шаблон — MVC (модель-вид-контроллер), знание одного фреймворка значительно облегчает изучение и использование других наборов программных решений в будущем. Не стоит недооценивать важность применения фреймворков и их удобство, ведь с ними можно заметно сократить количество написанного кода.
Начните применять полученные знания на практике.
Практика применения познаний в бэкенд-разработке также играет огромную роль. Поэтому начните с работы над небольшими проектами и/или задачами, такими как создание простого блога, базовых приложений для просмотра изображений или управления проектами, todo-листов и так далее.
Научитесь работать с облачными сервисами.
Еще одним достаточно важным шагом будет научиться развертыванию ваших программных продуктов на платформах облачных сервисов. Основными вариантами облачных платформ являются AWS, Google Cloud, Azure и Heroku.
Что должен уметь бэкенд-разработчик
Пока кто-то не может найти работу, на hh.ru открыто 1270 вакансий по специальности бэкенд-разработчик, на Indееd.com — 440. Работодателям нужны подготовленные специалисты, и они готовы платить. В среднем в Москве Junior получает 60 000 рублей, в регионах — 30 000 рублей.
Рассказываем, кто такие бэкенд-разработчики, какие навыки и умения им нужны и как стартовать новичку.
Teamlead, PHP & Rails developer в Нетологии
Место бэкенд в веб-разработке
Веб-разработка — создание сайтов и веб-сервисов. Включает программирование на стороне клиента и сервера. Эту часть работы выполняют программисты. Они работают совместно с дизайнерами и верстальщиками, которые разрабатывают веб-дизайн и создают макеты страниц.
Веб-разработчики работают в трёх направлениях:
Кто такой бэкенд-разработчик
Сложно. Бэкенд разрабатывает программно-административную часть проекта, занимается его внутренним содержанием и серверной частью — базами данных, архитектурой, программной логикой.
Просто. Бэкенда можно сравнить со строителем, который:
Порог входа в бэкенд высокий, новичкам сложно освоить всё с нуля самостоятельно. Поэтому в специальность чаще переходят бывшие фронтенды, которые знают JavaScript, разбираются в библиотеках и фреймворках, используют некоторые из них.
Профессия
Веб-разработчик с нуля
Какие навыки нужны
Hard skills — основные рабочие навыки, которые нужны для выполнения задач. Бекэнд-разработчику нужно знать:
Чтобы освоить профессию, нужно понимать работу языка и его окружения, функционирование сетей — стека протоколов TCP/IP, HTTP. Бэкенду нужно разбираться в работе системы версионирования Git и сервера, например, по схеме ubuntu server + nginx + mysql + фреймворк.
Начинающему бэкенду нужно знать английский хотя бы на уровне чтения документов.
Soft skills — неспециализированные навыки, которые не связаны с должностными обязанностями прямо, но помогают устроиться на работу, стать частью команды и развивать карьеру:
Как развивать карьеру
Junior
Знает язык программирования, умеет работать с базой данных, может выполнять простые задачи в проекте. Чтобы развиваться профессионально:
Middle
Знает язык программирования на продвинутом уровне, ознакомлен с code style проекта, умеет использовать фреймворки. Самостоятельно выполняет несложные задачи на проекте, может проектировать решения для небольших задач. За счёт опыта может оценить задачи и ставить сроки выполнения.
Senior
Опытный разработчик, хорошо знает специфику своего стека и особенности его работы в разных окружениях. Может проектировать масштабные задачи и проекты, понимает необходимость использования или отказа от определённых паттернов или решений. Благодаря большому опыту может консультировать других разработчиков. Обладает развитыми soft skills: