Главная/О курсе/Урок

Варианты учебного расписания

О чём этот файл

Три плана прохождения курса с понедельной разбивкой, контрольными точками и сроками проектов. Выберите один до начала обучения и придерживайтесь его: нерегулярные занятия по этому материалу работают плохо — слишком многое приходится восстанавливать в памяти.


Два бюджета времени

Прежде чем выбирать план, разберитесь с арифметикой. У курса есть два разных объёма.

БюджетЧто входитЧасов
Обязательный минимумВсе уроки, обязательные упражнения (отмечены как «обязательное» в exercises.md), quizzes, checkpoints, проекты 1 и 2≈ 84 ч
Полная программаТо же плюс все дополнительные упражнения, задания повышенной сложности, проекты 3 и 4, debugging challenges, итоговый экзамен≈ 174 ч

Расписания ниже рассчитаны на обязательный минимум. Полная программа достигается либо продлением плана (раздел «Завершение»), либо параллельным применением материала в рабочих задачах — что обычно эффективнее.

Оценки времени по разделам — в карте курса.


Сравнение вариантов

A. ИнтенсивныйB. СтандартныйC. Спокойный
Длительность4 недели8 недель12 недель
Нагрузка2–3 ч в день1–1.5 ч в день4–5 ч в неделю
Бюджет≈ 84 ч≈ 84 ч≈ 60 ч
ОхватРазделы 00–16, 18, 19 + проекты 1–2То жеРазделы 00–11, 13 + проекты 1–2
Занятий в неделю76–72–3 по 2 ч
Кому подходитЕсть выделенное время: отпуск, перерыв между проектами, обучение на работеОбучение параллельно с основной работой — рекомендуемый по умолчаниюНерегулярный график, приоритет на закрепление
Главный рискПерегрузка: материал читается, но не усваиваетсяПотеря темпа на 4–5 неделеЗабывание материала между занятиями

Варианты A и B имеют одинаковый бюджет и охват и различаются только плотностью: A — 3 часа в день четыре недели, B — 1.5 часа в день восемь недель. Выбирайте по тому, что реалистичнее для вашего графика, а не по амбициям.


Вариант A. Интенсивный — 4 недели

Нагрузка: 2–3 часа в день, 7 дней в неделю (≈ 21 ч в неделю).

Предупреждение. Этот темп работает только при полной концентрации. Если после трёх дней вы обнаруживаете, что читаете, но не выполняете команды — переходите на вариант B. Прочитанный и не выполненный материал не даёт навыка.

Неделя 1. Фундамент

ДеньМатериалЧасы
100. Обзор курса целиком, 01. Среда: уроки 01–033
201. Среда: уроки 04–06 + exercises.md3
302. Основы: уроки 01–043
402. Основы: уроки 05–07 + exercises.md3
503. Images: уроки 01–05 + exercises.md3
604. Lifecycle: уроки 01–06 + exercises.md4
7Quizzes 01–04, Checkpoint 12

Практика недели: установка Docker, первый container, сравнение PID на host и в container, исследование namespaces и cgroups, анализ image через docker history, перенос image через save/load, тест restart policy, проверка exit codes.

Контрольная точка: Checkpoint 1 — запустить долгоживущий container, корректно остановить, объяснить exit code, показать namespaces процесса на host.

Ожидаемый результат: учащийся понимает, что container — это процесс, и умеет управлять им и его образом.

Неделя 2. Сборка и Python

ДеньМатериалЧасы
805. Dockerfile: уроки 01–043
905. Dockerfile: уроки 05–073
1005. Dockerfile: уроки 08–09 + exercises.md3
1106. Python: уроки 01–043
1206. Python: уроки 05–083
1306. Python: уроки 09–13 + exercises.md4
14Проект 1. Python CLI3

Практика недели: намеренная поломка и починка build cache, multi-stage build со сравнением размеров, сборка образов для CLI, Flask и FastAPI, настройка non-root user, проверка graceful shutdown.

Контрольная точка: Проект 1 сдан по CHECKLIST.md.

Ожидаемый результат: учащийся пишет Dockerfile для Python-приложения самостоятельно и объясняет каждую строку.

Неделя 3. Состояние, сеть, Compose

