Предлагаемые треки

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

Трек P1 "Python: Intro" - Ступени изучения Python для начинающих

Трек "Python: Intro" направлен на успешное освоения языка Python, после которого специалист может выбрать любое другое направление.
Установка среды разработки
  • Установка интерпретатора Python (обычно версии 3.x).
  • Выбор редактора кода или IDE (например, Visual Studio Code, PyCharm, Sublime Text).
  • Настройка рабочей среды: создание виртуального окружения (опционально).
Основы синтаксиса
  • Переменные и типы данных: строки, числа, булевы значения.
  • Операции над данными: арифметические операции, сравнение значений.
  • Условные конструкции (if, else, elif) и логические операторы (and, or, not).
  • Циклы (for, while) и управление потоком выполнения программы.
Структуры данных
  • Списки, кортежи, множества, словари.
  • Методы работы с этими структурами данных: добавление элементов, удаление, изменение порядка.
  • Срезы и индексация.
Функции и Функциональное программирование
  • Определение функций с параметрами и возвращаемыми значениями.
  • Рекурсия и её применение.
  • Лямбда-функции и анонимные функции.
Файлы и ввод-вывод
  • Открытие и закрытие файлов.
  • Чтение и запись данных в файлы.
  • Форматы файлов: текстовые, двоичные (опционально).
Исключения и обработка ошибок
  • Обработка исключительных ситуаций с помощью конструкций try, except, finally.
  • Создание собственных исключений.
Модули и пакеты (опционально)
  • Создание и импортирование собственных модулей.
  • Работа с пакетами и организация проекта.
Объектно-ориентированное программирование (ООП)
  • Классы и объекты.
  • Наследование, полиморфизм, инкапсуляция.
  • Магические методы (__init__, __str__, __repr__ и другие).
Работа с датами и временем
  • Модуль time: получение текущего времени, задержки в выполнении программы.
  • Модуль datetime: работа с датами и временными интервалами.
Регулярные выражения (опционально)
  • Базовая работа с модулем re: сопоставление шаблонов, поиск подстрок, замена текста.
Отладка и тестирование. Красно-Зеленый стиль написания кода
  • Написание тестов для проверки корректности работы программы.
  • Использование встроенных средств отладки (например, pdb).
Продвинутые темы
  • Итераторы и генераторы.
  • Декораторы.
  • Контекстные менеджеры (with).
Документирование и оформление кода (для самых педантичных)
  • Комментирование кода.
  • Оформление кода согласно PEP 8 (стандарты кодирования в Python).
Самостоятельное изучение и практика
  • Чтение книг и документации по Python.
  • Участие в сообществах разработчиков, обсуждение вопросов и решений.
  • Решение задач на сайтах типа LeetCode, HackerRank, Codewars (обязательно)

Трек P2 "SQL: Intro" - Ступени изучения навыков написания запросов к Базам и Хранилищам данных.

Трек "SQL: Intro" направлен на успешное освоения навыков написания запросов к Базам и Хранилищам данных, например для тех, кто хочет вырасти до Junior DWH Developer.
Понимание основ реляционных баз данных
  • Что такое базы данных?
  • Реляционная модель данных: таблицы, столбцы, строки.
  • Типы данных: целочисленные, строковые, даты, логические и т.д.
  • Нормальные формы (1NF, 2NF, 3NF).
Основные команды SQL
  • SELECT: выборка данных из таблиц.
  • WHERE: фильтрация данных.
  • ORDER BY: сортировка результатов.
  • GROUP BY и агрегационные функции (COUNT, SUM, AVG, MAX, MIN):
  • JOIN и UNION: объединение таблиц.
  • HAVING: фильтрация финального среза данных.
Создание и модификация таблиц
  • CREATE TABLE: создание новой таблицы.
  • ALTER TABLE: изменение существующей таблицы.
  • DROP TABLE: удаление таблицы.
Манипуляция данными
  • INSERT INTO: вставка данных в таблицу.
  • UPDATE: обновление существующих записей.
  • DELETE: удаление данных из таблицы.
Индексы и ограничения
  • Индексы: ускорение запросов.
  • Ограничения: обеспечение целостности данных
