Как стать 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

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

  Как создать игру на Unity. Как сделать игру на unity.

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

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

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

Этого серьезного списка достаточно, чтобы начать работу. В дальнейшем вам может понадобиться изучение администрирования 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 .
Оцените статью
Бизнес блог