Продолжаем говорить об основных специализациях, которые имеют отношение к программированию. Мы уже разобрали целый ряд позиций, среди которых full stack-разработчик, tech lead, team lead и QA engineer. Теперь очередь дошла до важной и обширной специальности — Back-end разработчик. Бойцы невидимого фронта. Кто такой Backend-разработчик и как им стать? - 1

Кто такой Back-end разработчик?

Бэкендом называют комбинацию технологий и программного кода, которая обеспечивает работу веб-сайта или приложения, оставаясь при этом невидимой для конечного пользователя. Бэкенд состоит из трех базовых компонентов: сервера, базы данных и программного приложения. Таким образом, задачей Backend-разработчика является создание и поддержка технологической платформы, которая обеспечивает работу части веб-сайта или сервиса, видимой конечному пользователю, то есть фронтенда. Суть работы заключается в создании работающей комбинации “сервер-приложение-база данных” через написание кода, который выполняется на сервере — физическом или облачном. Для этого backend-разработчики используют ряд языков, включая Java, а также PHP, Ruby, Python, .Net и ряд других. Кроме того, бэкенд-деву нужны инструменты для работы с базами данных, такие как MySQL, Oracle, Microsoft SQL Server и PostgreSQL, которые позволяют управлять базами данных. В обязанности бэкенд-разработчиков входит создание эффективных и быстрых технологических решений, помогающих конвертировать данные во фронтэнд-код, с которым пользователь может взаимодействовать на своей стороне — в виде заполнения формы, создания профиля, совершения покупки онлайн и т.д. Обычно бэкенд-девы работают в группах или в составе команды, которая занимается бэкендом, хотя в больших компаниях они могут входить в команду разработчиков разного профиля, включающую и фронтэнд-щиков, QA-щиков, UX-архитекторов, и так далее. Бойцы невидимого фронта. Кто такой Backend-разработчик и как им стать? - 2

Навыки Back-end разработчика

Какими навыками должен обладать backend-девелопер? Коротко пройдемся по главным.
  • Глубокое знание языка бэкенд-программирования (Java, Ruby, PHP, .Net, Python как основные) и тех фреймворков, которые используются компанией или проектом.
  • Понимание ключевых технологий фронтэнда, таких как HTML, CSS и JavaScript и других, чтобы эффективно взаимодействовать с теми кодерами, которые отвечают за фронтенд.
  • Умение настраивать и управлять хостингом, что включает администрирование баз данных, масштабирование приложений при изменениях нагрузки и т.д.
  • Знание технологий веб-серверов.
  • Понимание принципов работы облачных сервисов (AWS, Azure, Google Cloud и т.д.) и умение их настраивать.
  • Понимание основных принципов разработки, внедрения и поддержки систем управления контентом (CMS).
  • Владение навыками интеграции API.
  • Знание основных принципов кибербезопасности и мер по предотвращению хакерских атак или утечек данных.
  • Умение составлять отчеты и анализировать статистические данные.
  • Знание технологий создания бэкапов и восстановления данных, включая код сайта и базы данных.
  • Опыт работы с системами контроля версий продукта, таких как Git.
Бойцы невидимого фронта. Кто такой Backend-разработчик и как им стать? - 3

Как стать Back-end разработчиком?

Изучение основ бэкенд-разработки будет полезным, даже если вы не собираетесь работать по этой специальности. Итак, что учить, чтобы “прокачать” свои скиллы в бэкенд-разработке?
  1. Выучите основы структур данных и алгоритмов.

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

  2. Выучите язык программирования и выберите фреймворк(и).

    Раз уж в бэкенд-разработке используются разные языки программирования, лучше с самого начала определиться с языком или языками (никто не запрещает изучать сразу несколько), на которых вы будете специализироваться. Помимо Java, начинают чаще всего с изучения C, Python или PHP. JavaScript также будет хорошим вариантом для дополнительного развития.

  3. Выучите SQL и основы управления базами данных.

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

  4. Изучите фреймворки.

    Выбор фреймворка, конечно, будет зависеть от языка программирования. Поскольку большинство фреймворков, таких как Spring, используют один и тот же архитектурный шаблон — MVC (модель-вид-контроллер), знание одного фреймворка значительно облегчает изучение и использование других наборов программных решений в будущем. Не стоит недооценивать важность применения фреймворков и их удобство, ведь с ними можно заметно сократить количество написанного кода.

  5. Начните применять полученные знания на практике.

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

  6. Научитесь работать с облачными сервисами.

    Еще одним достаточно важным шагом будет научиться развертыванию ваших программных продуктов на платформах облачных сервисов. Основными вариантами облачных платформ являются AWS, Google Cloud, Azure и Heroku.

