О роадмапе

Этот роадмап — конспект моих подходов к обучению Data Engineering.
Он подойдёт тем, кто хочет:

  • системно войти в профессию с нуля или близкого к нулю уровня;
  • закрыть пробелы в базе (SQL, Git, Python, DWH, Airflow, GreenPlum);
  • подготовиться к собеседованиям и первым рабочим задачам.

Роадмап можно проходить самостоятельно или вместе со мной в формате менторства.
Если хотите идти с поддержкой ментора — напишите в Telegram: @dementev_dev.

Оглавление

Рекомендуемый способ использования:

  • двигаться по разделам последовательно, не перепрыгивая через базу;
  • выполнять практику и домашки, а не только смотреть материалы;
  • возвращаться к разделам по мере появления реальных задач.

Основные знания

Git и базовые инструменты

База по Git

Что такое контроль версий, когда используется, ПОЧЕМУ и как мы в обучении будем использовать. Как создать репозиторий на GitHub, сохранять в нем изменения.

Основы Markdown

Домашки по остальным темам тренируемся делать в Git, там же пишем документацию.

Когда блок Git и базовые инструменты считаем пройденным:

  • вы уверенно создаёте репозиторий, коммитите изменения и отправляете их на GitHub;
  • имеете представление о работе с ветками: создание, переключение, что такое merge/PR и разруливание простых конфликтов;
  • оформляете базовую документацию в Markdown (README, заголовки, списки, ссылки, кодовые блоки).

SQL

База по SQL

Книга: PostgreSQL. Основы языка SQL - Глава 1 "Введение в базы данных и SQL" + ДЗ

Бесплатный тренажер: Интерактивный тренажер по SQL – Stepik
Целевой уровень знания SQL - Live кодинг на собесе. Проверяем на первом мок-интервью
СТЕ

Для дальнейшей тренировки и поддержания уровня можно использовать Database - LeetCode. Хорошая подборка задачек: SQL 50 - Study Plan - LeetCode

Повышение знаний SQL

Смотрим курс от Postgres Pro DEV1 Темы - от "Введение" до "SQL" включительно, "Управление доступом", "Резервное копирование". Для лучшего усваивания материала проделываем все примеры и домашние задания из конспектов лекция.
С темой "PL/pgSQL" можно ознакомиться обзорно.

Для развития навыков инженера будет полезно лабораторные работы делать не в виртуальной машине, а в docker контейнере. Предложенный (не обязательный) вариант - в каталоге postgres-bookings репозитория.

Для дальнейшего закрепления материала - читаем книгу PostgreSQL. Основы языка SQL

  • Глава 8 - Индексы + ДЗ
  • Глава 9 - Транзакции
  • Глава 10 - Повышение производительности + ДЗ

Вопросы оптимизации запросов хорошо описаны в курсе QPT от Postgres Pro. Полученные навыки применимы для работы в том числе с GreenPlum, и частично, другими БД. На момент написания, видеолекции были доступны только для старой версии Postgres 13, но ее вполне достаточно.

Моделирование данных

Понимание того, как устроены данные и зачем они нужны, — ключ к качественным ETL-процессам.
Мы кратко разбираем:

  • Основные подходы: нормализованные (3NF) vs денормализованные (звезда, снежинка)
  • Что такое staging, marts, слои raw / clean / business
  • Как проектировать таблицы под конкретные сценарии использования

Цель — не стать архитектором, а уметь читать и объяснять структуру данных, чтобы писать осмысленные запросы и трансформации.

Материалы (включая демо DWH-модель из этого репозитория):

Когда блок SQL считаем пройденным:

  • вы уверенно пишете запросы с JOIN, агрегатами, подзапросами и CTE;
  • можете объяснить простую модель данных (3NF/звезда) и прочитать схему DWH;
  • решаете типовые задачи уровня SQL live-coding без долгих пауз.

Python

Полезно, но дороговато и не обязательно: хорошее комбо SQL + Python — "Поколение Python": профи + ООП + SQL Stepik

Цель — уверенно решать простые задачи на Python в формате live-coding; дальше эти навыки пригодятся для создания DAG Airflow.

