Бэкенд-разработчик
Невидимая половина: то, что считает, хранит, проверяет права и отвечает браузеру. Карта ведёт от первой строчки серверного кода до системы, которую не страшно оставить работать без присмотра.
Что вообще делает сервер 2 дня
Принимает запрос, проверяет права, достаёт данные, отдаёт ответ. Всё остальное — подробности. Полезно сразу разделить в голове три вещи: сервер как железо, сервер как программа и сервер как ваш код.
Что уметь в конце
- Объяснить путь запроса от кнопки в браузере до строки в базе
Выбор языка 3 дня
Node.js — если уже знаете JavaScript, язык будет один на весь проект. Python — самый мягкий вход и всё, что связано с ИИ. Go — скорость и простое развёртывание. PHP — огромный рынок готовых сайтов и заказов на поддержку. Плохого выбора здесь нет, есть невыбор: метание между языками съедает год.
Где смотреть
Основы выбранного языка 2 месяца
Типы, функции, структуры данных, работа с файлами, ошибки, зависимости. Самый длинный узел: пока язык не стал привычным, любая библиотека будет казаться волшебством.
Что уметь в конце
- Написать программу на 300 строк, которую сами поймёте через месяц
- Разобрать чужую ошибку по тексту исключения
Git 1 неделя
История правок, ветки, слияния. На сервере цена ошибки выше, чем на вёрстке: возможность быстро вернуться к рабочей версии — не роскошь.
Где учить
Базы данных 1 месяц
Таблицы, строки, связи, индексы, транзакции. Берите PostgreSQL: он бесплатен, годится и для маленького сайта, и для большой системы, документация есть на русском.
Что уметь в конце
- Создать базу, таблицы и связи для интернет-магазина
- Объяснить, зачем нужен индекс и чем он платит за скорость
Где учить
SQL 3 недели
Язык запросов к данным: выборка, соединение таблиц, группировка, подзапросы. Навык, который переживёт любой каркас и пригодится даже аналитику.
Что уметь в конце
- Написать отчёт с соединением трёх таблиц и группировкой
- Понять по плану запроса, почему он медленный
Где учить
- SQL-EX — тренажёр на русском
- SQLBolt — короткие уроки (на английском)
Проектирование схемы 2 недели
Как разложить предметную область по таблицам, чтобы через полгода не переписывать половину системы. Нормализация, связи один-ко-многим и многие-ко-многим, честные ограничения на уровне базы.
Что уметь в конце
- Спроектировать схему по описанию бизнеса на словах
- Запретить на уровне базы то, что запрещено в жизни
Миграции 3 дня
Изменения структуры базы, записанные кодом и применяемые по порядку. Без них обновление живой системы превращается в ручную операцию с риском потерять данные.
Нереляционные хранилища необязательно
MongoDB и её родня. Нужны реже, чем кажется по вакансиям: большинству проектов достаточно обычной базы. Осваивайте под конкретную задачу.
HTTP и REST 1 неделя
Методы, коды ответов, заголовки, тело запроса. Половина споров в командах снимается знанием, чем 401 отличается от 403, а 400 от 422.
Что уметь в конце
- Назвать правильный код ответа для любой ситуации
- Прочитать запрос и ответ целиком в панели разработчика
Свой API 2 недели
Каркас, маршруты, обработчики, разбор входящих данных. На этом узле впервые появляется то, к чему может подключиться фронтенд.
Что уметь в конце
- Поднять API с полным набором действий над одной сущностью
- Отдавать понятные ошибки, а не пятисотый код на всё
Где учить
Описание API 3 дня
Формальное описание, по которому фронтендер работает без вопросов, а клиенты генерируются сами. Пишется один раз и живёт рядом с кодом.
Где учить
Вход и права 2 недели
Пароли и их хранение, сессии или токены, вход через чужой аккаунт, роли и разграничение доступа. Самая опасная тема на карте: здесь ошибки стоят дороже всего.
Что уметь в конце
- Хранить пароли так, чтобы утечка базы не выдала их
- Разграничить доступ по ролям и проверить это тестом
Где учить
Проверка данных и ошибки 1 неделя
Правило простое: всё, что пришло снаружи, — враждебно, пока не проверено. Единый формат ошибок избавляет фронтенд от гадания.
Кеш 1 неделя
Хранение готового ответа, чтобы не считать его заново. Ускоряет в разы, но добавляет главный вопрос профессии: когда кеш перестал быть правдой.
Где учить
Очереди и фоновые задачи 1 неделя
Долгие дела — отчёты, рассылки, обработка картинок — выносятся из запроса в фон. Человек получает ответ сразу, работа доделывается отдельно.
Где учить
Файлы и загрузки 3 дня
Приём файлов, проверка типа и размера, хранение отдельно от кода, раздача через внешнее хранилище. Загруженный файл — это чужой код у вас на диске, относиться к нему нужно соответственно.
Почта и уведомления 3 дня
Письма о регистрации и заказах, сообщения в мессенджер. Главная сложность — не отправка, а доставляемость: без правильных записей домена письма уходят в спам.
Тесты 2 недели
На сервере тесты окупаются быстрее всего: проверка прав, расчёт цены, обработка оплаты — то, что нельзя ломать. Отдельная тема — тесты, которые ходят в настоящую базу.
Журналы и наблюдаемость 1 неделя
Когда система упала ночью, единственный свидетель — журнал. Структурные записи, уровни важности, счётчики и оповещения вместо «кажется, тормозит».
Где учить
Безопасность 1 неделя
Внедрение SQL, чужие скрипты, подделка запросов, утечка секретов в репозиторий, ограничение частоты обращений. Минимум, ниже которого нельзя выпускать систему к людям.
Где учить
Развёртывание 1 неделя
Как код попадает на сервер и запускается там: контейнер, переменные окружения, запуск как служба, обновление без простоя. Подробности — в карте про серверы.
Куда дальше
Узкие места 1 неделя
Девять из десяти торможений — это база: отсутствующий индекс или запрос в цикле. Сначала измерить, потом чинить — а не наоборот.
Что уметь в конце
- Найти самый медленный запрос и ускорить его
- Отличить нагрузку на процессор от ожидания диска или сети
Сверка с зарубежной картой необязательно
Полная англоязычная карта профессии со всеми ответвлениями — у коллег из roadmap.sh. Наша короче намеренно: в ней то, что спрашивают на работе чаще всего.
Куда смотреть
- roadmap.sh — Backend (на английском)