ДеньМатериалЧасы
1507. Storage: уроки 01–033
1607. Storage: уроки 04–06 + exercises.md3
1708. Networking: уроки 01–033
1808. Networking: уроки 04–06 + exercises.md3
1909. Compose: уроки 01–043
2009. Compose: уроки 05–07 + exercises.md3
21Quizzes 05–09, Checkpoint 23

Практика недели: воспроизведение проблемы UID/GID и её решение без chmod 777, backup и restore volume, связывание двух containers, диагностика ошибки с localhost, stack из четырёх сервисов с healthchecks.

Контрольная точка: Checkpoint 2 — поднять stack, где приложение дожидается готовности базы, и доказать это логами.

Ожидаемый результат: учащийся проектирует многокомпонентную систему, а не отдельный container.

Неделя 4. Эксплуатация и доставка

ДеньМатериалЧасы
2210. Development workflow целиком3
23Проект 2. FastAPI service3
24Проект 2 + 11. Production: уроки 01–033
2511. Production: уроки 04–06, 12. Security: уроки 01–033
2612. Security: уроки 04–07, 13. Observability: уроки 01–033
2713. Observability: уроки 04–06, 14. Registry целиком3
2815. Testing, 16. CI/CD, 18, 19 — обзорно3

Практика недели: production-ready образ с non-root и read-only filesystem, запуск с resource limits, проверка graceful shutdown, локальный registry, integration test с PostgreSQL, pipeline в GitHub Actions.

Контрольная точка: Checkpoint 3 и Проект 2 сдан.

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

Не вошло в 4 недели: 17. Docker internals, debugging challenges, проекты 3 и 4, итоговый экзамен. См. раздел «Завершение».


Вариант B. Стандартный — 8 недель

Нагрузка: 1–1.5 часа в день, 6–7 дней в неделю (≈ 10.5 ч в неделю). Рекомендуемый вариант по умолчанию.

Охват совпадает с вариантом A. Каждая неделя A разбита на две.

НеделяМатериалПрактикаКонтрольная точкаРезультат недели
100 целиком, 01. Среда целикомУстановка Docker, hello-world, systemctl, проверка socketQuiz 01Рабочая среда, понимание рисков группы docker
202. Основы целикомСравнение PID на host и в container, lsns, чтение cgroupQuiz 02Container как процесс — не метафора, а проверяемый факт
303. Images целикомdocker history, сравнение tag и digest, save/loadQuiz 03Умение объяснить размер образа
404. Lifecycle целикомexec, stop против kill, exit codes, restart policyQuiz 04, Checkpoint 1Управление процессом в container
505. Dockerfile целикомПоломка и починка cache, multi-stage, сравнение размеровQuiz 05Качественный Dockerfile
606. Python, уроки 01–07Base image, dependency locking, non-root, loggingPython-специфика образов
706. Python, уроки 08–13 + exercises.mdCLI, Flask, FastAPI, worker, pytest в containerQuiz 06Контейнеризация любого Python-приложения
8Проект 1. Python CLIПолный проектCHECKLISTПервый самостоятельный результат

Промежуточный итог после 8 недель — это ровно половина плана. Продолжение:

НеделяМатериалПрактикаКонтрольная точкаРезультат недели
907. Storage целикомUID/GID, backup volume, read-only rootfsQuiz 07Управление состоянием
1008. Networking целикомUser-defined network, DNS, диагностика localhostQuiz 08Связывание сервисов
1109. Compose целикомStack FastAPI + PostgreSQL + Redis + workerQuiz 09, Checkpoint 2Многокомпонентная система
1210. Development workflow целикомHot reload, миграции, MakefileQuiz 10Рабочее окружение
13Проект 2. FastAPI serviceПолный проектCHECKLISTProduction-ориентированный сервис
1411. Production, 12. SecurityHardening, resource limits, поиск опасных настроекQuizzes 11–12, Checkpoint 3Безопасный production-образ
1513. Observability, 14. RegistryДиагностика по таблице, локальный registryQuizzes 13–14Диагностика и публикация
1615. Testing, 16. CI/CD, 18, 19Integration tests, pipeline GitHub ActionsQuizzes 15–16Автоматическая доставка

