Skip to content

Repository files navigation

.NET Tutorial — от Junior до Senior

Статический учебный сайт по .NET: 176 тем в 13 разделах — от основ C# до system design. У каждой темы отдельная страница с подробным разбором, диаграммами, примерами кода на C#, типичными ошибками и вопросами «на засыпку», которые задают на собеседованиях.

Уровень Тем О чём
Junior 63 Платформа .NET, типы, строки, ООП, исключения, коллекции, LINQ, HTTP/REST, SQL, основы EF Core, Git
Middle 76 async/await, GC, DI, EF Core, индексы и транзакции, архитектурные паттерны, очереди, тестирование, Docker, наблюдаемость, безопасность
Senior 37 Внутренности runtime, производительность, распределённые системы, system design, надёжность, архитектурные решения, лидерство

Откройте index.html в браузере — сайт работает без сервера (в том числе с file://) и без внешних зависимостей.

Возможности

  • Отдельная страница на каждый вопрос со структурой: «Коротко» (ответ на 30 секунд) → подробный разбор → подводные камни → вопросы на засыпку → итог.
  • Диаграммы Mermaid, заранее отрисованные в SVG (светлая и тёмная темы), — страницы не грузят Mermaid в браузере.
  • Поиск по всем вопросам и тегам (клавиша /).
  • Треки по уровням (levels/junior.html, middle.html, senior.html): все темы уровня по разделам, с прогрессом.
  • Фильтр по уровню на странице каждого раздела.
  • Прогресс изучения: отметки «изучено» по темам, разделам и уровням (хранятся в localStorage браузера).
  • Тренажёр-карточки (trainer.html): случайный вопрос выбранных уровней и разделов → вспомнить ответ → проверить себя.
  • Светлая и тёмная темы, оглавление страницы, навигация «предыдущий / следующий», адаптивная вёрстка для телефона.

Разделы

№ Раздел Тем Junior Middle Senior
1 Основы C# и .NET 17 17 — —
2 C# и .NET углублённо 25 7 11 7
3 ASP.NET Core 19 9 10 —
4 Entity Framework Core 14 6 5 3
5 Базы данных и SQL 17 5 7 5
6 Архитектура и паттерны 17 3 11 3
7 System Design и распределённые системы 12 — — 12
8 Тестирование 10 5 4 1
9 Очереди и асинхронная обработка 9 4 5 —
10 Производительность и диагностика 10 — 7 3
11 DevOps и инфраструктура 10 2 8 —
12 Безопасность 8 1 7 —
13 Работа в команде и процессы 8 4 1 3

Структура репозитория

content/                 исходники в Markdown (редактировать здесь)
  01-csharp-basics/
    _category.md         название, иконка, цвет и описание раздела
    01-...md             вопрос: front matter + текст
assets/                  стили, скрипты, индекс поиска
scripts/build.mjs        генератор сайта
scripts/check.mjs        проверка собранных страниц в браузере
index.html, trainer.html, topics/, levels/   собранный сайт (генерируется)

Сборка

Нужны Node.js 20+ и Chromium для Playwright (используется для отрисовки диаграмм в SVG).

npm install
npx playwright install chromium   # если браузер ещё не установлен
npm run build                     # content/ → index.html, trainer.html, topics/, levels/
npm run check                     # ошибки в консоли и горизонтальная прокрутка на 390px и 1280px
npm run serve                     # локальный сервер на http://localhost:8080 (необязательно)

Отрисованные диаграммы кэшируются в .cache/mermaid, поэтому повторная сборка занимает секунды. Сборка завершается с ошибкой при синтаксической ошибке в диаграмме или битой внутренней ссылке и предупреждает о слишком широких диаграммах.

Как добавить вопрос

Создайте файл content/<раздел>/NN-slug.md (номер задаёт порядок, slug — адрес страницы):

---
title: "Чем Task отличается от ValueTask?"
level: middle            # junior | middle | senior
tags: [async, task, valuetask]
---

:::tldr
- Краткий ответ в 3–5 пунктах (обязательный блок).
:::

## Подробный разбор

```mermaid Подпись под диаграммой
flowchart LR
    A["Запрос"] --> B["Ответ"]:::good
```

```csharp Подпись к примеру кода
var x = await GetAsync();
```

:::warning Подводный камень
Текст предупреждения.
:::

## Вопросы на засыпку

:::qa Вопрос интервьюера?
Скрытый ответ, раскрывается по клику.
:::

## Итог

Резюме в одном абзаце.

Доступные блоки: :::tldr, :::tip, :::note, :::warning, :::example, :::qa, :::compare. В диаграммах flowchart доступны классы оформления good, bad, warn, accent, muted.

Releases

Packages

Contributors

Languages