Как стать backend-разработчиком с нуля. Как стать бэкенд разработчиком?

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

Профессия: бэкенд-разработчик

Если бы эта статья была опубликована в образовательном журнале, а не на Хабре, я бы начал ее так: «Подумайте о сайтах, которые вам нравятся, с удобной навигацией и приятным интерфейсом. Знаете ли вы, что это только верхушка айсберга…». Но все в Хамфре, вероятно, знают это, так что текста нет. Внутренняя часть любого веб-проекта — это сложная система, которая позволяет приложению быстро работать, хорошо искать, быстро возвращать информацию пользователю, безопасно и надежно хранить данные и взаимодействовать с другими внешними системами по мере необходимости. Это как швейцарские часы: вы покупаете их ради стиля и шильдика, но знатоки знают, что под неприметным циферблатом скрывается волшебный мир часов. А back-end разработчики — это волшебники механизмов, организмов, внутренностей, внутренностей или как вы хотите это назвать в веб-приложениях. Эй, я не мог пройти мимо этого текста!

Так или иначе, сегодня мы анализируем еще одну профессию из серии «Профессия…». Как насчет того, чтобы заняться разработкой бэкенда?

Кто это?

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

Разработчик бэкенда создает элементы и функции, к которым пользователь приложения или сайта может получить доступ через интерфейс. Проще говоря, бэкендеры — это разработчики, которые разрабатывают все то, что пользователь не может непосредственно увидеть или потрогать. То есть, красивая форма ввода данных или корзина интернет-магазина — это фронт-энд, а хранение данных в СУБД, связывание полей формы регистрации и корзины, интеграция платежных шлюзов, автоматическая электронная почта, загрузка и обновление контента — все это бэк-энд. Так что если регистрационная форма выдает ошибку базы данных, это вина тестера 🙂 (почему — мы расскажем в другой серии).

Разработчик бэкенда отвечает за:

  • обеспечение корректной работы всех функций сайта и его вычислительной логики;
  • организация и работа с базами данных посредством СУБД;
  • разработка базовой логики и алгоритмов работы приложения;
  • API;
  • необходимые интеграции с внешними сервисами;
  • тестирование и отладка приложения и отдельных компонентов.

Разработчик front-end красит лампочку в желтый цвет и втирает back-end’у, что лампочка работает, но только днем.

Разработчик back-end задается вопросом, почему у всех проблемы с этими лампочками, вспоминает, что забыл визуализировать свет в базе данных, успокаивается и обвиняет front-end.

Где нужен?

Как и в случае с front-end разработкой, это применимо везде, где есть сайт или приложение, взаимодействующее с пользователем в Интернете. Другой момент заключается в том, что каждому back-end разработчику нужен свой уровень: В офисе традиционной социальной сети или крупного рекламного сайта бэкенд-разработчик должен обладать не только базовыми навыками, но и работать с большими нагрузками, архитектурой микросервисов и контейнеризацией (Docker, Kubernetes), знать системы мониторинга (например, Zabbix, Grafana) и иметь навыки Scrum (необязательно для некоторых компаний). Но для небольшого интернет-магазина достаточно набора PHP-Ajax- необходимых СУБД- немного HTML, иногда даже меньше. Конечно, требования к заработной плате и опыту работы также сильно различаются.

  Как узнать, на каком движке сделан сайт. На чем сделан сайт

Традиционно на Habrcareer мы нашли 444 вакансии backend-разработчика, что почти в два раза больше, чем frontend-работ. На hh.ru их около 1800. Как правило, на рабочем месте вас ждут пионеры, поиск которых занимает два часа 🙂 Но если серьезно, то в компании может быть 2-3 backend-разработчика на один frontend, особенно если это приложения со сложной внутренней логикой и бизнес-логикой (интернет-магазин, CRM-ERP, корпоративный портал и т.д.).

Определитесь с языком программирования

В отличие от фронтенд-разработчика, который должен знать только HTML/CSS и JavaScript, бэкенд-разработчику приходится принимать сложные решения. Существует множество языков, некоторые из которых развиваются более активно, а другие используются для решения очень специфических задач.

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

Согласно «The State of the Octoverse», Go является одним из 10 языков с наиболее быстро растущим сообществом. Он также возглавляет список самых дорогих языков в 2020 году. При разработке бэкенда он необходим для создания микросервисов и проектов с высокой нагрузкой, когда на сайте или в приложении одновременно работает множество пользователей.

PHP остается одним из самых популярных языков в Интернете, а Ruby и Node.js открывают большие возможности для тех, кто их изучает. Как только вы поймете основные правила и функции выбранного вами языка, сразу же попробуйте его использовать. Пишите небольшие приложения, которые компилируют веб-страницы на основе определенного тега, автоматизируйте свои ежедневные задачи, ставьте цели и создавайте пути к этим целям.

