Learning Platform
Глоссарий Troubleshooting
Урок 03.05 · 20 мин
Начальный
НавыкиСтекКарьераHard skillsSoft skills

Навыки и стек для джуна-DE

Прошлый урок был про ландшафт «снаружи». Этот — про тебя: что должен знать и уметь джуниор-DE, чтобы пройти собеседование. Без воды и без «надо знать всё».


Hard skills: минимум для входа

Hard skills для джуна-DE
SQL (must)
Python (must)
Git (must)
Linux и Docker
Один cloud DWH
dbt или Airflow

Это минимум. Дальше — углубление и расширение.


SQL — главный навык

Без SQL не возьмут даже на стажировку. Уровень джуна:

  • SELECT, WHERE, ORDER BY, LIMIT — это база.
  • JOIN’ы — INNER, LEFT, RIGHT, FULL OUTER. Понимать, что такое cartesian product.
  • GROUP BY и HAVING — агрегации.
  • Subqueries и CTE (WITH … AS) — структурирование сложных запросов.
  • Window functions — ROW_NUMBER, RANK, LAG/LEAD, partition by. Это отличает джуна от стажёра.
  • UNION / UNION ALL — объединение результатов.
  • CASE WHEN — условная логика.

Что должно быть на автомате:

-- Топ-3 покупателя по сумме заказов за каждый месяц
SELECT
  customer_id,
  month,
  total_amount,
  rank_in_month
FROM (
  SELECT
    customer_id,
    DATE_TRUNC('month', order_date) AS month,
    SUM(amount) AS total_amount,
    ROW_NUMBER() OVER (
      PARTITION BY DATE_TRUNC('month', order_date)
      ORDER BY SUM(amount) DESC
    ) AS rank_in_month
  FROM orders
  GROUP BY 1, 2
)
WHERE rank_in_month <= 3
ORDER BY month, rank_in_month;

Если этот запрос пугает — садись за SQL. Без него дальше тяжело.

Углубление: sql-fundamentals -> sql-internals.

Window functions: ROW_NUMBER, RANK, LAG/LEAD изнутри CTE: WITH...AS и лестница запросов

Python — второй главный

DE-Python не такой, как у бэкенда. Тебе нужны:

  • Базовый синтаксис: типы, функции, классы (минимум), модули, исключения.
  • Pandas — DataFrame, чтение CSV/JSON/Parquet, базовые операции (filter, groupby, merge). Для ad-hoc.
  • Стандартная библиотека: os, pathlib, json, datetime, logging, subprocess.
  • HTTP-клиент: requests (для API).
  • БД-коннекторы: psycopg2 (Postgres), sqlalchemy (универсальный), snowflake-connector-python.
  • Тестирование: pytest (хотя бы базово).
  • Виртуальные окружения: venv или poetry / uv.

Не нужно (для джуна):

  • Async / await (пока не понадобится).
  • Django / Flask / FastAPI (это бэкенд, не DE).
  • Метаклассы, дескрипторы (overkill).
Генераторы Python: читаем 10 ГБ CSV без OOM PostgreSQL через psycopg3: подключение из Python

Git — обязательно

В команде ты будешь работать через GitHub / GitLab. Минимум:

  • git clone, git add, git commit, git push, git pull.
  • Ветки: git checkout -b, git merge, git rebase.
  • Pull requests и code review.
  • Решение конфликтов (хотя бы простых).
  • .gitignore.

Если ты ни разу не делал PR — сделай прямо сейчас на любом своём проекте.


Docker / Linux

Чтобы поднимать локально Airflow, dbt, базы данных:

  • docker run, docker ps, docker logs.
  • docker-compose up, docker-compose down.
  • Базовый Linux CLI: ls, cd, cat, grep, find, chmod, переменные окружения.
  • SSH (для доступа на сервера).

Не нужно (для джуна): писать свои Dockerfile с нуля, разбираться в network namespaces, оптимизировать слои.


Один cloud DWH

Выбери один и углубись:

  • Snowflake — самый популярный, удобный UI, документация хорошая.
  • BigQuery — если ты на GCP.
  • Redshift — если ты в AWS.

Понять:

  • Как загрузить файл из S3/GCS.
  • Как написать SQL и посмотреть план выполнения.
  • Как создать роль, дать grant.
  • Что такое compute warehouse / slot / cluster.
  • Партиции и кластеризация (на уровне «знаю, зачем»).

