Кому этот курс
Этот курс — точка входа в Python для будущего Junior Data Engineer. Он не учит «программированию вообще» — он учит писать тот Python, который реально пишут на работе джуны: ETL-скрипты, парсеры данных, клиенты к REST API, заливщики данных в PostgreSQL. Всё, что после курса попадёт в ваш первый pull request.
Курс предполагает, что вы:
- Не писали раньше на Python или писали мало и хотите систему.
- Никогда не программировал — это нормально. Модуль 3 (Python-ядро) объясняет переменные, условия, циклы и функции с нуля, на аналогиях. Если уже знаешь другой язык — пройдёшь эти темы быстрее.
- Параллельно изучаете SQL — без него Data Engineer не существует. Если ещё нет, см. SQL 01 в каталоге.
Курс не для тех, кто хочет:
- Делать веб-сайты (Flask/Django/FastAPI) — это другой курс.
- Изучать ML/Data Science (numpy/scikit-learn/PyTorch) — нам это не нужно.
- Копать в внутренности CPython, GIL, байт-код, метаклассы — это Python 02, Middle-уровень. Сначала освойте основу.
Что вы получите к концу курса
К финальному уроку у вас на руках будет работающий end-to-end ETL-pipeline, который:
- Дёргает публичный REST API с pagination и retry-логикой.
- Парсит ответы, валидирует через Pydantic.
- Складывает сырой JSON в Parquet-файлы, партиционированные по дате.
- Загружает обработанные данные в PostgreSQL идемпотентно (с upsert по watermark).
- Покрыт pytest-тестами и упакован в Python-пакет, готовый к запуску из Airflow.
И главное — вы будете понимать, почему каждая строчка написана так, а не иначе.
Конкретные навыки, которые вы заберёте с собой:
- Настроить рабочее окружение современным способом —
uvвместо устаревшихpyenv+pip+virtualenv. - Писать идиоматичный Python 3.13 — type hints, dataclasses, генераторы, контекст-менеджеры, декораторы.
- Парсить CSV (включая «грязные» legacy-файлы), JSON, JSONL, YAML, TOML, Parquet.
- Ходить в REST API: pagination, retries, rate limiting, обработка ошибок.
- Работать с PostgreSQL через psycopg3 и SQLAlchemy Core.
- Использовать pandas для табличной обработки данных.
- Писать тесты на pytest, мокать внешние зависимости.
- Настраивать CI/CD с lint + type-check + tests.
Чем курс отличается
Многие курсы по Python учат языку «как языку программирования вообще», прыгая по темам от классов к async-у к декораторам без причины. Здесь иначе: каждая тема привязана к конкретной DE-задаче. Вы не учите генераторы абстрактно — вы учитесь читать гигабайтный CSV без OOM. Не учите декораторы для «красивого кода» — а пишете @retry для нестабильного API. Не учите Pydantic для веба — а валидируете схему JSON-ответа третьей стороны.
Второе отличие — много практики. В каждом уроке 2-3 встроенных упражнения. В каждом модуле — отдельный набор микро-задач. В конце курса — три полноценные лабораторные с docker-compose и автотестами. Junior учится только через код, который пишет своими руками.
Третье — актуальность 2026 года. Современный стек: uv вместо pip/poetry, ruff вместо black+isort+flake8, pydantic v2 (Rust-core), psycopg3 для нового кода, polars как обзор для больших данных. Никаких рецептов из 2018 года.
Готовы? В следующем уроке — что нужно знать заранее, и кому из вас можно пропустить часть модулей.
Как создавался курс
Курс создан при участии Claude (Anthropic) как соавтора: ИИ помогал писать материалы, структурировать темы, генерировать примеры кода и диаграммы. Каждая глава проходила ручную сверку с первоисточниками — спецификациями, документацией, исходным кодом рассматриваемых систем — но гарантировать 100% точность невозможно.
Если вы заметили неточность, опечатку или хотите предложить улучшение — напишите в Telegram-группу курса. Это самый ценный вклад в курс, который вы можете сделать.
Углублённое изучение с Claude
Курс рассчитан на самостоятельное изучение, но любая теория быстрее ложится, если задавать вопросы. Рекомендую держать рядом браузерное расширение Claude (claude.com/download) — оно работает с контентом открытой страницы: выделяете кусок урока и спрашиваете напрямую.
Сценарии, которые особенно хорошо работают для углублённого погружения:
- «Объясни проще» / «дай ещё один пример» — когда формулировка из урока не дошла с первого раза.
- «Покажи, как это устроено на уровне кода / железа» — когда хочется спуститься на слой ниже того, что даёт урок.
- «Как это связано с [другая тема курса]» — когда нужно увязать концепцию с тем, что было раньше.
- «У меня в проекте стек X — как применить?» — когда хочется примерить материал на свой реальный кейс.
Это не замена курсу, а способ ускорить интеграцию материала в вашу картину мира. Если что-то из ответов Claude расходится с уроком — присылайте в Telegram-группу, курс будет уточнён.
Нашли ошибку?
Если заметили неточность, опечатку или хотите предложить улучшение:
Telegram-канал
Подписывайтесь, чтобы узнавать об обновлениях и новых курсах: