Персональный маршрут · 2026

24 недели.
Один рабочий сервис.
Ноль магии.

Маршрут от слабой базы до небольших backend-тикетов в реальном проекте — с тестами, PR и обязательной защитой каждого решения.

≈670часов практики
24небольших PR
6checkpoint’ов
1сквозной WorkHub
C#.NET 10ASP.NET CorePostgreSQLEF CoreRedisRabbitMQSignalRDockerxUnit
00 / Куда идём

Не «выучить backend».
Стать полезным команде.

Через шесть месяцев Кир должен безопасно закрывать маленькие задачи под review: прочитать request flow, внести точечное изменение, написать тесты и объяснить решение.

Результат
  • CRUD, validation, mapping и локальные bugfix’ы
  • PostgreSQL и EF Core без очевидных ловушек
  • Unit + integration tests одной командой
  • Docker Compose и диагностика по логам
  • Маленький PR без случайного «заодно переписал всё»
2ч

Стартовая диагностика · без AI

Сначала найдём реальные пробелы

Создать console app, обработать набор чисел, объяснить базовые конструкции, сделать Git-коммит и прочитать простой SQL-запрос. Результат не «оценка», а карта дыр в фундаменте.

К первой неделе
Пока не трогаем: MicroservicesKubernetesглубокий DDDCQRSEvent Sourcingproduction-доступ

Сначала один вертикальный срез. Распределённое спагетти успеет найти нас позже.

01 / Рабочий ритм

Четыре часа.
Каждый день.

Воскресенье остаётся лёгким: никакой новой тяжёлой темы — только повторение, пересдача и короткая демонстрация.

4:00в день
30повторение
45теория
120код
30проверка
15журнал
  1. ПнПонятьТема и упражнение по образцу
  2. ВтПовторитьЗадача с документацией
  3. СрСделатьПохожая задача без образца
  4. ЧтСломатьГраницы, тесты и debugger
  5. ПтВстроитьВертикальный срез WorkHub
  6. СбОтправитьPR, self-review и README
  7. ВсЗащититьБез AI, ретро и пробелы
02 / Полный маршрут

24 недели,
5 ясных фаз

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

01

Недели 1–7 · Foundation

C# и рабочая база

196 часов
01STARTИнструменты, терминал, Git и первый C#console
Изучить

.NET 10 SDK, IDE, `dotnet new/build/run`, типы, ввод-вывод; Git status/add/commit/log/diff.

Сделать

15–20 небольших console-задач и репозиторий `backend-learning` с чистой историей.

Готовность

Сам создаёт и запускает project, чинит compile error, объясняет working tree, index и commit.

02CONTROL FLOWУсловия, циклы, методы и debuggerdebug
Изучить

`if`, `switch`, loops, methods, parameters, scope, breakpoint и пошаговую отладку.

Сделать

Calculator, converter, «угадай число» и безопасный разбор пользовательского ввода.

Готовность

Не дублирует логику, находит ошибку debugger’ом и объясняет простой call stack.

03DATA IN MEMORYКоллекции, даты, nullable и JSONjson
Изучить

`List`, `Dictionary`, `HashSet`, strings, `Guid`, `DateTimeOffset`, enum, nullable, files и JSON.

Сделать

Console task manager с CRUD, фильтрацией и сохранением между запусками.

Готовность

Осознанно выбирает collection, обрабатывает пустой input и не глушит nullable warnings.

04OBJECTSООП без архитектурного театраCHECK 01
Изучить

Classes, constructors, encapsulation, composition, interfaces и exceptions.

Сделать

Разделить task manager на model, service и `ITaskRepository`; две реализации storage.

Контроль

За 90 минут без AI написать console app, отладить и защитить каждое решение.

05QUERIESLINQ, generics и функциональные элементыlinq
Изучить

Generics, delegates, lambdas, `IEnumerable`, LINQ и deferred execution.

Сделать

Фильтры, sorting, grouping, pagination и statistics для task manager.

Готовность

Пишет LINQ query, переписывает циклом и знает момент фактического выполнения.

06I/OAsync, cancellation и HTTP clientasync
Изучить

`Task`, `async/await`, `CancellationToken`, timeout, `HttpClient`; async ≠ parallel.

Сделать

Client к учебному API с cancellation и обработкой timeout/недоступности.

Готовность

Нет `.Result`/`.Wait()`, cancellation доходит до I/O, ошибки сети объяснимы.

07QUALITYUnit-тесты и командный GitxUnit
Изучить

xUnit, Arrange–Act–Assert, test doubles, branches, merge conflict и pull request.

Сделать

Regression test → fix для task manager; оформить первый полноценный PR.

Готовность

Tests запускаются одной командой, проверяют behavior; merge conflict решён самостоятельно.

02

Недели 8–9 · Data

PostgreSQL и SQL