Один трансформ-инструмент

Главные кандидаты — dbt и Airflow:

  • dbt — если идёшь в analytics engineering или маленькую/среднюю команду.
  • Airflow — если идёшь в platform engineering или крупную компанию.
dbt Core: установка и первый проект за 20 минут Airflow: TaskFlow API vs Classic — первые DAG'и

В идеале — оба. Минимально — один полноценно.


Soft skills (не недооценивай)

Soft skills DE
Коммуникация
Понимание бизнеса
Debugging
Документирование
Терпение
Самообучение

Минимальный стек для входа

Если у тебя 3 месяца на подготовку — вот миnimum viable stack:

КатегорияЧто учим
Язык 1SQL (PostgreSQL диалект) — глубоко
Язык 2Python 3.12 — базовый + Pandas
ВерсионированиеGit + GitHub (PR, merge)
ИнфраDocker (запуск контейнеров) + Linux CLI
DWHSnowflake или BigQuery (free tier для практики)
Трансформацииdbt Core (локально с DuckDB)
Оркестрация (опционально)Airflow (через docker-compose)
Pet-project1-2 проекта в портфолио на GitHub

С этим стеком ты готов к собеседованию на джуна в большинстве компаний.

TIP

Не учи всё подряд. Бери одну тему за раз. SQL — 3 недели. Python — 3 недели. dbt — 2 недели. Airflow — 2 недели. Pet-project — 2 недели. Это 12 недель = ~3 месяца. Реалистично, если не отвлекаться.


Что НЕ нужно (для джуна)

Чтобы не паниковать от вакансий с 30 требованиями:

WARNING

Не нужно для джуна:

  • Spark, Flink, Kafka — желательно знать «что это и зачем», но писать на них — не для джуна.
  • Kubernetes — приятно, но необязательно. DevOps в команде поможет.
  • ML / DS — не твоя зона. Можно объяснить разницу — этого хватит.
  • Алгоритмы и LeetCode — DE-собесы редко требуют. Базовая сложность (O(n), O(log n)) — да, hard-задачи на DP — нет.
  • Системный дизайн уровня senior — на джуна не спросят архитектуру Netflix.

Эти темы для middle и senior. Не пугайся, что в вакансии «junior» написано «опыт Spark/K8s/Kafka» — половина компаний завышает требования.


Чек-лист готовности

Перед интервью:

  • Решил 30+ SQL-задач (LeetCode SQL, SQLZoo, Hackerrank SQL).
  • Написал свой Python-скрипт, который читает API и пишет в Postgres.
  • Сделал dbt-проект с 5+ моделями и тестами.
  • Запустил Airflow локально, написал DAG.
  • Имею GitHub с pet-проектом и хорошим README.
  • Могу объяснить разницу OLTP/OLAP, ETL/ELT, batch/streaming за 60 секунд каждое.
  • Прочитал «Fundamentals of Data Engineering» (Reis & Housley) или эквивалент.

Если все галочки — ты готов. Иди на собеседования.


Попробуй сам

  1. Открой 3 разных DE-вакансии «джуниор». Выпиши все технологии в столбик. Поставь напротив каждой: знаю / слышал / не знаю. Это твой план обучения на ближайшие 3 месяца.
  2. Сделай аккаунт на GitHub, если ещё нет. Создай репозиторий data-engineering-learning — туда будешь складывать pet-проекты и заметки по курсу.
Проверка знанийKnowledge check
Почему SQL и Python называются 'обязательным минимумом' для DE, а Spark и Kafka — нет, хотя они активно используются в индустрии?
ОтветAnswer
SQL и Python — это языки, на которых пишется 80% работы DE: SQL для трансформаций в DWH (через dbt), Python для оркестрации (Airflow), ad-hoc анализа, ingestion-скриптов и тестов. Без них невозможно работать вообще. Spark и Kafka — это специализированные инструменты для конкретных задач (big data processing, streaming), которые в большинстве компаний нужны только части команды. Джун-DE часто работает с Snowflake + dbt + Airflow, не касаясь Spark вообще. Кроме того, Spark/Kafka гораздо сложнее в освоении и обычно требуют middle-уровня. Их знание — преимущество, но не блокирующее требование для входа в профессию.

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

Результат: 0 из 0
Прикладной
Вопрос 1 из 5. Какой уровень SQL считается обязательным минимумом для джуна-DE?

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

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

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

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