PRIMARY KEY: уникальный идентификатор записи.
FOREIGN KEY: связь между таблицами.
UNIQUE: уникальность значения в колонке.
NOT NULL: обязательное наличие значения.
Транзакции
  • Понятие транзакций.
  • Команды COMMIT и ROLLBACK.
  • Атомарность, согласованность, изоляция, долговечность (ACID).
Подзапросы и CTE (Common Table Expressions)
  • Подзапросы внутри других запросов.
  • CTE: временные результаты для многократного использования.
Агрегированные данные и аналитические запросы
  • Агрегационные функции: COUNT, SUM, AVG, MAX, MIN.
  • Построение отчётов с использованием группировок и фильтров.
  • Окна и оконные функции: ROW_NUMBER(), RANK(), DENSE_RANK(), LAG(), LEAD().
Хранилища данных (Data Warehouses)
  • Концепция хранилищ данных.
  • ETL-процессы (Extract, Transform, Load).
  • Моделирование данных: звёздная схема, снежинка.
  • Фактовые и размерные таблицы.
Практическая работа
  • Решение реальных задач на платформах типа HackerRank, LeetCode (обязательно).
  • Проекты на GitHub: создание и поддержка репозитория с примерами SQL-запросов.
  • Участие в открытых источниках данных (Kaggle, Open Datasets).
  • Изучение различных вариантов хранилищ данных.

Трек P3 "Apache Airflow: Intro" - Ступени изучения оркестратора Apache Airflow.

Трек "Apache Airflow: Intro" направлен на успешное освоения навыков написания ETL и ELT потоков данных с 0 до уровня ETL Developer.
Основы Apache Airflow
  • Что такое Airflow? Ознакомьтесь с основными концепциями Airflow: DAGs (Directed Acyclic Graphs), Operators, Tasks, Sensors, Triggers.
  • Архитектура Airflow: Узнайте о компонентах Airflow: Webserver, Scheduler, Executor, Metadata Database, Workers.
  • Установите Airflow локально: Установите Airflow на свой компьютер, используя pip или Docker.
Создание первого DAG
  • Создайте простой DAG: Создайте DAG, состоящий из нескольких задач, выполняющих простые операции, такие как печать сообщений или выполнение SQL-запросов.
  • Запуск и мониторинг DAG: Запустите созданный DAG и ознакомьтесь с интерфейсом Airflow UI для мониторинга состояния задач.
Operators и Tasks
  • Изучите стандартные Operators: BashOperator, PythonOperator, EmailOperator, SqliteOperator и другие.
  • Создание кастомных операторов: Научитесь создавать свои собственные операторы для выполнения специфичных задач.
Конфигурация и настройка Airflow (опционально)
  • Настройте Airflow: Изучите конфигурационный файл airflow.cfg и настройте параметры, такие как количество параллельных задач, интервалы проверок и т.д.
  • Использование переменных и подключений: Научитесь работать с переменными и подключениями для хранения чувствительной информации и параметров подключения к внешним сервисам.
ETL пайплайн с использованием Airflow
  • Извлекайте данные: Используйте Airflow для извлечения данных из различных источников, таких как базы данных, API, файлы.
  • Преобразуйте данные: Применяйте преобразования данных с использованием Python или SQL.
  • Загружайте данные: Загрузите преобразованные данные в целевой источник, такой как база данных, облачное хранилище или другой сервис.
Расширенная функциональность Airflow
  • Triggers и Sensors: Научитесь использовать триггеры и сенсоры для запуска задач по определенным условиям.
  • XCom: Освойте механизм передачи данных между задачами с использованием XCom.
  • Branching и условные задачи: Создавайте ветвящиеся DAG'и с использованием условных операторов.
Мониторинг и алертинг
  • Логирование и мониторинг: Настройте логирование и мониторинг задач с использованием встроенных инструментов Airflow.
  • Алерты и уведомления: Настройте отправку уведомлений при сбоях или завершении задач.
Реальные проекты и кейсы
  • Проекты на GitHub: Найдите и реализуйте реальные проекты с использованием Airflow на GitHub.
  • Участие в сообществе: Участвуйте в обсуждениях на форумах и в чатах, помогайте другим пользователям решать проблемы.

Трек P4 "GIT: Intro" - Ступени изучения GIT

