Learning Platform
Глоссарий Troubleshooting
Урок 01.03 · 8 мин
Продвинутый
КурсПрогрессКвизы

Прогресс, квизы и labs

Senior-курс — это не «прочитал и хорошо». Это «прочитал, сделал quiz, упёрся в вопрос, вернулся к уроку, понял глубже, сделал lab, разобрался с реальной проблемой». Цикл повторяется ~70 раз — раз на каждый урок. Quiz и labs — это не отчётность, это инструмент проверки понимания.


Структура контроля знаний

Цикл проверки знаний на каждом модуле
MDX-урок2000-3500 слов senior-tone. Python-сниппеты, ссылки на dbt-core source, диаграммы, callout-блоки.
Quiz урока5-7 вопросов: 3-5 multiple-choice + 1-2 true-false. Bloom levels: applied и analytical (conceptual только для теоретических основ).
Module examПосле ключевых модулей (01, 03, 07, 09): 6 deep вопросов. Passing threshold 70%. Можно пересдавать.
Lab (где применимо)LAB-01 custom materialization, LAB-02 adapter from scratch, LAB-03 programmatic, LAB-04 optimization case. 4-8 часов каждая.

Bloom levels вопросов

Senior-курс не тренирует зубрилку — этим занимается dbt I и docs. Поэтому factual и conceptual вопросы в курсе сведены к минимуму. Преобладают:

  • Applied (applied) — «как применить знание в реальной ситуации». Пример: «Вы пишете custom materialization. Где именно в lifecycle вызвать adapter.commit() чтобы не словить partial transaction?»
  • Analytical (analytical) — «как разобраться в сложной ситуации, найти root cause». Пример: «Partial parse инвалидируется при каждом запуске, хотя файлы не меняются. Какие 5 факторов могли это вызвать, и как продебажить?»

Conceptual (conceptual) — только когда речь идёт о фундаментальной модели (например, «что такое execute=False фаза в Jinja» — это conceptual, потому что без понимания концепции дальше идти нельзя).

NOTE

Все вопросы — это multiple-choice (a/b/c/d) или true-false. Никаких open-ended «опишите своими словами». Это решение — открытые вопросы senior-уровня требуют ручной проверки экспертом, что несовместимо с self-paced форматом. Quiz даёт быстрый сигнал «понял/нет», глубокая рефлексия — это lab.


Как читать explanations

Каждый ответ в quiz сопровождается explanation — 6-9 предложений с глубоким разбором. Это не «правильный ответ — b». Это:

  1. Почему b правильно. Конкретный механизм, ссылка на dbt-core, цитата из docs (где применимо).
  2. Почему a/c/d неправильно. Не просто «это не так», а «вот этот вариант звучит правдоподобно, но ломается в случае X».
  3. Edge case или production gotcha. Где правильный ответ всё равно может дать вам проблему — мы говорим.
  4. Связь с другими уроками курса. Где видели эту тему ещё или где увидите.

Если explanation для вас «вода» — quiz слишком лёгкий, посмотрите следующий модуль. Если explanation вызывает три новых вопроса — это нормально для senior-курса, разбирайте каждый.


Module exams

Не каждый модуль имеет exam. Только четыре модуля курса:

  • 01 — Architecture overview — exam после фундаментального блока «как устроен dbt-core»
  • 03 — Jinja contexts — exam после контекстов (самая частая senior-проблема)
  • 07 — Custom materializations — exam перед adapter API
  • 09 — Adapter API deep — exam после adapter блока

Exam — 6 вопросов в стиле «scenario engineering». Вы получаете описание production situation, выбираете лучший подход из 4 вариантов. Большинство exam-вопросов уровня analytical — нужно перебрать факторы, исключить ложные пути, обосновать выбор.

Passing threshold — 70% (то есть 5/6). Можно пересдавать сколько угодно — это self-paced курс, не сертификация. Но если exam не сдаётся — это сигнал вернуться к урокам модуля и labs, не «угадывать с третьей попытки».


Labs

