Задачи, проекты, собеседования

Data Engineering через практику: от SQL-задач к проекту, который можно показать

Курсы и практикумы для Junior / Middle: SQL с автопроверкой, Python для данных и сквозной ETL-проект на Spark, Postgres, Airflow и BI, который можно разобрать на собеседовании.

4.9 / 5 на Stepik
2300+ студентов
старт DE 10 августа 2026
Медведь за рабочим местом с кодом и неоновыми элементами SQL
Выбор траектории

Сначала уровень, потом маршрут

Главная помогает выбрать следующий шаг: DE-практикум, SQL-линейку, Python для данных или короткую диагностику перед покупкой.

Главный маршрут Spark · Airflow · BI

Готов к DE-практикуму

Уверенно пишете SQL, понимаете базовый Python и готовы 6-8 часов в неделю собирать проект руками.

Пройти диагностику DE
SQL

Сначала добрать SQL

Для тех, у кого проседают JOIN, CTE, окна, даты и задачи в формате собеседований.

Смотреть SQL
PY

Сначала Python для данных

Для локальной обработки CSV, JSON, дат, дублей, кривых строк и маленьких batch-пайплайнов.

Смотреть Python
?

Не уверен в уровне

Быстрая диагностика покажет, готов ли DE-практикум сейчас и что добрать перед стартом.

Понять уровень
Главный продукт

DE-практикум: собрать пайплайн, который не стыдно показать

Практикум для Junior / Middle, которым нужен не пересказ документации, а проект руками: RAW, STG, CORE, MARTS, проверки качества, Airflow-запуск и BI-витрина.

Старт 10 августа 2026
Нагрузка 6-8 ч/нед
Стоимость 35 000 ₽
Вход диагностика
de_practicum.pipeline raw -> marts -> BI
01 RAW

сырые файлы, загрузка, структура проекта

02 STG

типы, очистка, контроль входных данных

03 CORE

DWH-слои, ключи, связи, проверки

04 MARTS

витрины, метрики, BI-результат

SQL

DWH-слои без магии

Понимаете, зачем нужны RAW, STG, CORE и MARTS, а не просто повторяете названия.

SP

Spark jobs на проекте

Запускаете обработку данных и видите, где ломаются типы, схемы и качество.

AF

Airflow как оркестратор

Собираете запуск пайплайна так, чтобы результат можно было воспроизвести.

BI

Витрина, которую видно

Финал не лежит в папке. Его можно открыть, показать и нормально объяснить.

Кому рано: если JOIN, CTE или базовый Python пока разваливаются, сначала лучше закрыть базу. Иначе практикум превратится в борьбу с синтаксисом.

Карта навыков

Что нужно Junior / Middle, чтобы не плавать в DE

Не всё надо учить одновременно. Достаточно увидеть 6 опор проекта и понять, где база уже держится, а где лучше добрать подготовку.

SQL база

SQL для данных

Достать, связать и проверить данные без угадайки.

JOIN CTE окна NULL
PY база

Python для обработки

Обработать файлы, даты, ошибки и кривые строки.

files dates Decimal batch
DWH модель

Слои хранилища

Понимать путь данных от сырья до витрины.

RAW STG CORE MARTS
SP объем

Spark jobs

Запустить обработку и понимать, что именно считает job.

schema actions cache shuffle
AF запуск

Airflow-процесс

Собрать запуск, который повторяется и переживает ошибки.

DAG deps retries schedule
DQ доверие

Качество и BI

Показать результат и объяснить, почему цифрам можно верить.

checks reconcile marts dashboard

Если одна из базовых опор проседает, это не провал. Это сигнал: лучше закрыть дырку до практикума, чем тащить ее в большой проект.

SQL-направление

SQL, который нужен для работы и собеседований

350+ задач с автопроверкой на Stepik: от первых JOIN до оконных функций, CTE и tricky-вопросов, которые любят на интервью.

3 SQL-курса
350+ задач
уровни Jun / Mid
interview_sql.sql accepted
with last_paid_order as (
  select
    user_id,
    order_id,
    paid_at,
    row_number() over (
      partition by user_id
      order by paid_at desc
    ) as rn
  from orders
  where status = 'paid'
)
select
  user_id,
  order_id,
  paid_at
from last_paid_order
where rn = 1;
Python-направление

Python для DE: данные, файлы и маленькие batch-пайплайны

Если базовый Python уже есть, но код рассыпается на CSV, JSON, датах, дублях и кривых строках, начните отсюда.

40 code-задач
10 уроков
финальный кейс
2500 ₽
batch_transform.py checks passed
from decimal import Decimal

def clean_row(row):
    amount = Decimal(row["amount"].replace(",", "."))

    if not row["order_id"] or amount <= 0:
        return None

    return {
        "order_id": row["order_id"].strip(),
        "event_date": row["event_ts"][:10],
        "amount": amount,
        "source": "csv_batch",
    }
01

Файлы и форматы

Path, CSV, JSON и локальная обработка входных данных без магии и лишних библиотек.

02

Типы и грязные строки

Даты, timezone offset, Decimal, пустые поля, дубли и rejected rows перед загрузкой.

03

Маленький пайплайн

В финале собираете связный кейс: прочитать, почистить, проверить и вернуть результат.

Траектория обучения

Минимум лекций, больше практики: от уровня к артефакту

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

SQL Python DE-практикум
learning.route artifact ready
01

Определить уровень

Тест или диагностика перед выбором продукта.

02

Взять минимум теории