Трек "GIT: Intro" направлен на успешное освоения системы контроля версий, широко используемой в командной работе и управлении любыми проектами.
Установка Git и Базовая настройка
  • Скачайте и установите последнюю версию Git для вашей операционной системы (Windows, macOS, Linux).
  • Проверьте установку, выполнив команду в терминале: git --version
  • Настройте имя пользователя и адрес электронной почты, которые будут использоваться для коммитов.
Создание локального репозитория и Добавление файлов в репозиторий
  • Создайте новый каталог для вашего проекта.
  • Инициализируйте пустой репозиторий Git.
  • Создайте тестовый файл.
  • Добавьте изменения в индекс.
  • Зафиксируйте изменения (создайте коммит).
Просмотр истории изменений, Изменение и фиксация изменений, Отмена изменений
  • Посмотрите историю коммитов.
  • Измените содержимое файла.
  • Проверьте статус репозитория.
  • Добавьте измененный файл в индекс и создайте новый коммит.
  • Отмените изменения, которые еще не были зафиксированы.
  • Откатите последний коммит.
Работа с ветками (branches)
  • Создайте новую ветку.
  • Переключитесь на созданную ветку.
  • Сделайте изменения в этой ветке и зафиксируйте их.
  • Вернитесь обратно на основную ветку (master или main).
  • Объедините изменения из ветки feature_x в основную ветку.
Удаленное хранилище (remote repository), Клонирование существующего репозитория, Получение обновлений из удалённого репозитория
  • Зарегистрируйтесь на платформе для хостинга Git-репозиториев (например, GitHub, GitLab, Bitbucket).
  • Создайте новый удалённый репозиторий на выбранной платформе.
  • Свяжите ваш локальный репозиторий с удалённым.
  • Отправьте изменения на удалённое хранилище.
  • Склонируйте существующий репозиторий.
  • Обновите локальную копию репозитория.
Решение конфликтов слияния
Если при объединении веток возникают конфликты, Git предложит вручную разрешить их.
Теги (tags)
  • Создайте тег для определенной версии.
  • Отправьте теги на удалённый репозиторий.
Игнорирование файлов
  • Создайте файл .gitignore для игнорирования определённых типов файлов.
Совместная работа и Pull Requests
  • Создайте форк (копию) чужого репозитория на GitHub.
  • Внесите изменения в своём форке.
  • Отправьте изменения на ваш форк.
  • На сайте GitHub создайте Pull Request для предложения ваших изменений владельцу оригинального репозитория.

Трек P5 "Docker: Intro" - Ступени изучения Docker

Трек "Docker: Intro" направлен на успешное освоение Docker — это популярная технология контейнеризации, которая позволяет упаковывать приложения вместе с их зависимостями в легковесные, переносимые контейнеры. Это упрощает разработку, тестирование и развёртывание приложений.
Основы Docker
  • Установка Docker.
  • Понимание концепции контейнеров.
  • Первый запуск контейнера.
Работа с образами
  • Поиск и загрузка образов.
  • Создание собственного образа.
Оркестрация контейнеров
  • Композиция сервисов с Docker Compose.
  • Масштабирование сервисов.
Взаимодействие с хост-системой
  • Тома и монтирование файлов.
  • Сети и порты.
Продвинутые возможности (Опционально)
  • Docker Swarm.
  • Docker Registry.

Трек P6 "Apache Spark: Intro" - Ступени изучения Spark

Трек "Apache Spark: Intro" направлен на успешное освоение Spark — это популярная технология работы с данными и не только, которая позволяет ускорять и усложнять вычисления, настраивать потоки обработки данных и обучения МЛ моделей, писать высоконагруженные приложения. Это упрощает разработку, тестирование и развёртывание приложений.
1. Фундаментальные знания
  • Распределенные системы:
  • — Понимание концепций кластеров, параллельных вычислений, fault tolerance.
  • — Изучите модель MapReduce и различия между Spark и Hadoop.
  • Big Data экосистема:
  • — Знакомство с HDFS, YARN, Kafka, Hive, HBase.
  • Языки программирования:
  • — Python (PySpark): основы синтаксиса, структуры данных.
  • — Scala (опционально): для глубокой оптимизации и работы с Spark на уровне исходного кода.