Лабы — главный артефакт курса. После labs у вас будет:

  • LAB-01 — Custom materialization audit_log. Пишете materialization, которая логирует каждый run в отдельную таблицу _audit_log (что выполнено, когда, кем, сколько строк). Реальное production-применение. 4-6 часов.
  • LAB-02 — Adapter dbt-pglite from scratch. Пишете полноценный adapter для pglite (Postgres-compatible WASM SQLite). Cookiecutter scaffold, Credentials, ConnectionManager, Relation, required macros, dbt-tests-adapter suite (≥50% tests passing). 6-8 часов.
  • LAB-03 — Programmatic dbtRunner в Dagster. Embeds dbt в Dagster orchestrator. Pre-loaded Manifest, thread-safe wrapper, custom event hooks для метрик. 4-6 часов.
  • LAB-04 — Large-project optimization case. Берёте симулированный проект на 500+ моделей, профилируете, применяете partial parse tuning, threads tuning, defer + state:modified, microbatch parallel. Замеряете до/после. 4-6 часов.
TIP

Лабы можно делать в произвольном порядке после соответствующих модулей, но если время ограничено — приоритет LAB-02 (adapter from scratch). Это самый ценный артефакт для CV и портфолио. И самая обнаживающая лаба — что вы реально поняли по adapter API, что нет.


Время и темп

75-80 часов курса. Реалистичный темп для senior, работающего full-time:

  • Aggressive: 5-6 часов в неделю × 13-14 недель = ~3 месяца
  • Sustainable: 3-4 часа в неделю × 20-25 недель = ~5 месяцев
  • Long-term: 2 часа в неделю × 35-40 недель = ~9 месяцев

Курс не теряет ценность через 9 месяцев — материал по internals меняется медленно (parsing pipeline в dbt стабилен с 1.5+, adapter API стабилен с 1.0+). Что устаревает быстрее — модули 12 (Fusion) и 13 (MetricFlow). В них специально отмечено «as of May 2026», проверяйте версии перед production-решениями.

WARNING

Не пытайтесь пройти курс за две недели. Senior-материал требует осадки — понятие parse vs execute фазы Jinja не уложится за один вечер. На каждый сложный модуль (01, 03, 07, 09) закладывайте 2-3 раза прочесть с интервалом в пару дней. Между чтениями — открыть source, поскроллить, спросить «а как это работает» на своих проектах.


Что считается «прошёл курс»

Не существует «свидетельства о прохождении» — это самостоятельный курс. Реальный маркер успеха:

  1. Можете объяснить за 5 минут, что происходит при dbt run от bash до результата в warehouse. На уровне «парсинг -> manifest -> compilation -> execution через task -> runner -> adapter». Без подглядывания.
  2. Готовы открыть PR в dbt-core или один из адаптеров. Уровень PR — не обязательно epic feature, но что-то осмысленное: bugfix, doc improvement, test coverage.
  3. Можете написать adapter из cookiecutter за выходные. Не обязательно полный, но scaffold с базовым SELECT и dbt debug — это 4-6 часов senior работы.
  4. Можете оптимизировать большой dbt-проект за неделю — собрать профиль, найти боттлнеки, применить tuning. С замерами до/после.

Если все четыре пункта — да, курс пройден на 100%. Если три — на 80%. Меньше — стоит вернуться к слабым местам.


Проверка знанийKnowledge check
Почему в этом курсе квизы преимущественно applied и analytical, а не conceptual?
ОтветAnswer
Потому что senior-уровень предполагает, что conceptual базис уже есть из дбт I и II. Что такое ref(), source, materialization, incremental, snapshot — это вопросы middle. Что такое 'parse phase Jinja' тоже скорее conceptual, но мы его трогаем только в context-уроках, где это необходимая основа для дальнейшего. Senior-уровень — это уже не 'что такое', а 'как применить' (applied) и 'как разобраться когда не работает' (analytical). Reality production-работы senior — это разбор инцидентов, оптимизация перфоманс, проектирование решений. Поэтому большинство вопросов курса формулируются как 'у вас вот такая ситуация, какой подход выберете и почему'. Это imитирует реальные ревью архитектурных решений в команде, не подготовку к сертификации с теоретическими вопросами.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 6. Где хранится прогресс прохождения курса?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3