diff --git a/AGENTS.md b/AGENTS.md index 8d89112..ab7d433 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -60,7 +60,7 @@ All `.md` files MUST render correctly on both GitHub and the MkDocs Material sit `npx playwright screenshot --viewport-size='1280,800' 'http://127.0.0.1:8000/#anchor' /path/to/screenshot.png` Then read the screenshot with the Read tool to inspect rendering. Use `--viewport-size='1280,2000'` for tall pages. - Kill stuck dev server: `lsof -ti :8000 | xargs kill` -- Site URL: `https://dementev-dev.github.io/de-roadmap/` +- Site URL: `https://de.dementev.space/` (старый адрес `https://dementev-dev.github.io/de-roadmap/` отдаёт 404) ## Testing Guidelines - There is no dedicated test framework; treat SQL scripts as executable documentation. diff --git a/README.md b/README.md index e72872f..326136f 100644 --- a/README.md +++ b/README.md @@ -64,16 +64,17 @@ 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) +**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) Для дальнейшей тренировки и поддержания уровня можно использовать [Database - LeetCode](https://leetcode.com/problem-list/database/). Хорошая подборка задачек: [SQL 50 - Study Plan - LeetCode](https://leetcode.com/studyplan/top-sql-50/) #### Повышение знаний SQL Смотрим курс от Postgres Pro [DEV1](https://postgrespro.ru/education/courses/DEV1) -Темы - от "Введение" до "SQL" включительно, "Управление доступом", "Резервное копирование". Для лучшего усваивания материала проделываем все примеры и домашние задания из конспектов лекция. +Темы - от "Введение" до "SQL" включительно, "Управление доступом", "Резервное копирование". Для лучшего усваивания материала проделываем все примеры и домашние задания из конспектов лекций. С темой "PL/pgSQL" можно ознакомиться обзорно. Для развития навыков инженера будет полезно лабораторные работы делать не в виртуальной машине, а в docker контейнере. Предложенный (не обязательный) вариант - в каталоге `postgres-bookings` репозитория. @@ -134,7 +135,7 @@ SQL и моделирование данных специально идут р - [Работа с файлами в формате CSV, JSON, YAML](https://pyneng.readthedocs.io/ru/latest/book/17_serialization/index.html) - [Итераторы, итерируемые объекты и генераторы](https://pyneng.readthedocs.io/ru/latest/book/13_iterator_generator/index.html) - [Декораторы Python: пошаговое руководство](https://habr.com/ru/companies/otus/articles/727590/) - - Работа с датой/временем: https://django.fun/docs/python/3.10/library/datetime/ + - Работа с датой/временем: [официальная документация по модулю datetime](https://docs.python.org/ru/3/library/datetime.html) - ООП - [Tproger: «ООП простыми словами»](https://tproger.ru/experts/oop-in-simple-words) - Введение в [ООП](https://metanit.com/python/tutorial/7.1.php) @@ -145,7 +146,7 @@ SQL и моделирование данных специально идут р - [SkillFactory: Виртуальные окружения в Python](https://blog.skillfactory.ru/venv-virtualnoe-okruzhenie-v-python/) - Jupyter Lab - [Блог Практикума: «Что такое Jupyter Notebook: как установить и открыть»](https://practicum.yandex.ru/blog/chto-takoe-jupyter-notebook/) - - Готовая реализация Jupyter Lab, включающая в себя Spark, в Docker: https://github.com/dementev-dev/jupyter-spark-docker + - Готовая реализация Jupyter Lab, включающая в себя Spark, в Docker: [jupyter-spark-docker](https://github.com/dementev-dev/jupyter-spark-docker) - Pandas - [GeeksforGeeks: “Why Pandas is Used in Python”](https://www.geeksforgeeks.org/pandas/why-pandas-is-used-in-python/) - [Skillbox: «Для чего нужна библиотека Pandas»](https://skillbox.ru/media/code/rabotaem-s-pandas-osnovnye-ponyatiya-i-realnye-dannye/) @@ -199,13 +200,15 @@ Agile — это не метод, а философия. Scrum и Kanban — э ##### 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) — *Более глубокий разбор: как выглядит очередь задач разработчика и жизненный цикл тикета.* +* [Настройка процесса разработки в Tracker](https://www.youtube.com/watch?v=EdKlYJR2ph0&t=397s) (c 06:37) — *Более глубокий разбор: как выглядит очередь задач разработчика и жизненный цикл тикета.* > **💡 Совет:** > Не бойтесь кнопок. Главное правило любого трекера: **«Взял задачу в работу — переведи статус в In Progress»**. Это сигнал команде, что вы заняты и вас лучше не отвлекать. @@ -234,7 +237,7 @@ Agile — это не метод, а философия. Scrum и Kanban — э #### Docker -- Курс https://karpov.courses/docker +- Курс [Docker от karpov.courses](https://karpov.courses/docker) Основное предназначение для нас - учебные стенды, где мы разбираем и тренируемся с разными технологиями. На работе - иногда пригождается. На собесах спрашивают редко. @@ -407,8 +410,16 @@ Apache Airflow — инструмент для оркестрации ETL-про Этого достаточно, чтобы уверенно говорить об инструменте на собеседовании и понимать его место в архитектуре — а всё остальное при необходимости осваивается уже на проекте. ### ClickHouse -Бесплатный курс https://yandex.cloud/ru/training/clickhouse -Платный курс [ClickHouse для аналитика – Stepik](https://stepik.org/course/100210/promo?search=6551441002) + +Материалы: + +- Бесплатный курс [ClickHouse от Yandex Cloud](https://yandex.cloud/ru/training/clickhouse) +- Платный курс [ClickHouse для аналитика – Stepik](https://stepik.org/course/100210/promo?search=6551441002) + +Стенды для практики: + +- [clickhouse-learning-cluster](https://github.com/dementev-dev/clickhouse-learning-cluster) — учебный кластер ClickHouse в Docker Compose: 4 узла, репликация, шардинг, балансировка через HAProxy. Задачи курса Яндекса удобно выполнять на этом стенде — облачный кластер не нужен. +- [clickstream-ch-kafka-superset-demo](https://github.com/dementev-dev/clickstream-ch-kafka-superset-demo) — стенд, имитирующий полноценное аналитическое хранилище на ClickHouse: Kafka, Airflow, дашборды в Superset, мониторинг (Prometheus/Grafana), слои STG → ODS → DDS → DM и разные виды учебных потоков. Внутри — продвинутый курс «Кликстрим на ClickHouse». ### Streaming (NiFi + Kafka) NiFi — визуальный конструктор потоков данных, Kafka — распределённая очередь сообщений. Вместе они закрывают типичный сценарий: принять данные, буферизовать, доставить в хранилище. diff --git a/mkdocs.yml b/mkdocs.yml index 82982fe..3acde1c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,7 +30,7 @@ nav: - Введение: dwh-modeling/README.md - SCD: dwh-modeling/SCD.md - Data Vault: dwh-modeling/DataVault.md - - "Домашка: STG → DDS → DM": dwh-modeling/Homework_Customer_Status_DDS_DM.md + - "Домашка: STG → ODS → DDS → DM": dwh-modeling/Homework_Customer_Status_DDS_DM.md - Разработка с ИИ: - Введение: ai-dev/README.md - Лучшие практики: ai-dev/best-practice.md