Стоит ли становиться Back-end разработчиком? Мнения

“Я надеюсь, вашей основной мотивацией для изучения веб-разработки не являются деньги. Да, веб-разработка — это достаточно популярная и востребованная сфера, но она же сейчас является весьма высококонкурентной, даже в сравнении с тем, как дела обстояли десять лет назад. Поэтому от разработчиков-новичков потребуется еще больше усилий, чтобы выделиться из толпы конкурентов и найти работу. Также помните о том, что одного только умения писать код не достаточно для того, чтобы быть хорошим бэкенд-девелопером. Не забывайте и о том, что работа backend-разработчика намного чаще в сравнении с фронтендом абстрактна и проходит без полного понимания будущего результата, ведь они зачастую не имеют быстрого фидбека, как от фронт-разработчиков, так и от юзеров,” — отметил Кендрик Везина (Kenrick Vezina), преподаватель компьютерных наук и писатель. “Бэкенд-разработка хороша тем, что она предлагает вам целый ряд вариантов или направлений для выбора. Я, например, начинал с PHP, когда тот был весьма популярным и при этом простым для изучения языком бэкенд-разработки. Чтобы принять решение касательно того, что изучать в первую очередь, вам нужно понимать, что вы планируете разрабатывать. Для простых блогов знания PHP должно быть достаточно, для создания real time-приложений хорошо подойдет Node.js, тогда как более масштабные приложения требуют знания Java, Groovy и т.д. Обучение будет проходить проще, если вы сразу определитесь, над какими проектам хотите работать,” — советует Лоуренс Аду (Lawrence Adu), главный веб-разработчик в компании Qodehub. “Одним из плюсов бэкенд-разработки является тот факт, что эта сфера меняется не так быстро, как другие. Если вы выучите SQL, один из основных языков программирования и пару фреймворков — этого должно хватить, чтобы обеспечить вас работой лет на десять, а то и больше. Тогда как в сфере фронтенда все меняется намного быстрее, в разы. Фронтендщикам нужно знать больше технологий и постоянно следить за их развитием и изменениями,” — сказал Джон Оллрэд (John Allred), веб-разработчик с более чем десятью лет опыта. Бойцы невидимого фронта. Кто такой Backend-разработчик и как им стать? - 4

Зарплата и карьерные перспективы

Ну и напоследок посмотрим на зарплатные и карьерные перспективы backend-разработчиков. Согласно данным авторитетного ресурса Glassdoor, средняя зарплата бэкенд-разработчиков в США составляет $101 тыс. в год. Рекрутинговый портал PayScale дает более скромную сумму — $73 тыс. в год в среднем, с $49 тыс. в год в качестве минимальной средней зарплаты и $118 тыс. в год в качестве максимума. Что касается зарплат бэкенд-девелоперов в разных странах, то, согласно данному источнику, в Британии они зарабатывают в среднем $37.5 тыс. в год, в Сингапуре — $36 тыс., в Австралии — $48 тыс., а в Канаде — $49 тыс. в год. Что касается “наших” стран, то в Украине, согласно данным рекрутингового ресурса Work.ua, средний бэкенд-разработчик зарабатывает немногим больше $1300 в месяц. В России, согласно этим данным, бэкенд-кодеры получают в среднем чуть больше — около 100 тыс. руб. (около $1400) в месяц. Примерно на таком же уровне находятся и зарплаты беларусских бэкендщиков. Это если брать из имеющихся средних данных по бэкенд-щикам в целом. Если смотреть на зарплаты разработчиков в зависимости от языка программирования, цифры получаются несколько более оптимистичные (для таких популярных языков, как Java, естественно). Так, в Украине Java-разработчик в среднем получает около $2000-2500 в месяц. В России, согласно этим данным, Java-кодеры в среднем зарабатывают 230-250 тыс. руб. (около $3200-3500) в месяц. Что касается карьерных перспектив для backend-разработчиков, то они в целом достаточно широки, а знания бэкенд-технологий, как мы уже говорили, может быть полезным для множества разных позиций в разработке и ИТ-индустрии в целом. Чаще всего бэкенд-разработчики переходят на управляющие позиции, либо на более высокие технические должности, такие как программный архитектор, tech lead, team lead и так далее.