2. Установка и настройка Spark
  • Установите Spark локально или используйте облачные платформы (Databricks, AWS EMR, Google Dataproc).
  • Настройте Spark в standalone-режиме и кластерном режиме (с использованием YARN/Kubernetes).
  • Изучите интерфейсы: Spark Shell (для Scala/Python), Jupyter Notebook для PySpark.
Практика:
— Запустите примеры из официальной документации.
— Напишите простой скрипт для подсчета слов в тексте.
3. Изучение архитектуры Spark
  • Компоненты Spark:
  • — Spark Core (RDD),
  • — Spark SQL (DataFrames),
  • — Spark Streaming, MLlib, GraphX.
  • Драйвер и исполнители (Driver/Executors): как задачи распределяются в кластере.
  • DAG (Directed Acyclic Graph): как Spark оптимизирует выполнение задач
4. Работа с данными: RDD, DataFrames, Datasets
  • RDD (Resilient Distributed Datasets):
  • — Трансформации (map, filter, reduceByKey) и действия (collect, count).
  • — Кэширование (persist()) и проверка lineage.
  • DataFrames/Datasets:
  • — SQL-подобный синтаксис, оптимизация через Catalyst.
  • — Чтение/запись данных в форматах Parquet, JSON, CSV, Avro.
Практика:
— Обработайте большой датасет (например, логи сервера) с агрегацией и фильтрацией.
— Сравните производительность RDD и DataFrames.
5. Оптимизация производительности
  • Партиционирование:
  • — repartition(),
  • — coalesce(),
  • — настройка партиций при чтении данных.
  • Смещения (Shuffles): как минимизировать с помощью broadcast variables, accumulators.
  • Настройка параметров:
  • — spark.sql.shuffle.partitions,
  • — executor.memory,
  • — driver.memory.
  • Анализ выполнения:
  • — Используйте Spark UI для анализа этапов выполнения (stages), таймлайнов.
Практика:
— Оптимизируйте медленный запрос, уменьшив количество shuffles.
— Настройте параметры памяти для предотвращения OOM-ошибок.
6. Работа с потоковыми данными (Spark Streaming) **
Актуально для тех, кто развивается в сторону потоковой обработки да

  • Изучите модель микропакетной обработки (DStreams).
  • Освойте Structured Streaming для работы с потоками через DataFrames.
  • Интегрируйтесь с Kafka для обработки реальных потоков данных.
Практика:
— Напишите приложение, обрабатывающее твиты в реальном времени.
— Агрегируйте данные скользящим окном (например, подсчет за последние 5 минут).
7. Машинное обучение с MLlib **
Актуально для тех, кто развивается в сторону потоковой обработки данных.

  • Пайплайны: Transformer, Estimator, Pipeline.
  • Алгоритмы: линейная регрессия, классификация, кластеризация.
  • Векторизация данных: StringIndexer, VectorAssembler.
Практика:
— Постройте модель предсказания оттока клиентов.
— Используйте кросс-валидацию для подбора гиперпараметров.
8. Администрирование и деплой
  • Настройка кластера: YARN, Kubernetes, Mesos.
  • Мониторинг через Spark UI, Grafana, Prometheus.
  • Управление зависимостями (использование --packages для подключения библиотек).
Практика:
— Разверните Spark-кластер в облаке (AWS/Azure/GCP).
— Настройте автоматическое масштабирование исполнителей.
11. Постоянное развитие !
  • Следите за обновлениями Spark (новые версии, улучшения).
  • Изучайте смежные технологии: Delta Lake, Apache Flink, TensorFlow on Spark.

Трек P7 "Java: Intro" - Ступени изучения Java

Трек "Java: Intro" направлен на успешное освоение Java— это один из самый популярных ЯП, который участвует во всех сферах деятельности ИТ. В нашем же случае он активно используется для написания приложений, сервисов и т.п. для работы с данными.
1. Установка инструментов и настройка окружения
  • Установите JDK (Java Development Kit):
  • — Скачайте последнюю версию с официального сайта Oracle.
  • — Убедитесь, что переменные окружения JAVA_HOME и PATH настроены.
  • Выберите IDE:
  • IntelliJ IDEA (рекомендуется), Eclipse или VS Code (тоже очень удобный вариант).
  • Изучите терминал:
  • — Научитесь компилировать и запускать код через javac и java.