56 часов
08MODELРеляционная модель и CRUD SQLpostgres
Изучить

Tables, PostgreSQL types, PK/FK, constraints, разумную normalization, DDL и CRUD.

Сделать

Schema WorkHub: users, projects, tasks, comments; seed только synthetic data.

Готовность

Relations защищены constraints, cardinality объяснима, CRUD выполняется без GUI-мага.

09QUERYJOIN, индексы и транзакцииCHECK 02
Изучить

JOIN, aggregates, CTE, transaction/rollback, базовую isolation, indexes и `EXPLAIN`.

Сделать

Reports по просроченным tasks и workload; сравнить query plan до/после index.

Контроль

Без AI: schema, CRUD, JOIN-report и transaction с rollback.

03

Недели 10–17 · Application

ASP.NET Core, EF Core и архитектура

224 часа
10HTTPПервый ASP.NET Core Web APIREST
Изучить

URL, headers, JSON, HTTP methods/status codes, REST, idempotency, controllers и OpenAPI.

Сделать

In-memory CRUD tasks и ручные проверки через Swagger/HTTP client.

Готовность

Корректные 200/201/204/400/404; request прослежен от client до response.

11BOUNDARIESDTO, validation, DI, errors и loggingDI
Изучить

DTO, binding, validation, mapping, DI lifetimes, config, middleware, ProblemDetails, logs.

Сделать

Service layer, единый error format и environment configuration.

Готовность

Controller тонкий, DI lifetimes объяснимы, secrets не появляются в logs.

12PERSISTENCEEF Core и migrationsEF Core
Изучить

`DbContext`, entities, Fluent API, migrations, change tracking и async persistence.

Сделать

Заменить memory storage на PostgreSQL и провести учебный migration cycle.

Готовность

Создаёт, применяет и откатывает migration; не заменяет migrations на `EnsureCreated`.

13QUERY SHAPEСвязи и эффективные EF Core queriesN+1
Изучить

Relationships, projection, `Include`, tracking, `AsNoTracking`, filtering и bounded pagination.

Сделать

Comments, assignees, tags и list endpoint с filters/pages.

Готовность

Нет obvious N+1, reads используют projection/NoTracking, page size ограничен.

14INTEGRATIONIntegration-тесты Web APICHECK 03
Изучить

Unit/integration boundaries, `WebApplicationFactory`, test PostgreSQL и data isolation.

Сделать

Tests endpoints, validation, errors, persistence и один concurrent scenario.

Контроль

Vertical slice с migration и tests; устная защита полного request flow.

15IDENTITYAuthentication и authorizationJWT
Изучить

Password hashing, access/refresh JWT, claims, roles, policies, ownership, 401/403.

Сделать

Register/login, refresh rotation/revocation и project access rules — только в учебной среде.

Готовность

Password/refresh не хранятся открыто; invalid/revoked tokens и policies покрыты tests.

16ARCHITECTUREOnion Architecturelayers
Изучить

Domain, Application, Infrastructure, Api, dependency direction и domain invariants.

Сделать

Разложить уже работающий WorkHub по layers без изменения external behavior.

Готовность

Domain не знает EF/ASP.NET; Application тестируется без real DB. Никакого CQRS «для красоты».

17CONTAINERSDocker и Docker ComposeCHECK 04
Изучить

Image, container, volume, network, multi-stage Dockerfile, Compose и health checks.

Сделать

Поднять API + PostgreSQL одной командой из clean clone.

Контроль

Полный запуск, auth flow, layer boundaries и recovery после container restart.

04

Недели 18–22 · Operations

Интеграции и эксплуатация

140 часов
18CACHERedis без магического ускоренияcache
Изучить

Key-value, TTL, cache-aside, serialization, invalidation, cache miss и degradation.

Сделать

Cache project card/dashboard с invalidation на write.

Готовность

Демонстрирует hit/miss/expiry; отказ Redis не ломает основной CRUD.

19MESSAGINGRabbitMQ и workerqueue
Изучить

Producer, consumer, exchange, queue, routing, durable messages, ack/nack, at-least-once.

Сделать

`TaskCreated` event и audit/notification worker с retry + DLQ.

Готовность

Restart не теряет message, failure не зацикливается, duplicate не удваивает effect.

20REALTIMESignalRlive
Изучить

Hub, connection, groups, connection authorization, reconnect и server notifications.

Сделать

Project notifications и простой test client.

Готовность

Projects изолированы groups, anonymous client rejected, disconnect не теряет core data.

21RELIABILITYOutbox, retry и идемпотентностьCHECK 05
Изучить

Transactional outbox, event ID, delayed retry, graceful shutdown, timeout/cancellation.

Сделать

Outbox dispatcher и consumer deduplication.

Контроль

Mentor отключает Redis/RabbitMQ и дублирует message; данные остаются целыми.