Уточнение по срокам. «8 недель» в этом плане означает 8 недель до первого самостоятельного проекта и 16 недель до полного охвата при нагрузке 1–1.5 ч в день. Если нужен именно 8-недельный полный цикл, увеличьте нагрузку до 2–2.5 ч в день или выберите вариант A.


Вариант C. Спокойный — 12 недель

Нагрузка: 4–5 часов в неделю, 2–3 занятия по 1.5–2 часа (≈ 60 ч всего).

Охват сокращён осознанно: вместо поверхностного прохода по всем 19 разделам план даёт прочное ядро. Разделы 12, 14–19 выносятся в «Завершение».

НеделяМатериалЧасыПрактикаРезультат недели
100, 01. Среда: уроки 01–045Установка Docker, первый containerDocker установлен и проверен
201: уроки 05–06 + exercises.md, 02. Основы: уроки 01–025Socket, rootless, сравнение с VMПонимание модели изоляции
302. Основы: уроки 03–07 + exercises.md5Namespaces, cgroups, capabilitiesContainer как процесс
403. Images целиком5history, digests, save/loadАнализ образов
504. Lifecycle целиком5Signals, exit codes, PID 1Checkpoint 1
605. Dockerfile: уроки 01–055Build context, CMD/ENTRYPOINT, cacheОсновы сборки
705. Dockerfile: уроки 06–09 + exercises.md5BuildKit, multi-stage, healthcheckОптимизированный образ
806. Python: уроки 01–065Base image, зависимости, loggingPython-специфика
906. Python: уроки 07–13 + exercises.md5Non-root, FastAPI, workersКонтейнеризация приложения
10Проект 1, 07. Storage: уроки 01–035Проект + volumesПервый проект сдан
1107. Storage: уроки 04–06, 08. Networking: уроки 01–035UID/GID, port publishingСостояние и сеть
1208. Networking: уроки 04–06, 09. Compose: уроки 01–045DNS, диагностика, первый stackCheckpoint 2

После 12 недель: учащийся уверенно контейнеризирует Python-приложение и описывает простой stack. Для полного охвата продолжите ещё 6–8 недель по тому же темпу:


Завершение курса (после любого плана)

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

ЭтапМатериалЧасыЗачем
1Проект 3. Multi-service stack12Единственное место, где проверяется проектирование системы целиком
213. Observability — полностью, если проходили обзорно7Нужно до debugging challenges
3Debugging challenges 1–2010Главный тренажёр диагностики. Не пропускайте
417. Docker internals7Закрывает вопросы «а почему именно так»
5Проект 4. Production pipeline12Итоговая интеграция всего материала
6Итоговый теоретический тест2Проверка понимания механизмов
7Итоговый практический экзамен6Контейнеризация незнакомого приложения с нуля
Итого56 ч

Как не сорвать план

Практические рекомендации, проверенные на курсах такого объёма.

  1. Фиксируйте время, а не объём. «Занимаюсь час» выполнимо; «прохожу раздел за вечер» — нет, разделы разного размера.
  2. Начинайте занятие с терминала, а не с текста. Откройте прошлое упражнение, повторите две-три команды — это восстанавливает контекст быстрее перечитывания.
  3. Не пропускайте exercises.md. Разница между «прочитал про namespaces» и «увидел разные PID для одного процесса» — это разница между L1 и L3 в карте компетенций.
  4. Чистите за собой. После каждого занятия удаляйте созданные containers и volumes по cleanup checklist. Иначе через две недели диск закончится, и вы будете отлаживать это вместо обучения.
  5. Ведите журнал ошибок. Каждая непонятная ошибка, которую вы победили, — заготовка для раздела 13. Записывайте симптом, причину и исправление.
  6. Пропустив неделю, не догоняйте. Сдвиньте план. Попытка пройти двойной объём за неделю приводит к чтению без выполнения.
  7. Применяйте на рабочем проекте. Самый быстрый способ закрепить материал — переписать Dockerfile реального сервиса после раздела 06.
  8. Отмечайте прогресс в таблице в MAIN.md. Видимый прогресс — единственная защита от потери мотивации на 5–6 неделе.

Навигация

← Предыдущий материал
Вернуться к главному оглавлению
Следующий материал → Система оценивания

Markdown на GitHub ↗