Когда блок Python считаем пройденным:

  • вы без подсказок пишете небольшие скрипты с циклами, функциями, обработкой ошибок и работой с коллекциями;
  • умеете читать и модифицировать чужой код, в том числе с использованием pandas и DataFrame;
  • уверенно проходите простой live-coding по Python для DE: прочитать CSV/JSON, отфильтровать, сгруппировать данные и посчитать агрегаты.
  • можете отвечать как на простые вопросы собеседований (циклы, списки, словари), так и продвинутые (итераторы, декораторы, управление памятью, базовые понятия ООП)

Технические навыки

Продвинутый Git

Целевой уровень знания - понимание процесса GitFlow. Как создать ветку, влить изменения в другие ветки. Понимание, зачем. На собесах обычно не спрашивают, но нужно в работе.

Docker

Основное предназначение для нас - учебные стенды, где мы разбираем и тренируемся с разными технологиями. На работе - иногда пригождается. На собесах спрашивают редко.

Методы разработки

Кратко знакомимся с основными подходами к организации работы в IT:

  • Водопад — последовательная разработка,
  • Scrum / Kanban — гибкие методологии, популярные в data-командах.

Понимание этих концепций помогает быстрее адаптироваться в новых проектах и правильно интерпретировать требования.

Запись встреч

OBS Studio

Когда блок технических навыков считаем пройденным:

  • вы понимаете базовый GitFlow: как организована работа с ветками в команде и как ваши коммиты попадают в прод;
  • используете Docker для учебных стендов: запускаете контейнеры, смотрите логи и при необходимости перезапускаете сервисы;
  • ориентируетесь в основных методологиях разработки (Scrum/Kanban/водопад) и понимаете, как в них живут задачи и отчётность;
  • при необходимости умеете настроить запись экрана/созвонов, чтобы сохранять материалы обучения.

Практика и инструменты

Airflow

Apache Airflow — инструмент для оркестрации ETL-процессов.

Мы используем его для:

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

Материалы:

Когда блок Airflow считаем пройденным:

  • вы можете объяснить, что такое DAG, задачи, операторы и сенсоры, и как между ними задаются зависимости;
  • на базе учебного стенда подготавливаете, отлаживаете и запускаете свои DAG'и с расписанием и несколькими шагами (например, загрузка данных и последующие трансформации);
  • уверенно смотрите логи, находите место падения и понимаете, как перезапустить задачу.

Greenplum

Разбираем, чем Greenplum отличается от PostgreSQL и зачем нужны MPP-хранилища.

Предварительно:

Практика:

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

Когда блок Greenplum считаем пройденным:

  • вы понимаете, как данные распределяются по сегментам, что такое skew и как его увидеть;
  • на базе учебного стенда (например, DE Starter Kit) можете загружать и выгружать данные в Greenplum, выполнять запросы и разбирать планы выполнения (EXPLAIN);
  • можете объяснить, в чём практическая разница между MPP-хранилищем и одиночным Postgres на уровне типичных задач DE и собеседований.

Курсовая работа

К финалу роадмапа мы собираем небольшую end-to-end курсовую работу — свой первый «боеподобный» data-проект.

Стенд в Docker Compose

  • Apache Airflow — оркестратор;
    • источник данных — TelecomX (или аналогичный открытый датасет);
  • Greenplum — основное хранилище;
  • вспомогательный Postgres (по желанию);
  • ETL-скрипты и DAG'и;
  • исходные коды всего — в отдельном Git-репозитории.

В качестве альтернативы файловому источнику можно использовать генератор данных для демо-базы bookings от Postgres Pro: https://github.com/postgrespro/demodb.
Его удобнее всего встроить в стенд DE Starter Kit (Airflow + Greenplum) как отдельный сервис Postgres с регулярно генерируемыми данными и уже оттуда забирать их в Greenplum (в том числе через PXF, если хочется усложнить архитектуру).

Когда блок курсовой работы считаем пройденным:

  • у вас есть отдельный репозиторий с docker-compose, DAG'ами Airflow, SQL-скриптами и README по проекту;
  • стенд поднимается локально, DAG'и успешно прогоняются на тестовых данных от загрузки сырья до витрин;
  • вы можете на собеседовании за 5–10 минут рассказать архитектуру курсового проекта, его цели и показать ключевые части кода.