Ровно то, что нужно для решения текущей задачи.

03

Решить руками

Запрос, Python-скрипт, DWH-слой, DAG или BI-витрина.

04

Проверить решение

Автопроверка, edge cases и обратная связь по результату.

05

Собрать артефакт

То, что можно открыть, показать и объяснить на работе или собеседовании.

SQL-запрос Python batch DWH-слои Airflow DAG BI-витрина

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

Доказательства

Профиль Stepik, отзывы и задачи, которые можно проверить

Здесь собраны проверяемые опоры: профиль автора, реальные цифры по курсам, короткие отзывы студентов и фрагменты задач из SQL-линейки.

13 публичных страниц Stepik
10 продуктов, DE-потоки вместе
3100+ записей на курсы и тесты
490+ задач и проверок
Дмитрий Кузьмин, профиль Stepik
Stepik profile

Кузьмин Дмитрий

Data Engineer, автор практических курсов по SQL, Python и Data Engineering.

Stepik Awards 2025 Номинант в категории "Лучшая система практических заданий".
middle_sql.sample auto checked
Задача 58

Рейтинг продаж по регионам

Построить рейтинг магазинов внутри каждого региона за 2024 год: продажи, выручка и место магазина с учетом равных значений.

SELECT
  s.region,
  s.store_name,
  COUNT(*) AS order_count,
  SUM(sa.amount) AS total_sales,
  RANK() OVER (
    PARTITION BY s.region
    ORDER BY SUM(sa.amount) DESC
  ) AS region_rank
FROM stores s
JOIN sales sa ON sa.store_id = s.store_id
WHERE sa.sale_date >= '2024-01-01'
  AND sa.sale_date < '2025-01-01'
GROUP BY s.region, s.store_name;
Junior SQL

"Курс построен так, чтобы можно было довести до автоматизма решение определенных видов задач."

курс 240980
Middle SQL

"Задания интересные и, что самое главное, бизнесовые."

курс 238112
Upper-Middle SQL

"Стал намного увереннее в написании запросов и логике их построения."

курс 241009
SQL-программа

"Задач очень много. Благодарен автору за контент, суперские задачи."

курс 251214
Middle

Рейтинг продаж по регионам

RANK, PARTITION BY, выручка по магазинам и аккуратная сортировка результата.

Interview trap

Опасный GROUP BY

Почему order_id может не соответствовать строке с максимальной датой.

Join trap

Размножение строк

Что происходит с суммой после соединения заказов со справочником тегов.

Автор

Я собираю обучение вокруг практики, проверок и собеседований

Работаю Data Engineer в крупном финтехе, разрабатываю курсы по SQL, Python и Data Engineering, проверяю задачи и помогаю готовиться к собеседованиям через практику.

собираю пайплайны разрабатываю задачи проверяю решения Stepik Awards 2025
author.method active
01

Собираю рабочий контекст

Беру задачи из среды, где важны пайплайны, витрины, проверки качества и понятные решения.

02

Разрабатываю задачи

JOIN, CTE, окна, NULL, даты, дубли и ситуации, которые всплывают на интервью.

03

Проверяю результат

Добавляю автопроверку, edge cases, разбор ошибок и понятный критерий готовности.

04

Помогаю выбрать маршрут

SQL и Python закрывают базу, DE-практикум собирает проектный результат.

FAQ

Частые вопросы перед выбором маршрута

Короткие ответы на вопросы, которые обычно решают, куда идти: в DE-практикум, в SQL-подготовку, в Python-курс или сначала на диагностику.

01 Я Junior. Мне не рано в DE-практикум?

Если уверенно пишете базовый SQL, понимаете Python на уровне функций, файлов и простых структур данных, готовы выделять 6-8 часов в неделю, можно идти на диагностику. Если база плавает, лучше сначала закрыть SQL или Python.

02 Что делать, если SQL слабый?

Идти в SQL-направление. Для DE особенно важны JOIN, GROUP BY, CTE, окна, даты, NULL и умение объяснить зерно результата. Слабый SQL в большом проекте быстро превращается в шум.

03 Нужен ли сильный Python?

Нужен рабочий минимум: функции, файлы, даты, типы, ошибки, CSV, JSON и простая batch-логика. Если код ломается на грязных строках и форматах, лучше начать с Python-курса для данных.

04 Потянет ли мой ноутбук Docker?

Для практикума нужен локальный стенд с Docker. Комфортнее работать на машине с 16 GB RAM и свободным местом под образы, но точные требования лучше проверить перед стартом на диагностике.

05 Сколько времени нужно в неделю?

Для DE-практикума ориентир 6-8 часов в неделю. SQL и Python можно проходить более гибко, но регулярность важнее длинных рывков раз в две недели.

06 Что будет после диагностики?

Вы получите понятный маршрут: идти в DE-практикум, добрать SQL, закрыть Python для данных или подождать следующего потока. Диагностика нужна, чтобы не покупать продукт наугад.

Следующий шаг

Начните с диагностики и выберите точный маршрут

Если цель - Data Engineering, диагностика быстро покажет входной уровень: идти в практикум сейчас, добрать SQL, подтянуть Python или дождаться следующего потока.

route.check next step
01

Проверить вход

SQL, Python, время на проект, готовность к локальному стенду.

02

Выбрать маршрут

DE-практикум, SQL-линейка, Python для данных или пауза до следующего набора.

03

Собрать результат

Задачи, проверка, проектный артефакт и материал для собеседований.

DE-практикум SQL Python диагностика