Познакомьтесь с пакетными менеджерами

Если вводная часть

Ключевым навыком для любого программиста является умение искать информацию. Учитесь у других разработчиков на Github и других профильных сайтах и изучайте отраслевые стандарты. Некоммерческая организация OWASP (Open Web Application Security Project) регулярно обновляет правила создания безопасных веб-приложений.

Приобщитесь к лучшим практикам

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

Важно научиться пользоваться терминалом, особенно когда речь идет о Linux.

Операционные системы и базис

Разработчик бэкенда должен знать, как работают операционные системы, что такое потоки и параллелизм, понимать сетевые концепции и стандарты POSIX, уметь управлять процессами, памятью, вводом и выводом (I/O).

Полезное оборудование:

Также есть видео о том, что такое операционная система и как она работает:

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

Выбор языка программирования

Например, если вы уже знаете JavaScript и решили изучать бэкенд после фронтенда, Node.js будет хорошим выбором. Знакомы ли вы с Python? Django также предлагает множество готовых решений для серверной части. Java — хороший выбор, если у вас сложный проект, но если ваше веб-приложение небольшое, писать бэкэнд на Java — все равно что забивать гвозди. PHP по-прежнему является классическим языком, поскольку подавляющее большинство современных веб-сайтов написано на нем.

И это еще не все. Подробнее читайте в нашей статье о 8 самых важных языках бэкенда.

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

  Агентства по подбору персонала: рынок, компании, услуги. Что такое кадровое агентство.

API

Стоит научиться устанавливать и настраивать такие распространенные веб-серверы, как Nginx, Apache, Caddy и MS IIS. Все они достаточно надежны и просты в использовании.

Вы также можете прочитать, как самостоятельно установить сервер для вашего сайта с помощью хостинга DigitalOcean и операционной системы Ubuntu 20.04 LTS

На hh.ru представлено 4 988 вакансий для работы в Backend. Только в 1 713 указана зарплата, поскольку в ИТ-индустрии принято обсуждать зарплату непосредственно на собеседовании. Из этих зарплат 1 478 вакансий имеют доход от 90 000 рублей, по сравнению с 450 000 рублей для 57 вакансий. По языкам программирования — они ищут самых разных программистов.

Что должен знать и уметь Backend-разработчик

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

Новички обычно сталкиваются с подавляющим объемом технологий, проектов и возможных решений. Их действительно много, и часто бывает непонятно, как подступиться к сложным задачам. По мере того, как разработчик набирается опыта (что решает проблему), сами проблемы становятся все сложнее: как оптимизировать приложение, как сделать меньше ошибок, какой шаблон лучше выбрать и так далее. Разработчики высокого уровня, которые уже знают, как справиться со всеми этими вопросами, сталкиваются с совершенно другой проблемой: где заработать хорошие деньги?

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

Плюсы и минусы работы

  • Высокие зарплаты специалистов. Бэкенд-девелоперы зарабатывают хорошие деньги даже в условиях кризиса.
  • Действительно интересная работа. Вам придется решать разнообразные задачи, иногда – нестандартно и творчески.
  • Свобода. Если у вас есть опыт – вы без проблем найдете другую работу при желании, и даже – на удаленке.
  • Непростое обучение. Освоить эту новую профессию будет непросто, если вы решите пойти по пути самообучения – без ментора учиться очень тяжело.
  • Нужно постоянно учиться. Особенностями профессии являются постоянное обучение и самообучение – технологии не стоят на месте.
  • Придется учить логику и математику. Задачи бэкенд-разработчика почти всегда включают в себя построение логических цепей и высчитывание чего-либо, мозги придется напрягать постоянно.
  • Сидячая работа. Вам придется дополнительно беспокоиться о здоровье – заниматься спортом в свободное время, адекватно питаться.

С какими сложностями сталкиваются специалисты

Порог вхождения

Продолжительность

Карьерный путь Backend-разработчика

  1. Интерн. Карьера backend-разработчика начинается либо с этой стадии, либо с джуна. Вы еще даже не разработчик – вас берут на обучение. Начнете с изучения языков, решать сложнейшие задачи вы будете еще не скоро.
  2. Junior. Вы уже что-то умеете, но на самом деле – еще нет. Вам уже будут платить зарплату, но к реальному проекту еще не подпустят, чтобы вы ничего не сломали. Будете набираться опыта в песочнице.
  3. Middle. Здесь начнется ваша реальная разработка. На вас будут скидывать простые и рутинные, но уже реальные задачи. Зарплата повысится раза в 1.5-2 по сравнению с джуном, потому что вы начнете представлять реальную ценность.
  4. Senior. Полноценный разработчик, за которым уже не нужно следить и который может посматривать за джунами. Вы можете взять на себя полную ответственность за какой-либо функционал и самостоятельно решить возникшие проблемы.
  5. Lead/PM/техдир/… Senior может эволюционировать в любую сторону, в которую ему захочется. Или он может остаться на позиции Senior и углублять свои навыки. В общем, все дороги открыты.

