Маршрут .NET-разработчика от Junior к Senior
Ниже — порядок прохождения материалов энциклопедии от первого dotnet run до проектирования сервисов. Сроки ориентировочные при 10–15 часах в неделю.
Уровни в IT (кратко)
- Junior — пишет фичи по задаче, знает синтаксис, базовый веб или консоль, нуждается в ревью архитектуры.
- Middle — ведёт фичу end-to-end, настраивает API, БД, тесты, деплой в типичном стеке.
- Senior — проектирует модули и системы, диагностирует производительность, выбирает компромиссы.
Стартовые точки раздела — C# — о разделе, Платформа .NET — о разделе. Дополнительные deep-dive на русском — NET-Mastery-Hub.
Как пользоваться маршрутом
- Закройте одну ветку "первая программа" (консоль, затем веб или EF). Переключение между стеками до рабочего примера только запутывает.
- После каждого блока сделайте мини-проект (CRUD API, консоль с БД, набор тестов).
- Перед собеседованием пройдите вопросы на собеседование, чек-лист C#, чек-лист .NET.
Уровень 0. Общая база (1–2 недели)
| Шаг | Материал | Что получите |
|---|---|---|
| 1 | Что такое код | Понимание компиляции, байт-кода, выполнения |
| 2 | Платформа .NET | CLR, сборки, публикация |
| 3 | Visual Studio, первая программа | IDE и первый запуск |
| 4 | Версии C# и .NET | LTS, STS, соответствие инструментов |
Термины уровня 0
- CLR (Common Language Runtime) — среда выполнения .NET, которая запускает скомпилированный код.
- Сборка — скомпилированный модуль (
.dllили.exe). Подробнее — сборка и развёртывание. - LTS (Long Term Support) — версия .NET с длительной поддержкой; для продакшена обычно выбирают её.
Junior. Язык и платформа (2–4 месяца)
На этом этапе вы пишете консольные и простые веб-приложения, разбираетесь в типах, коллекциях, исключениях и базовом HTTP.
Синтаксис и основы
- Синтаксис и пунктуация
- Переменные, типы и приведения
- Пространства имён, управляющие конструкции, ветвления
Практика — калькулятор, разбор строки по словам.
Типы и память
Практика — явная работа с int?, разбор boxing в типах данных.
ООП и делегаты
Теория ООП — раздел "ООП".
Практика — простая модель предметной области (заказ, пользователь, товар).
Коллекции и LINQ
LINQ (Language Integrated Query) — запросы к коллекциям и БД прямо в C#.
Практика — отчёт из списка объектов (фильтр, группировка, сортировка).
Исключения
Теория — исключения в архитектуре выполнения.
Данные
Практика — CRUD с SQLite, одна миграция.
Веб
REST API — стиль, где ресурсы доступны по URL, а действия задаются HTTP-методами (GET, POST и т.д.).
Практика — API "заметки" с хранением в памяти или БД.
Тесты и отладка
Практика — 3–5 юнит-тестов на сервис или валидатор.
Критерий перехода на Middle
- Самостоятельно поднять Web API, EF, миграции и 5–10 юнит-тестов.
- Объяснить разницу между
classиstruct. - Объяснить
async/awaitна примере HTTP-запроса. - Назвать жизненный цикл DI (Dependency Injection) и почему
DbContextрегистрируют какScoped— внедрение зависимостей.
Middle. Навыки продакшена (4–8 месяцев)
Вы уверенно ведёте фичу в ASP.NET Core, работаете с БД, конфигурацией, безопасностью и распространёнными библиотеками.
ASP.NET Core
- ASP.NET — фреймворк
- Minimal API и OpenAPI
- Identity — JWT и cookie
- FluentValidation, Polly и rate limiting
Entity Framework
- EF Core — продвинутое (N+1, bulk, миграции без простоя)
Асинхронность
Теория потоков — процессы и потоки.
Конфигурация и DI
Архитектура приложения
CQRS (Command Query Responsibility Segregation) — разделение команд (изменение) и запросов (чтение). В учебных проектах часто применяют упрощённый вариант через MediatR.
Деплой и SQL
Выбор стека под задачу
Критерий перехода на Senior
- Спроектировать модуль с явными границами слоёв.
- Найти и устранить проблему N+1 в EF.
- Настроить JWT и health checks.
- Описать цепочку middleware в ASP.NET — фреймворк ASP.NET.
Senior. Runtime, архитектура, масштаб
Постоянное углубление: проектирование систем, диагностика производительности, архитектурные решения.
| Тема | Материалы |
|---|---|
| CLR и память | Архитектура .NET, производительность, справочник C# (Span, pooling) |
| Native AOT | Native AOT |
| Распределённые системы | Интеграция, микросервисы |
| DDD и паттерны | Доменная модель, паттерны проектирования |
| Наблюдаемость | Платформа .NET — OpenTelemetry |
| AI в .NET | Semantic Kernel |
| Real-time | SignalR |
| Собеседование | 474, System Design |
Спринт к собеседованию (7–14 дней)
Согласовано с планом в 474.
| День | Фокус |
|---|---|
| 1 | Типы, память, GC, исключения |
| 2 | Коллекции, LINQ, generics |
| 3 | async/await, ThreadPool |
| 4 | ASP.NET, middleware, DI |
| 5 | EF, SQL, транзакции |
| 6 | Тесты, Docker, безопасность |
| 7 | Проговаривание ответов, поведенческие вопросы |
Куда идти дальше
Частые ошибки
- Чтение без кода — на каждый блок одна рабочая программа.
- Микросервисы на старте — сначала монолит с Clean Architecture; дробление — когда появятся измеримые причины (микросервисы).
- Справочник вместо маршрута — 471 и 472 для поиска синтаксиса, эта статья — для порядка тем.
- Только теория — Lab, pet-проект в портфолио.
Краткая шпаргалка
| Уровень | Минимум на выходе |
|---|---|
| Junior | Консоль + API + EF + тесты |
| Middle | Auth, валидация, SQL, деплой |
| Senior | Архитектура, perf, распределённые системы |
См. также
- Выбор архитектуры под сценарий
- Сравнение C# и Java
- NET-Mastery-Hub — async internals, performance, interview prep