Learning Platform
Урок 01.01 · 8 мин
Начальный
Course overviewTarget audienceLearning outcomes
SQL: с чего начинается карьера DE Роль Data Engineer: что это за профессия

Кому этот курс

Этот курс — точка входа в 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-уровень. Сначала освойте основу.
Python Middle: что будет после этого курса

Что вы получите к концу курса

К финальному уроку у вас на руках будет работающий end-to-end ETL-pipeline, который:

  1. Дёргает публичный REST API с pagination и retry-логикой.
  2. Парсит ответы, валидирует через Pydantic.
  3. Складывает сырой JSON в Parquet-файлы, партиционированные по дате.
  4. Загружает обработанные данные в PostgreSQL идемпотентно (с upsert по watermark).
  5. Покрыт 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.
Airflow: оркестратор для ваших ETL-пайплайнов

Чем курс отличается

Многие курсы по 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-группа курса
Обсуждение, вопросы, предложения

Telegram-канал

Подписывайтесь, чтобы узнавать об обновлениях и новых курсах:

@levoely_channel
Новости, обновления, новые курсы

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

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Какое ключевое отличие подхода этого курса от типичного LeetCode-туториала?

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

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

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

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