-
Фаза 1. С чего начать
Зачем этот курс и кому он подойдёт: какую проблему решает программа, как устроены фазы, опросы, тесты и тренажёры, и как проходить её так, чтобы дошло до конца.
- Зачем этот курс и кому он подойдёт обязательно
-
Фаза 2. Основы языка: JavaScript и TypeScript · 18 вопросов
Минимум JavaScript, асинхронность и event loop, модули и npm, типы, дженерики, сужение типов, классы и декораторы, инструменты — фундамент языка.
- Основы JavaScript
- Базовые типы TypeScript: аннотации, вывод, union и any
- Сужение типов и guards в TypeScript
- Дженерики в TypeScript: переиспользуемый типобезопасный код
- Классы и декораторы в TypeScript
- Асинхронность и event loop в TypeScript
- Модули и npm: как код собирается из частей
- Инструменты TypeScript и Node: с чего начать
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 3. Глубокий JavaScript · 18 вопросов
Ядро языка под рантаймом: типы и приведение, область видимости и замыкания, прототипы, ссылки и копирование, промисы изнутри, итераторы и генераторы. То, на чём ломается серверный код, когда TypeScript уже скомпилирован.
- Типы в JavaScript: примитивы, объекты и typeof
- Приведение типов: ==, === и truthy/falsy
- Область видимости: var, let, const и поднятие
- Замыкания: как работают и зачем нужны
- Прототипы: делегирование и классы как сахар
- Объекты: ссылки, копирование и неизменяемость
- Промисы изнутри: цепочки, ошибки и async/await
- Итераторы и генераторы
- Тест фазы в кабинете
-
Фаза 4. Алгоритмы и структуры данных · 30 вопросов
Массивы и O-нотация, сортировки, стеки и очереди, списки, рекурсия, деревья, хеш-таблицы, кучи и графы, а затем приёмы решения задач — два указателя, окно, префиксные суммы, динамическое программирование.
- Зачем нужны структуры данных и алгоритмы
- Математика для O-нотации: логарифмы, степени и скорость роста обязательно
- Массивы, двоичный поиск и O-нотация обязательно
- Простая сортировка: пузырёк, выбор, вставка обязательно
- Стеки и очереди
- Связанные списки
- Рекурсия обязательно
- Нетривиальная сортировка: Шелла, быстрая, поразрядная
- Двоичные деревья
- Красно-чёрные деревья
- Деревья 2-3-4 и B-деревья
- Хеш-таблицы обязательно
- Пирамиды (кучи)
- Графы
- Взвешенные графы: минимальный остов и кратчайший путь
- Два указателя и скользящее окно обязательно
- Префиксные суммы обязательно
- Двоичный поиск по ответу обязательно
- Монотонный стек обязательно
- Динамическое программирование обязательно
- Перебор с отсечением обязательно
- Как выбрать структуру данных обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 5. Git и модели ветвления · 18 вопросов
Снимки и коммиты, ветки и слияние, push/pull, pull request и код-ревью, rebase и reflog, модели ветвления от Git Flow до trunk-based.
- Что такое Git и зачем он каждому обязательно
- Коммиты и история: add, commit, log и .gitignore обязательно
- Ветки и слияние: merge и конфликты обязательно
- Удалённые репозитории: push, pull и fetch обязательно
- Pull request и код-ревью обязательно
- Rebase и cherry-pick: переписывание истории
- Отмена и спасение: reset, revert, reflog
- Модели ветвления: Git Flow, GitHub Flow, GitLab Flow, trunk-based
- Тест фазы в кабинете
-
Фаза 6. Фундамент: ядро NestJS · 19 вопросов
Модули и DI, контроллеры и маршрутизация, конвейер запроса (pipes, guards, interceptors, filters), конфигурация и жизненный цикл, persistence на TypeORM, асинхронность и задачи.
- Модули и Dependency Injection в NestJS
- Контроллеры и роутинг в NestJS
- Валидация и pipes в NestJS
- Guards: аутентификация и авторизация в NestJS
- Interceptors: сквозная логика в NestJS
- Exception filters: обработка ошибок
- NestJS: конфигурация и жизненный цикл приложения
- Персистентность: TypeORM
- Async, расписание и фоновые задачи в NestJS
- Тест фазы в кабинете
-
Фаза 7. SQL с нуля · 31 вопросов
Язык запросов до особенностей конкретной базы: таблицы и ключи, SELECT и WHERE, соединения, агрегаты, NULL, подзапросы, оконные функции, даты и строки, изменение данных, создание таблиц и почему запрос вдруг стал медленным.
- Что такое база данных и таблицы обязательно
- SELECT: выбрать, отфильтровать, отсортировать обязательно
- JOIN: собрать данные из нескольких таблиц обязательно
- Агрегаты: COUNT, GROUP BY и HAVING обязательно
- NULL и типы данных: где все спотыкаются обязательно
- Подзапросы и CTE: запрос внутри запроса обязательно
- Оконные функции: считать, не схлопывая строки
- Даты и время в SQL: отрезки, группировка по дням и арифметика
- Строки в SQL: склейка, поиск и приведение к одному виду
- INSERT, UPDATE, DELETE и транзакции обязательно
- Схема базы данных: таблицы, ключи и представления
- Почему запрос медленный: индексы на пальцах обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 8. Данные: PostgreSQL · 19 вопросов
Реляционные основы — ACID и уровни изоляции, партиционирование и шардинг.
-
Фаза 9. Другие хранилища: документы, поиск, файлы, аналитика · 101 вопросов
Сначала фундамент: как хранилища устроены внутри — движки, репликация, шардинг, потоки. Затем сами хранилища: MongoDB, Elasticsearch, object storage (S3) и ClickHouse — выбор и эксплуатация под профиль нагрузки. Плюс развилки выбора базы данных и графовая СУБД Neo4j.
- B-деревья и LSM-деревья простыми словами: как база данных хранит данные обязательно
- OLTP и OLAP простыми словами: два разных мира работы с данными обязательно
- Эволюция схем простыми словами: менять формат данных, ничего не ломая
- Модели репликации простыми словами: почему реплика отстаёт, multi-leader и кворумы обязательно
- Секционирование (шардинг) простыми словами: как разрезать данные по узлам без горячей точки обязательно
- Система записи и производные данные простыми словами: почему кеш, индекс и read-модель — одно и то же
- Потоковая обработка простыми словами: перехват изменений (CDC) и время в потоках
- ACID, read и write concerns, транзакции в MongoDB на TypeScript
- Репликация и шардинг в MongoDB
- Моделирование документов в MongoDB: embed vs reference, индексы обязательно
- Elasticsearch: как устроен поисковый движок обязательно
- Как работают запросы в Elasticsearch и почему документы сортируются именно так обязательно
- Как работает Elasticsearch в production: ILM, snapshots, sizing, мониторинг
- Что такое object storage: bucket, объект, ключ, классы хранения и presigned URL обязательно
- S3 в production: резервные копии, репликация, стоимость и мониторинг
- Как устроен ClickHouse: колоночное хранение, MergeTree и OLAP обязательно
- ClickHouse: моделирование схемы, запросы, materialized views обязательно
- ClickHouse в проде: репликация, TTL, бэкапы и мониторинг
- Архитектура Cassandra: кольцо без главного узла
- Модель данных Cassandra: partition key и clustering columns
- Согласованность и репликация в Cassandra
- Как устроен Neo4j: property graph, узлы, рёбра и обход без индексов
- Cypher: язык запросов к графу простыми словами
- Neo4j: моделирование графа, индексы и эксплуатация
- PostgreSQL или MongoDB: как выбрать базу данных
- Oracle или PostgreSQL: отличия и миграция
- Cassandra, PostgreSQL или MongoDB: когда брать колоночную NoSQL
- Графовые данные простыми словами: рекурсивный SQL или графовая СУБД
- Neo4j: где применяют графовую СУБД — от рекомендаций до GraphRAG
- PostgreSQL или ClickHouse: когда добавлять вторую базу
- Поиск: PostgreSQL FTS или Elasticsearch
- Файлы: в базе данных или в object storage
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 10. Принципы и паттерны проектирования · 15 вопросов
SOLID, GRASP, паттерны GoF и принципы DRY/KISS/YAGNI на примерах.
-
Фаза 11. Сетевой фундамент · 31 вопросов
Модели OSI и TCP/IP, IP и порты, TCP/UDP, DNS, HTTP и HTTPS, версии HTTP, соединения и надёжность.
- Как устроена сеть: модели OSI и TCP/IP обязательно
- IP-адреса, порты и NAT
- TCP и UDP: надёжность против скорости обязательно
- DNS: как доменное имя превращается в адрес обязательно
- HTTP: методы, статусы, заголовки обязательно
- HTTPS и TLS: шифрование и рукопожатие обязательно
- HTTP/1.1, HTTP/2 и HTTP/3: что поменялось
- Соединения: keep-alive, пулы и таймауты
- Два пула: к базе и по HTTP — чем отличаются и как топят друг друга
- Балансировщики и обратные прокси обязательно
- Сеть и надёжность: таймауты, ретраи, идемпотентность
- Сетевая диагностика с хоста: что смотреть, когда сервис не отвечает
- WebSocket, SSE и long polling обязательно
- Масштабирование WebSocket в Kubernetes через Kafka
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 12. API: REST и контракты · 36 вопросов
Нейминг URL и ресурсы, параметры запроса, ответы и ошибки, заголовки, версионирование, OpenAPI и антипаттерны.
- URL и ресурсы в NestJS: как называть пути и выбирать HTTP-методы
- Query-параметры в NestJS: фильтрация, пагинация и поиск
- JSON и формат ответов в NestJS
- Ошибки RFC 9457 — Problem Details на NestJS
- Заголовки HTTP в NestJS: стандартные, кастомные и трассировка
- Версионирование REST API в NestJS — v1/v2 в URL
- Alias и Action-эндпоинты в NestJS — me, latest, default и доменные команды
- OpenAPI в NestJS и частые ошибки при проектировании API
- Rate limiting, загрузка файлов и deprecation в NestJS
- Групповые операции, долгие задачи и локализация в NestJS
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 13. Безопасность и авторизация · 24 вопросов
Где стоит проверка, JWT-валидация, RBAC и ABAC, хранение токенов, service-to-service, PII и аудит.
- Паттерны аутентификации и авторизации
- Где делать auth-проверку в NestJS: Gateway, контроллер и обработчик
- JWT-валидация в NestJS: passport-jwt и jwks-rsa
- RBAC в NestJS: роли, guards и JWT
- ABAC и владение ресурсом в NestJS
- Хранение токенов в браузере — HttpOnly cookie и refresh rotation (NestJS)
- Аутентификация между сервисами в NestJS: mTLS и Client Credentials
- PII и секреты в NestJS: как не допустить утечки
- Audit log admin-команд в NestJS
- PCI DSS для разработчика
- GDPR для разработчика
- Тест фазы в кабинете
-
Фаза 14. Брокеры и распределённые системы · 37 вопросов
AMQP/RabbitMQ и Kafka, распределённые паттерны: saga, outbox, idempotency.
- Протокол AMQP: exchange, queue, binding, ack обязательно
- RabbitMQ в production: кластеризация, типы очередей и мониторинг
- Паттерны обмена сообщениями через AMQP на TypeScript
- AMQP vs Kafka: какой брокер выбрать обязательно
- Apache Kafka: топики, партиции, порядок и гарантии на TypeScript
- Kafka в production на TypeScript: kafkajs, DLQ, Schema Registry, тюнинг, безопасность
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 15. Микросервисы: архитектура и проблемы · 32 вопросов
Нужны ли микросервисы, как устроен сервис и как они общаются; что ломается в распределённой системе и как это лечить — saga, outbox, идемпотентность, устойчивость.
- Выбор начальной архитектуры: монолит, модульный монолит, микросервисы обязательно
- Структурные паттерны микросервисов на TypeScript
- Между сервисами: синхронный вызов или события обязательно
- Проблемы распределённых систем простыми словами: частичные отказы, ненадёжные часы, истина по кворуму обязательно
- Согласованность и консенсус простыми словами: линеаризуемость, CAP и одна общая задача обязательно
- Корректность в распределённой системе простыми словами: сквозной аргумент, exactly-once, целостность против своевременности
- Распределённые паттерны: согласованность данных между сервисами на TypeScript
- Паттерны отказоустойчивости: Retry, Circuit Breaker, Bulkhead, DLQ на TypeScript
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 16. Kubernetes и корректное завершение · 34 вопросов
Кластер, сеть, деплой и эксплуатация в Kubernetes; graceful shutdown от дренажа HTTP до бюджетов и наблюдаемости.
- Kubernetes: pod, deployment, service — с чего начать обязательно
- Сеть в Kubernetes: Service, DNS, Ingress, NetworkPolicy обязательно
- Деплой в Kubernetes: манифесты, Helm, rolling update, GitOps обязательно
- Kubernetes на практике: отладка подов и kubectl-команды
- OpenShift: чем отличается от чистого Kubernetes
- Helm: пакетный менеджер Kubernetes
- Argo CD: GitOps-доставка в Kubernetes
- Как настроить graceful shutdown в NestJS: enableShutdownHooks и состояние дрейна
- HTTP drain в NestJS: как не терять запросы при перезапуске
- Как закрыть соединения с базой данных при остановке Node.js-сервиса
- Остановка фоновых задач в NestJS: scheduler, BullMQ, outbox
- Kafka shutdown в NestJS: как правильно останавливать consumer и producer
- Идемпотентность in-flight операций в NestJS
- Graceful shutdown NestJS в Kubernetes: preStop, probes, rolling deploy
- Бюджеты завершения и наблюдаемость в NestJS
- Тест фазы в кабинете
-
Фаза 17. Облака · 87 вопросов
Общие принципы облаков и три провайдера — AWS, Azure и GCP: сеть, IAM, compute, масштабирование, serverless, данные, хранилища и IaC. Модель одна, знания переносимы между облаками.
- Что такое облако и зачем оно нужно обязательно
- Регионы и зоны доступности: где физически живёт ваш сервис обязательно
- Учётные записи и права в облаке: пользователи, сервисные аккаунты, роли обязательно
- Сеть в облаке: частная сеть, подсети, файрвол и выход наружу обязательно
- Три уровня вычислений: машины, контейнеры, функции обязательно
- Управляемые данные: базы, кэш, очереди и объектное хранилище обязательно
- Наблюдаемость и секреты в облаке обязательно
- Деньги в облаке: за что платят и как не переплатить обязательно
- Отказоустойчивость и восстановление: зоны, копии, RPO и RTO обязательно
- Основы AWS: аккаунты, IAM, регионы и VPC обязательно
- Сеть в AWS: VPC, подсети, NAT и security groups обязательно
- IAM в AWS: пользователи, роли и политики обязательно
- Где запускать сервис в AWS: EC2, ECS, EKS или Lambda обязательно
- Масштабирование и доступность в AWS обязательно
- Serverless в AWS: Lambda, события, cold start, API Gateway обязательно
- Управляемые данные в AWS: RDS, ElastiCache, SQS, MSK обязательно
- DynamoDB: ключи, индексы и когда брать вместо SQL
- Безопасность и наблюдаемость в AWS: Secrets Manager, SSM, KMS, CloudWatch обязательно
- Оптимизация затрат в AWS: с чего начать
- Отказоустойчивость и аварийное восстановление в AWS
- AWS Well-Architected Framework: шесть столпов и как ими пользоваться обязательно
- Infrastructure as Code: основы
- Terraform: HCL, провайдеры, состояние и модули
- CloudFormation: шаблоны и стеки
- AWS CDK: инфраструктура как программа
- IaC на практике: state, секреты, доставка
- Основы Azure: подписки, группы ресурсов, Entra ID, сеть
- Сеть в Azure: Virtual Network, подсети, NSG, NAT
- Entra ID и RBAC в Azure: удостоверения, роли, managed identity
- Где запускать сервис в Azure: Virtual Machines, AKS, Container Apps, Functions
- Масштабирование и доступность в Azure
- Serverless в Azure: Azure Functions, триггеры, API Management
- Управляемые данные в Azure: PostgreSQL, Redis, Service Bus, Event Hubs
- Cosmos DB: глобально распределённая база данных Azure
- Blob Storage в Azure: объектное хранилище и уровни доступа
- Azure из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в Azure: Key Vault, Azure Monitor, Application Insights
- Оптимизация затрат в Azure: с чего начать
- Отказоустойчивость и аварийное восстановление в Azure
- Инфраструктура как код в Azure: Bicep, ARM, Terraform
- Основы GCP: проекты, Cloud IAM, регионы, сеть
- Сеть в GCP: VPC, подсети, правила файрвола, Cloud NAT
- Cloud IAM в GCP: сервисные аккаунты, роли, привязки
- Где запускать сервис в GCP: Compute Engine, GKE, Cloud Run, Cloud Functions
- Масштабирование и доступность в GCP
- Serverless в GCP: Cloud Run, Cloud Functions, Eventarc
- Управляемые данные в GCP: Cloud SQL, Memorystore, Pub/Sub
- Firestore и другие NoSQL в GCP: Bigtable, Spanner
- Cloud Storage в GCP: объектное хранилище и классы хранения
- GCP из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в GCP: Secret Manager, Cloud Logging, Cloud Monitoring
- Оптимизация затрат в GCP: с чего начать
- Отказоустойчивость и аварийное восстановление в GCP
- Terraform в GCP: инфраструктура как код
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 18. CI/CD: конвейер доставки · 19 вопросов
Принципы конвейера, стратегии релиза, ветвление и выпуски.
-
Фаза 19. Качество: стратегия тестов · 8 вопросов
Пирамида тестов, слайсы и интеграционные тесты, моки и внешние сервисы, нагрузочное тестирование.
-
Фаза 20. Наблюдаемость и диагностика · 31 вопросов
Как понять, что происходит с работающей системой: журналы, метрики, трассировка, проброс контекста, health-проверки, SLO и алерты — плюс диагностика базы и разбор аварий после.
- Наблюдаемость в NestJS: логи, трейсы, метрики и health-checks
- Структурированные логи в NestJS: pino, контекст запроса и защита персональных данных
- Метрики в NestJS: prom-client, RED и USE методы
- Distributed tracing в NestJS: OpenTelemetry с нуля
- Context propagation в NestJS: AsyncLocalStorage, middleware и очереди
- Health checks в NestJS: liveness, readiness и /info
- SLO и алерты в Node.js: error budget, burn rate и как не пропустить инцидент
- Observability в NestJS: management-порт, метрики и логи
- Постмортем и дежурства: разбор аварий без поиска виноватых обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 21. Работа с AI-агентами · 30 вопросов
Как работает языковая модель и как продуктивно писать код с AI-агентом: токены и галлюцинации, контекст, вызов инструментов, агенты, базовый цикл работы, ревью и приёмка AI-кода.
- Как работают модели ИИ: предсказание следующего токена обязательно
- Галлюцинации ИИ: почему модель уверенно выдумывает обязательно
- Токены и стоимость: за что вы платите в работе с ИИ
- Контекст: что модель держит в голове за один раз обязательно
- Вызов инструментов: как модель выходит за пределы текста обязательно
- Агенты: модель в цикле с инструментами и целью обязательно
- Работа с агентами: базовый цикл продуктивной сессии обязательно
- Spec-driven development: сначала спецификация, потом код
- Ревью и тестирование кода с агентом
- Приёмка результата AI: критерии и тесты из спеки обязательно
- AI как рычаг продукт-инженера обязательно
- Как настроить агента под свой проект: правила, память, инструменты обязательно
- Какой язык программирования выбрать для AI-кодинга
- Ежедневная работа с агентом: разобраться, сделать, починить обязательно
- Как ревьюить код, который написал агент обязательно
- Исполняемые правила агента vs SonarQube vs ESLint vs ревью тимлидом
- Тест фазы в кабинете
-
Фаза 22. Создание LLM-приложений · 16 вопросов
Как встраивать AI в backend-продукт: из чего состоит LLM-фича, оркестрация через LangChain, RAG и эмбеддинги, векторные базы и агентные приложения.
-
Фаза 23. Системный дизайн и архитектурный выбор · 32 вопросов
Метод дизайна и строительные блоки, design-docs, развилки хранилищ и синхронности, ADR, роль архитектора и нотация C4.
- Надёжность, масштабируемость, сопровождаемость — простыми словами обязательно
- Метод системного дизайна: от требований к архитектуре обязательно
- Строительные блоки системного дизайна обязательно
- Как устроена система уведомлений: архитектура с нуля
- Как оформить и защитить дизайн системы: design doc, C4, ревью обязательно
- ADR: как фиксировать архитектурные решения обязательно
- Роль архитектора в команде разработки обязательно
- Модель C4
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 24. Domain-Driven Design · 19 вопросов
Стратегические и тактические паттерны, интеграция контекстов и принципы проектирования домена.
- Что такое DDD и зачем он нужен обязательно
- Стратегические паттерны DDD на TypeScript
- Тактические паттерны DDD на TypeScript
- Интеграционные паттерны DDD на TypeScript
- Принципы проектирования в DDD на TypeScript
- Онтология и доменная модель: система понятий до агрегатов
- Event Storming: добываем модель домена у бизнеса
- Тест фазы в кабинете
-
Фаза 25. Архитектурные паттерны сервиса · 36 вопросов
Структура сервиса и микросервисов, Onion и Hexagonal, CQRS, отказоустойчивость и пакетная обработка.
- Луковая архитектура (Onion Architecture) обязательно
- CQRS
- Когда применять CQRS в NestJS
- Command side в CQRS — как писать команды в NestJS
- Query side в CQRS на NestJS — как устроено чтение данных
- Read-model в CQRS — денормализованная проекция на NestJS / TypeScript
- Синхронизация read-model через события в NestJS
- Уровень и эволюция CQRS в NestJS
- Гексагональная архитектура
- Когда применять Hexagonal Architecture в Node/NestJS
- Core слой в Hexagonal Architecture: Node/NestJS
- Ports в Hexagonal Architecture — как изолировать ядро от внешнего мира
- Adapters In в Hexagonal-архитектуре на NestJS
- Out-адаптеры в Hexagonal на NestJS/TypeScript
- Структура папок в Hexagonal-проекте на NestJS
- Bootstrap / Composition Root в Hexagonal (NestJS)
- Архитектурные тесты в Hexagonal-проекте (NestJS)
- Пакетная обработка данных: как не сломать фоновый обработчик на TypeScript
- Event Sourcing: хранить события, а не состояние
- Тест фазы в кабинете
-
Фаза 26. Методологии и процесс разработки · 13 вопросов
Waterfall, Agile, Scrum, Kanban, XP, оценка и масштабирование — как команда организует работу от идеи до релиза.
- Модели разработки: от Waterfall к Agile обязательно
- Scrum: роли, события и артефакты обязательно
- Kanban: поток, WIP-лимиты и вытягивание обязательно
- Extreme Programming: инженерные практики Agile
- Оценка и планирование: story points и velocity
- Масштабирование Agile: SAFe и LeSS
- Методология для AI: Use Case Pattern и другие способы
- Тест фазы в кабинете
Программа обучения v12.1.41
Backend · Node
Программа подготовки backend-инженера на Node (NestJS + TypeScript). Шестнадцать фаз от фундамента NestJS через данные, принципы и паттерны, поиск, инфраструктуру и качество к системному дизайну и DDD и к кульминации в Use Case Pattern, а затем к сквозному кейсу маркетплейса. Концептуальные фазы общие для всех языков, инструментальные — на стеке Node.
Всего в программе 754 вопросов для самопроверки.