2. Освойте базовый синтаксис
  • Типы данных и переменные:
  • — Примитивные типы (int, double, boolean), ссылочные типы (классы).
  • — Объявление переменных: int x = 10;.
  • Управляющие конструкции:
  • — Условные операторы: if-else, switch-case.
  • — Циклы: for, while, do-while.
  • Массивы:
  • — Одномерные и многомерные массивы: int[] arr = {1, 2, 3};.
Практика:
— Напишите программу для расчета факториала числа.
— Реализуйте сортировку массива пузырьком.
3. Понимание ООП (Объектно-Ориентированного Программирования)
  • Классы и объекты:
  • — Создание классов,
  • — Конструкторы,
  • — Ключевое слово new.
  • Инкапсуляция:
  • — Модификаторы доступа (private, public, protected),
  • — Геттеры и сеттеры.
  • Наследование:
  • — Ключевое слово extends,
  • — Переопределение методов (@Override).
  • Полиморфизм:
  • — Интерфейсы (interface),
  • — Абстрактные классы (abstract).
  • Композиция и агрегация:
  • — Отличие от наследования.
Практика:
— Создайте класс Animal с наследниками Cat и Dog.
— Реализуйте интерфейс Drawable для фигур (круг, квадрат).
4. Работа с исключениями
  • Типы исключений:
  • — Проверяемые (IOException),
  • — Непроверяемые (NullPointerException).
  • Обработка исключений:
  • — Блоки try-catch-finally,
  • — Ключевое слово throws.
  • Создание своих исключений:
  • — Наследование от Exception или RuntimeException.
Практика:
— Напишите код, который читает файл и обрабатывает FileNotFoundException.
— Создайте кастомное исключение InvalidAgeException.
5. Изучение стандартной библиотеки Java (Java Core)
  • Коллекции (Java Collections Framework):
  • — List (ArrayList, LinkedList),
  • — Set (HashSet, TreeSet),
  • — Map (HashMap).
  • Работа с датами:
  • — Классы LocalDate,
  • — LocalTime,
  • — DateTimeFormatter.
  • Потоки ввода-вывода (I/O):
  • — Чтение/запись файлов (FileReader, BufferedReader).
  • Многопоточность:
  • — Класс Thread,
  • — Интерфейс Runnable,
  • — Ключевое слово synchronized.
Практика:
— Реализуйте приложение для учета задач (TODO-лист) с использованием ArrayList.
— Напишите многопоточный код для параллельного расчета суммы элементов массива.
6. Инструменты разработки
  • Системы сборки:
  • — Maven или Gradle (настройка зависимостей в pom.xml или build.gradle).
  • Git и GitHub:
  • — Основные команды: clone, commit, push, pull.
  • Тестирование:
  • — Напишите unit-тесты с помощью JUnit 5 (@Test, @BeforeEach).
Практика:
— Создайте Maven-проект и подключите зависимости для работы с JUnit.
— Выложите свой проект на GitHub.
7. Продвинутые темы
  • Лямбда-выражения и Stream API:
  • — Функциональные интерфейсы, методы map, filter, reduce.
  • Работа с базами данных (JDBC):
  • — Подключение к MySQL/PostgreSQL, выполнение SQL-запросов.
  • Рефлексия и аннотации:
  • — Класс Class, создание кастомных аннотаций.
Практика:
— Отфильтруйте список объектов с помощью Stream API.
— Напишите CRUD-приложение для работы с базой данных.
8. Популярные фреймворки
  • Spring Framework:
  • — Spring Boot, Spring MVC, Spring Data JPA.
  • Hibernate:
  • — ORM (Object-Relational Mapping), настройка сущностей.
  • Тестирование:
  • — Mockito для мокирования зависимостей.

Практика:
— Создайте REST API для блога с помощью Spring Boot.
— Реализуйте авторизацию через Spring Security.

9. Практика через реальные проекты
  • Примеры проектов:
  • — Чат-бот для Telegram.
  • — Система бронирования билетов.
  • — Микросервис для обработки платежей.
  • Участвуйте в open-source:
  • — Найдите проекты на GitHub с тегом good first issue.
9. Практика через реальные проекты
10. Постоянное развитие

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