Платные курсы

Java Developer от Skypro

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

  Как получить социальную карту москвича. Социальная карта и карта москвича в чем разница.

Как стать специалистом по бэкенду шаг за шагом:

Как стать бэкенд-разработчиком

Как стать бэкенд-разработчиком

Этого серьезного списка достаточно, чтобы начать работу. В дальнейшем вам может понадобиться изучение администрирования UNIX/Linux, HTTP и систем с высокой нагрузкой.

Да, здесь нужно изучить гораздо больше инструментов и программного обеспечения, чем на переднем крае. Но в этом есть и положительная сторона. Это связано с тем, что инструменты разработки в бэкенде меняются очень медленно, особенно по сравнению с фронтендом. Таким образом, пока специалист по фронтенду изучает новую документацию по HTML, специалисту по бэкенду достаточно взглянуть на последние сводки в этой области (что гораздо интереснее и больше похоже на хобби, чем на работу).

  1. Очень поверхностно ознакомиться со всеми языками программирования серверов (PHP, Go, ASP.NET, C/C++, Python, Ruby, Java), выбрав один, который будете изучать углубленно. На нашем сайте есть обзор профессии PHP-разработчик.
  2. Обучиться JavaScript для бэкенда (Node.js).
  3. Обучиться API. Самый востребованный вариант в последние годы (и наверняка в предстоящие тоже) — REST.
  4. Понять принципы работы серверов Apache, NGINX, IIS.
  5. Изучить веб-фреймворки. Здесь тоже можно выбрать любой вариант.
  6. Научиться работать с базами данных и использовать язык данных MySQL.
  7. Понимать основы фронтенда, иначе большинство задач бэкенда будет сложно выполнять.

Карта изучения языка для специалиста по бэкенду:

Существует три способа освоить профессию:

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

Что должен знать бэкэнд разработчик

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

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

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

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

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

Обучение в вузах

Популярные онлайн-курсы, обучающие бэкенду и не только (к сожалению, мы не смогли найти ни одного курса только по бэкенду):

1. «Карьера Fullstack разработчика» на Skillbox.

Студент может выбрать один из трех языков программирования: PHP, JavaScript, Python. Для бэкенда рекомендуется выбрать PHP или Python.

  • веб-разработка в Московском финансово-промышленном университете «Синергия»;
  • прикладная информатика в экономике в МосГУ;
  • прикладная информатика в МИСиС;
  • прикладная информатика в экономике в МЭИ;
  • прикладная информатика в экономике в МГУПП.

Ссылка на обучение и дополнительную информацию: https://skillbox.ru/course/profession-fullstack-dev/

Онлайн-образование

Skillbox также предлагает специализированные курсы, включая «Fullstack Developer in JavaScript» — https://skillbox.ru/course/profession-fullstack-js/ и «Fullstack Developer in PHP» — https://skillbox.ru/course/profession-fullstack-php/.

2-й репетитор по веб-разработке в GeekBrains.

Это полуторагодичная программа обучения. Основное внимание уделяется бэкенду, но курс также включает обучение фронтенду. Партнер курса представлен хостинг-провайдером и регистратором доменов REG.RU.

Профессия Fullstack-разработчик на Skillbox для изучения бэкенда

Несколько полезных ссылок для профессии:

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

Что вы думаете об области back-end? Возможно, вы сравнивали специальность с фронтендом? Если да, то к каким выводам вы пришли? Поделитесь любой информацией в комментариях!

Факультет веб-разработки на GeekBrains для бэкенда

Полезные ссылки

  • Вопрос « Что нужно знать для backend-разработки? » на Хабре с ответами опытных программистов;
  • Подкаст, посвященный бэкенду;
  • « Мой извилистый путь от охранника до backend-разработчика » — история становления;
  • Статья « Для чего back-end разработчику учить JavaScript »;
  • Сообщество программистов в «ВКонтакте»;
  • Stackoverflow — востребованный IT-ресурс с вопросами от новичков и ответами от опытных разработчиков;
  • Активное сообщество веб-разработчиков Web-Shake .
Оцените статью
Бизнес блог