diff --git a/README.md b/README.md index 45038f5..3e4be1a 100644 --- a/README.md +++ b/README.md @@ -12,19 +12,57 @@ ## Оглавление - [Основные знания](#основные-знания) + - [Git и базовые инструменты](#git-и-базовые-инструменты) + - [База по Git](#база-по-git) + - [Основы Markdown](#основы-markdown) + - [Базы данных: SQL и моделирование данных](#базы-данных-sql-и-моделирование-данных) + - [База по SQL](#база-по-sql) + - [Повышение знаний SQL](#повышение-знаний-sql) + - [Моделирование данных](#моделирование-данных) + - [Python](#python) + - [Методологии разработки](#методологии-разработки) + - [1. Основы и сравнение подходов](#1-основы-и-сравнение-подходов) + - [2. Agile: Философия гибкости](#2-agile-философия-гибкости) + - [3. Scrum (Скрам)](#3-scrum-скрам) + - [4. Kanban (Канбан)](#4-kanban-канбан) + - [Практика: Как это выглядит в жизни](#практика-как-это-выглядит-в-жизни) + - [Технические навыки](#технические-навыки) + - [Продвинутый Git](#продвинутый-git) + - [Docker](#docker) - [Практика и инструменты](#практика-и-инструменты) + - [Airflow](#airflow) + - [Greenplum](#greenplum) + - [Фундаментальная теория](#фундаментальная-теория) + - [Знакомство с Greenplum](#знакомство-с-greenplum) + - [Курсовая работа](#курсовая-работа) + - [Стенд в Docker Compose](#стенд-в-docker-compose) + - [Понятие сложности алгоритмов](#понятие-сложности-алгоритмов) - [Карьера и менторство](#карьера-и-менторство) + - [Менторство по этому роадмапу](#менторство-по-этому-роадмапу) + - [Подготовка к собеседованиям](#подготовка-к-собеседованиям) + - [Помощь в подготовке резюме](#помощь-в-подготовке-резюме) + - [Навыки поиска работы с HH и Habr карьера](#навыки-поиска-работы-с-hh-и-habr-карьера) + - [Помощь с прохождением испытательного срока](#помощь-с-прохождением-испытательного-срока) - [Расширенные навыки](#расширенные-навыки) + - [ClickHouse](#clickhouse) + - [NiFi](#nifi) + - [Kafka](#kafka) + - [dbt](#dbt) - [Софт скиллы](#софт-скиллы) - [Дополнительные материалы](#дополнительные-материалы) + - [Записи ОМ](#записи-ом) Рекомендуемый способ использования: - двигаться по разделам последовательно, не перепрыгивая через базу; - выполнять практику и домашки, а не только смотреть материалы; - возвращаться к разделам по мере появления реальных задач. +--- + # Основные знания +[[к оглавлению]](#оглавление) + ## Git и базовые инструменты ### База по Git @@ -54,7 +92,8 @@ SQL и моделирование данных специально идут р Бесплатный тренажер: [Интерактивный тренажер по SQL – Stepik](https://stepik.org/course/63054/promo) Целевой уровень знания SQL - Live кодинг на собесе. Проверяем на первом мок-интервью -**СТЕ** + +**CTE** - Зачем нам CTE: [Getting started with CTEs | dbt Labs](https://www.getdbt.com/blog/getting-started-with-cte) - Подробнее про синтаксис: [PostgreSQL : Документация: 17: 7.8. Запросы WITH (Общие табличные выражения) : Компания Postgres Professional](https://postgrespro.ru/docs/postgresql/17/queries-with) @@ -148,6 +187,58 @@ SQL и моделирование данных специально идут р - уверенно проходите простой live-coding по Python для DE: прочитать CSV/JSON, отфильтровать, сгруппировать данные и посчитать агрегаты. - можете отвечать как на простые вопросы собеседований (циклы, списки, словари), так и продвинутые (итераторы, декораторы, управление памятью, базовые понятия ООП) +## Методологии разработки + +> **Зачем это разработчику?** +> 1. **Работа в команде.** Вам нужно понимать «правила игры». Почему задачи двигаются именно так? Зачем мы встречаемся каждое утро на 15 минут? Почему нельзя просто взять задачу из середины списка? +> 2. **Собеседование и «легенда».** Когда вас спросят: «Как строилась работа в вашей прошлой команде?», вы должны ответить грамотно. Использование правильной терминологии (спринты, груминг, ретроспектива, WIP-лимиты) — это маркер профессионализма. Это показывает, что вы не просто писали код в вакууме, а были частью налаженного процесса. + +### 1. Основы и сравнение подходов +Для начала нужно понять глобальную разницу между жестким планированием (Waterfall) и гибкой разработкой (Agile). + +- [Waterfall или Agile, Scrum или Kanban: что выбрать](https://habr.com/ru/companies/kaiten/articles/906006/) — *Базовая статья. Читать внимательно, закрывает вопросы и по Waterfall, и по выбору пути.* +- [Agile, Scrum, Kanban - обзор, отличия, мифы](https://www.youtube.com/watch?v=LhA5aWjHTJw) — *Видео для закрепления. Помогает разложить кашу в голове по полочкам.* + +### 2. Agile: Философия гибкости +Agile — это не метод, а философия. Scrum и Kanban — это инструменты этой философии. + +- [Scrum vs Kanban: отличия и разница Agile методов](https://kaiten.ru/blog/kanban-vs-scrum/) — *Сравнение двух главных фреймворков. Важно понять, где заканчивается один и начинается другой.* + +### 3. Scrum (Скрам) +Используется, когда мы создаем продукт и работаем спринтами (циклами). +*Часто встречается в продуктовых командах, где DE работает в связке с Backend/Frontend.* + +- [Методология Scrum: принципы, ценности, этапы](https://kaiten.ru/blog/chto-takoie-scrum-i-kak-ispolzovat/) + +### 4. Kanban (Канбан) +Используется для управления потоком задач и поддержки. +*Наиболее популярен в Data Engineering и DevOps, так как данные поступают непрерывно, и их сложно «запереть» в двухнедельный спринт.* + +- [Канбан: метод, инструменты и принципы](https://kaiten.ru/blog/cto-takoe-kanban/) + +### Практика: Как это выглядит в жизни + +Теория — это хорошо, но на работе вы увидите конкретный интерфейс (Jira или Yandex Tracker). Важно понимать, куда нажимать и как двигать задачи. + +#### 1. Jira (Мировой стандарт) +Самый популярный инструмент. Скорее всего, вы столкнетесь именно с ним. +* [Как работать с Jira на реальных проектах](https://www.youtube.com/watch?v=oPgm-fsHVfM) (15 мин) — *Отличное видео, где показывают базу: как создать задачу, как перетащить её по доске (Kanban) и что писать в комментариях. Смотреть с 04:00, где начинается практика.* +* [Создание и настройка Scrum-досок в JIRA](https://www.youtube.com/watch?v=u-u8NRyApUs) — *Если хотите увидеть, как выглядит Спринт и Бэклог изнутри.* + +#### 2. Yandex Tracker (Российский стандарт) +Активно внедряется в крупных компаниях РФ. Логика та же, но интерфейс другой. +* [Начало работы в Яндекс.Трекере](https://www.youtube.com/watch?v=pdlYiijjn70) (3 мин) — *Супер-короткий официальный гайд. За 3 минуты показывают всё: очереди, доски, карточки.* +* [Настройка процесса разработки в Tracker](https://www.youtube.com/watch?v=EdKlYJR2ph0&t=397s)** (c 06:37) — *Более глубокий разбор: как выглядит очередь задач разработчика и жизненный цикл тикета.* + +> **💡 Совет:** +> Не бойтесь кнопок. Главное правило любого трекера: **«Взял задачу в работу — переведи статус в In Progress»**. Это сигнал команде, что вы заняты и вас лучше не отвлекать. + +**Когда блок «Методологии разработки» считаем пройденным:** +- вы в общих чертах можете объяснить разницу Waterfall vs Agile и Scrum vs Kanban; +- знаете основные мероприятия Scrum (planning / daily / review / retro) и что от вас ожидается на каждом; +- умеете работать с трекером (Jira/Tracker): создать/уточнить задачу, взять в работу, корректно двигать статусы и оставлять понятные комментарии; +- умеете своевременно сообщать о блокерах и уточнять требования, если задача «не бьётся» или в ней не хватает входных данных. + ## Технические навыки ### Продвинутый Git @@ -167,15 +258,6 @@ SQL и моделирование данных специально идут р Основное предназначение для нас - учебные стенды, где мы разбираем и тренируемся с разными технологиями. На работе - иногда пригождается. На собесах спрашивают редко. -### Методы разработки - -Кратко знакомимся с основными подходами к организации работы в IT: - -- **Водопад** — последовательная разработка, -- **Scrum / Kanban** — гибкие методологии, популярные в data-командах. - -Понимание этих концепций помогает быстрее адаптироваться в новых проектах и правильно интерпретировать требования. - ### Запись встреч OBS Studio - Руководство по OBS: [OBS Studio - Настройка ОБС для Записи Игр и Стрима | Настройка Микрофона в Обс и т.д - Youtube](https://www.youtube.com/watch?v=bj8VEphZ65U) @@ -187,8 +269,12 @@ OBS Studio - ориентируетесь в основных методологиях разработки (Scrum/Kanban/водопад) и понимаете, как в них живут задачи и отчётность; - при необходимости умеете настроить запись экрана/созвонов, чтобы сохранять материалы обучения. +--- + # Практика и инструменты +[[к оглавлению]](#оглавление) + ## Airflow Apache Airflow — инструмент для оркестрации ETL-процессов. @@ -208,7 +294,7 @@ Apache Airflow — инструмент для оркестрации ETL-про ## Greenplum Разбираем, чем Greenplum отличается от PostgreSQL и зачем нужны MPP-хранилища. -### Фундаментальная теория (Обязательно перед видео) +### Фундаментальная теория Прежде чем нажимать кнопки, нужно понять "физику" больших данных. Почему обычный Postgres начинает тормозить? - Мартин Клеппман, "Высоконагруженные приложения": - Глава 1. Надежность, масштабируемость. (Разбираемся, чем вертикальное масштабирование отличается от горизонтального). @@ -237,7 +323,7 @@ Apache Airflow — инструмент для оркестрации ETL-про ## Курсовая работа К финалу роадмапа мы собираем небольшую end-to-end курсовую работу — свой первый «боеподобный» data-проект. -### Стенд в Docker Compose +### Стенд в Docker Compose - Apache Airflow — оркестратор; - источник данных — TelecomX (или аналогичный открытый датасет); - Greenplum — основное хранилище; @@ -261,8 +347,12 @@ Apache Airflow — инструмент для оркестрации ETL-про Это помогает избегать «тормозящих» решений на собеседованиях и в реальных пайплайнах. +--- + # Карьера и менторство +[[к оглавлению]](#оглавление) + ## Менторство по этому роадмапу Если вы нашли этот роадмап в интернете и хотите пройти его не в одиночку, а с поддержкой ментора, можно присоединиться ко мне. @@ -307,10 +397,14 @@ Apache Airflow — инструмент для оркестрации ETL-про - вы умеете искать и отбирать вакансии на HH и Habr Карьера, адаптируя отклики под конкретную позицию; - вы прошли хотя бы пару мок-собеседований, получили обратную связь и по результатам доработали резюме и стратегию поиска. +--- + # Расширенные навыки Эти темы выходят за рамки базового минимума для старта в Data Engineering, но дают более полное представление об экосистеме. Их цель — понимать, зачем и когда используется тот или иной инструмент, а не осваивать его на уровне администратора или DevOps-инженера. +[[к оглавлению]](#оглавление) + Мы кратко знакомимся с: - **Apache NiFi** и **Kafka** — инструментами для построения потоковых и интеграционных пайплайнов; @@ -350,12 +444,22 @@ dbt (data build tool) — инструмент для трансформации - понимаете типичные сценарии: потоковые интеграции и очереди (Kafka/NiFi), аналитические витрины и отчёты на ClickHouse, трансформации данных в dbt; - не боитесь увидеть эти инструменты в описании вакансии и можете поддержать содержательный разговор об их месте в архитектуре. +--- + # Софт скиллы + +[[к оглавлению]](#оглавление) + - [Все ветви дохода в IT / Полный гайд по деньгам](https://youtube.com/live/JHClTWwK1EM) - [Гайд как писать отзывы](https://boosty.to/m0rtymerr/posts/b04040ec-0f46-4524-9c75-188a513140ad?share=post_link) - [Гайд по Антистрессу](https://youtu.be/bu0YiXOKaoU) +--- + # Дополнительные материалы + +[[к оглавлению]](#оглавление) + - [ananevsyu/SandBox_DB_public: Песочница для изучения различных технологий связанных с инженерией данных](https://gitflic.ru/project/ananevsyu/sandbox_db_public) - Клон проекта [dementev_dev/sandbox_db_public-форк](https://gitflic.ru/project/dementev_dev/sandbox_db_public-fork) - [System Design. Разбор книги "Высоконагруженные приложения". Глава 1 - Youtube](https://www.youtube.com/watch?v=owjrIB_5go8) — отличный видео-конспект первой главы Клеппмана на русском.