Пока кто-то не может найти работу, на hh.ru открыто 1270 вакансий по специальности бэкенд-разработчик, на Indееd.com — 440. Работодателям нужны подготовленные специалисты, и они готовы платить. В среднем в Москве Junior получает 60 000 рублей, в регионах — 30 000 рублей.
Рассказываем, кто такие бэкенд-разработчики, какие навыки и умения им нужны и как стартовать новичку.
Место бэкенд в веб-разработке
Веб-разработка — создание сайтов и веб-сервисов. Включает программирование на стороне клиента и сервера. Эту часть работы выполняют программисты. Они работают совместно с дизайнерами и верстальщиками, которые разрабатывают веб-дизайн и создают макеты страниц.
Веб-разработчики работают в трёх направлениях:
Кто такой бэкенд-разработчик
Сложно. Бэкенд разрабатывает программно-административную часть проекта, занимается его внутренним содержанием и серверной частью — базами данных, архитектурой, программной логикой.
Просто. Бэкенда можно сравнить со строителем, который:
- укладывает кирпичи — знает язык программирования;
- знает, как пользоваться бетономешалкой, чтобы не замешивать цемент вручную, — использует фреймворки;
- умеет читать планы и документацию здания — понимает чужой код.
Порог входа в бэкенд высокий, новичкам сложно освоить всё с нуля самостоятельно. Поэтому в специальность чаще переходят бывшие фронтенды, которые знают JavaScript, разбираются в библиотеках и фреймворках, используют некоторые из них.
- Научитесь программировать на JavaScript и PHP — сможете создавать сайты и веб-приложения
- Выполните 9 проектов для портфолио
- Лучших выпускников ждёт стажировка или трудоустройство в Affinage
Какие навыки нужны
Hard skills — основные рабочие навыки, которые нужны для выполнения задач. Бекэнд-разработчику нужно знать:
- языки серверного программирования PHP, Ruby, Python или другие;
- MySQL, основы работы с базой данных;
- паттерны программирования и фреймворки Ruby on Rails, Yii, Django или другие;
- алгоритмы.
Чтобы освоить профессию, нужно понимать работу языка и его окружения, функционирование сетей — стека протоколов TCP/IP, HTTP. Бэкенду нужно разбираться в работе системы версионирования Git и сервера, например, по схеме ubuntu server + nginx + mysql + фреймворк.
Начинающему бэкенду нужно знать английский хотя бы на уровне чтения документов.
Soft skills — неспециализированные навыки, которые не связаны с должностными обязанностями прямо, но помогают устроиться на работу, стать частью команды и развивать карьеру:
- умение слушать собеседника, вести диалог, задавать вопросы и отстаивать свою точку зрения;
- говорить о проблемах в работе, просить совет у более опытных разработчиков;
- искать информацию и перенимать опыт коллег;
- планировать рабочий процесс, ставить сроки выполнения.
Как развивать карьеру
Junior
Знает язык программирования, умеет работать с базой данных, может выполнять простые задачи в проекте. Чтобы развиваться профессионально:
- занимается самообразованием;
- знает, где и как искать ответы на вопросы по ходу работы;
- работает под наблюдением опытных разработчиков;
- проходит pull request — опытные специалисты просматривают его код, комментируют и дают рекомендации по улучшению.
Middle
Знает язык программирования на продвинутом уровне, ознакомлен с code style проекта, умеет использовать фреймворки. Самостоятельно выполняет несложные задачи на проекте, может проектировать решения для небольших задач. За счёт опыта может оценить задачи и ставить сроки выполнения.
Senior
Опытный разработчик, хорошо знает специфику своего стека и особенности его работы в разных окружениях. Может проектировать масштабные задачи и проекты, понимает необходимость использования или отказа от определённых паттернов или решений. Благодаря большому опыту может консультировать других разработчиков. Обладает развитыми soft skills:
- умеет донести до заказчика, какие решения лучше использовать;
- делится знаниями с командой, помогает решить проблемы менее опытных разработчиков;
- понимает, зачем конкретные решения нужны бизнесу;
- отличает хорошие решения поставленных задач от плохих, может предложить оптимальное.
Полезные материалы для начинающих
«Совершенный
код»,
С. Макконнелл
Практическое руководство по программированию с учётом современных технологий и тенденций.
Автор приводит инструкции и многочисленные примеры, рассказывает об эффективных методиках и принципах создания кода. Книга для тех, кто работает над проектами любой сложности.
«Рефакторинг. Улучшение существующего
кода»,
Мартин Фаулер
Автор перечисляет простые шаги рефакторинга — перемещение поля в другой класс, вынесение фрагмента кода из метода, превращение его в самостоятельный метод и другие. Материал для тех, кто хочет предотвратить распад плохо спроектированной программы и улучшить проект.
«Создание микросервисов»,
Сэм Ньюмен
Книга о программировании микросервисов — небольших автономных компонентов, которые позволяют сделать программу модульной и добиться отказоустойчивости.
Полезный материал для тех, кто работает с трудно разрешимыми задачами и масштабирует проекты.
«Working Effectively with Legacy Code», Майкл Физерс
Автор рассказывает о работе с непроверенным унаследованным кодом, приводит перечень методов изолированной работы с частями программы и безопасных изменений.
Книга для тех, кто работает с унаследованным кодом и совершенствует устаревшие программы.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.