22OPERATEObservability, performance, security и CICI
Изучить

Structured logs, correlation ID, health/readiness, metrics, `EXPLAIN`, rate limiting и CI.

Сделать

Измерить 2 bottleneck, связать request → message, ограничить login, настроить build/tests.

Готовность

Есть before/after, trace по correlation ID, reproducible CI и ноль secrets в repo/logs.

05

Недели 23–24 · Ship

Имитация реальной работы

56 часов
23SPRINTBug + feature как настоящие tickets2 PR
Изучить

Acceptance criteria, reproduction, risk assessment, small commits и чужой code.

Сделать

Один anonymized bug и одна bounded feature от Johan.

Готовность

Diff строго в scope, есть regression tests, review исправлен без полной переписи.

24SHIPФинальный release и защитаCHECK 06
Собрать

Clean build, CI, seed data, README, architecture diagram, runbook и rollback.

Показать

Working WorkHub, failure drills Redis/RabbitMQ и 20-минутную demo.

Защитить

За 60–90 минут без AI исправить незнакомый bug и объяснить request + event flow.

03 / Codex + Claude

AI — второй пилот.
Не водитель.

Источник истины — code, compiler, tests, запущенное приложение и official docs. Согласие двух моделей всё ещё не integration test.

C
Repository work

Codex

  • Проследить вызовы и найти связанные files
  • Разбить ticket на маленькие шаги
  • Подготовить minimal diff и запустить checks
  • Провести review относительно criteria

Ни один ответ
не принимается
без проверки

A
Thinking partner

Claude

  • Объяснить тему сократически
  • Уточнить requirements и trade-offs
  • Провести независимое review diff
  • Проверить понимание вопросами
01–04ОбъяснятьБез готового code
05–08НавигироватьRead-only
09–12ПланироватьПосле своей попытки
13–16ДиагностироватьПосле reproduction
17–20ПравитьMinimal patch
21–24СопровождатьПолный small ticket
learning-prompt.txt
Я изучаю [тема] и уже понимаю [что].

Не давай готовое решение. Объясни идею
на маленьком примере, затем задай мне
3 вопроса и одно упражнение.

Отделяй факты от предположений.
Никогда не отправлять

Secrets остаются секретами

Passwords, API keys, cookies, JWT, connection strings, production dumps и персональные данные не попадают ни в один AI prompt.

Два нерабочих AI-совета подряд → stop, minimal reproduction, docs или mentor.
04 / Контроль качества

Не прошёл ворота —
не идёшь дальше.

Checkpoint — новая задача, часть без AI и короткая защита. При провале фиксируем конкретный пробел и пересдаём через 5–7 дней.

04
CHECK 01

C# foundation

Console app + debug + устная защита.

09
CHECK 02

Data

Schema + JOIN + transaction без AI.

14
CHECK 03

Vertical slice

API + PostgreSQL + integration tests.

17
CHECK 04

System

Auth + layers + clean Compose start.

21
CHECK 05

Failure drill

Redis/RabbitMQ fail, данные живы.

24
CHECK 06

Ship

Незнакомый bug без AI + demo.

Rubric · 18 баллов

Каждый PR оценивается одинаково

Correctness 0–3Понимание 0–3Code quality 0–3Testing 0–3Data & security 0–3Delivery 0–3

Проход: 12/18 без нулей. Checkpoint — 13/18, ключевые критерии не ниже 2.

Johan · 60–75 минут в неделю
  1. 15 минDemo результата
  2. 30 минReview одного PR
  3. 15 минВопросы без AI
  4. 5–15 минСледующий bounded ticket

После двух неудачных review cycles решение не переписывается за студента: совместная диагностика и дробление задачи.

Лестница допуска

Доступ растёт
только вместе
с доказательствами

Даже после курса студенту не нужны production secrets, ручная запись в production DB или самостоятельный emergency deploy.

  1. A0
    Учебный repoLocal + synthetic data
  2. A1
    Read-only codeПосле checkpoint 01
  3. A2
    Mirrored ticketsBranch + local environment
  4. A3
    Green tasksMerge/deploy делает Johan
  5. A4
    Staging под контролемПосле checkpoint 05
  6. A5
    Отдельное решениеТолько после курса
05 / Финальный проект

WorkHub.
Сервис, который
умеет ломаться правильно.

Проекты, задачи, комментарии и уведомления. Не pet-project для скриншота, а стенд для request flow, отказов зависимостей и осмысленного recovery.

  • JWT access/refresh + roles/policies
  • PostgreSQL + EF Core migrations
  • Redis cache-aside с degradation
  • RabbitMQ + retry/DLQ/outbox
  • SignalR groups + authorization
  • Tests, Compose, CI, logs, runbook
Курс завершён, когда20/24 PR
Сданы6/6 checks
Финал≥15/18
Без AI1 bug fixed