Понятие сложности алгоритмов

В Data Engineering редко требуется писать сложные алгоритмы, но важно понимать, как оценивать эффективность кода:

  • в SQL — через объём сканируемых данных, типы JOIN’ов, использование индексов;
  • в Python — через асимптотику операций с pandas/списками (например, O(n) vs O(n²)).

Это помогает избегать «тормозящих» решений на собеседованиях и в реальных пайплайнах.

Карьера и менторство

Менторство по этому роадмапу

Если вы нашли этот роадмап в интернете и хотите пройти его не в одиночку, а с поддержкой ментора, можно присоединиться ко мне.

Что даёт менторство:

  • структурный план прохождения роадмапа под вашу ситуацию;
  • разбор вопросов по SQL / DWH / Airflow и другим темам из этого документа;
  • разбор домашних заданий и код-ревью;
  • помощь с подготовкой к собеседованиям (резюме, мок-интервью).

Как записаться

Просто напишите мне в Telegram: @dementev_dev
со словами «Хочу пройти роадмап с ментором» — дальше всё обсудим.

Подготовка к собеседованиям

Цель блока — сформировать «опыт от 2 лет» и уметь корректно его показать в резюме и на собеседовании.

Помощь в подготовке резюме

Навыки поиска работы с HH и Habr карьера

Помощь с прохождением испытательного срока

Когда блок подготовки к собеседованиям считаем пройденным:

  • у вас есть актуальное резюме под DE с понятными примерами проектов вместо «пустого» опыта;
  • вы умеете искать и отбирать вакансии на HH и Habr Карьера, адаптируя отклики под конкретную позицию;
  • вы прошли хотя бы пару мок-собеседований, получили обратную связь и по результатам доработали резюме и стратегию поиска.

Расширенные навыки

Эти темы выходят за рамки базового минимума для старта в Data Engineering, но дают более полное представление об экосистеме.
Их цель — понимать, зачем и когда используется тот или иной инструмент, а не осваивать его на уровне администратора или DevOps-инженера.

Мы кратко знакомимся с:

  • Apache NiFi и Kafka — инструментами для построения потоковых и интеграционных пайплайнов;
  • ClickHouse — колоночной СУБД для высоконагруженной аналитики;
  • dbt — подходом к трансформации данных как кода.

Практика ограничивается минимальным рабочим примером (например, запуск в Docker, простой пайплайн или SQL-модель).

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

ClickHouse

Бесплатный курс https://yandex.cloud/ru/training/clickhouse
Платный курс ClickHouse для аналитика – Stepik

NiFi

Плейлист Apache NiFi с нуля за 3 часа. Конструктор вместо кода - Youtube — первые 4 видео, дальше — по желанию.

Практика:

  • собираем отдельный стенд в Docker Compose с Postgres и NiFi;
  • в NiFi настраиваем простой генератор данных.

Kafka

Лучший Гайд по Kafka для Начинающих За 1 Час - Youtube

Практика:

  • расширяем предыдущий стенд, добавляя Kafka;
  • строим поток данных: NiFi → Kafka;
  • добавляем обратный поток: Kafka → NiFi → Postgres.

dbt

dbt (data build tool) — инструмент для трансформации данных в хранилище.

Мы рассматриваем его как альтернативу «ручному» написанию сложных CTE и для понимания современного подхода к моделированию данных как кода.

Когда блок расширенных навыков считаем пройденным:

  • вы можете на собеседовании кратко объяснить, когда уместны NiFi/Kafka, ClickHouse и dbt, и чем они дополняют базовый стек (Postgres, Airflow, Greenplum);
  • понимаете типичные сценарии: потоковые интеграции и очереди (Kafka/NiFi), аналитические витрины и отчёты на ClickHouse, трансформации данных в dbt;
  • не боитесь увидеть эти инструменты в описании вакансии и можете поддержать содержательный разговор об их месте в архитектуре.

Софт скиллы

Все ветви дохода в IT / Полный гайд по деньгамГайд как писать отзывы
Гайд по Антистрессу

Дополнительные материалы

Записи ОМ

S
Description
No description provided
Readme
840 KiB
Languages
PLpgSQL 81.5%
Shell 10.7%
HTML 7.8%