Курс на Stepik
Обложка курса «Scala для дата-инженеров» на Stepik
800 ₽

Scala для дата-инженеров 5.000

Открыть на
STEPIK.ORG

Практический курс по Scala 2.13 для дата-инженеров: от установки окружения и базового синтаксиса до коллекций, ООП, функционального программирования, обработки ошибок, sbt, тестирования и итогового мини-ETL проекта.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Scala для дата-инженеров»Учеников на курсе 63
Сертификаты, выданные на курсе «Scala для дата-инженеров»Сертификатов выдано 0
Отзывы о курсе «Scala для дата-инженеров»Отзывов получено 2
Рейтинг курса «Scala для дата-инженеров»Рейтинг курса 5.000
Уроки в курсе «Scala для дата-инженеров»Количество уроков 118
Тесты в курсе «Scala для дата-инженеров»Количество квизов 586
Время прохождения курса «Scala для дата-инженеров»Время прохождения курса
Стоимость курса «Scala для дата-инженеров»Стоимость курса 800 ₽
Обновления курса «Scala для дата-инженеров»Обновления курса
Дата публикации курса «Scala для дата-инженеров»Дата публикации курса
Последнее обновление курса «Scala для дата-инженеров»Последнее обновление
Сложность easy

Содержание курса

Разделы в курсе «Scala для дата-инженеров» 17 разделов Уроки в курсе «Scala для дата-инженеров» 118 уроков Тесты в курсе «Scala для дата-инженеров» 586 тестов Время прохождения курса «Scala для дата-инженеров» 3 ч. Последнее обновление курса «Scala для дата-инженеров» обн. 14 июля 2026

1. Модуль 1. Введение: зачем дата-инженеру Scala и среда разработки

8 уроков
Закрытый
1.1 О курсе: как проходить обучение и канал «Логово Дата-Инженера»
8
0
-
0
Закрытый
1.2 Почему именно Scala для дата-инженерии
18
6
3м 26с
0
Закрытый
1.3 Как устроена JVM и при чём здесь Scala. Байт-код и JDK
7
5
-
0
Закрытый
1.4 Установка JDK, sbt и Coursier. Проверка окружения
6
4
-
0
Закрытый
1.5 Настройка IDE: IntelliJ IDEA и плагин Scala (и альтернатива…
5
4
-
0
Закрытый
1.6 REPL: интерактивная консоль Scala для экспериментов
4
3
-
0
Закрытый
1.7 Первая программа: создаём и запускаем sbt-проект
4
3
-
0
Закрытый
1.8 Как читать ошибки компилятора. Цикл правка — компиляция — запуск
4
3
-
0

2. Модуль 2. Базовые типы и значения

8 уроков
Закрытый
2.1 Значения val и переменные var. Почему неизменяемость по…
3
1
-
0
Закрытый
2.2 Базовые типы: Int, Long, Double, Boolean, Char и их литералы
2
1
-
0
Закрытый
2.3 Арифметические операции, приоритеты и переполнение чисел
1
1
-
0
Закрытый
2.4 Строки String и интерполяция s, f, raw
2
1
-
0
Закрытый
2.5 Всё есть выражение: if-выражение и блоки фигурных скобок
1
1
-
0
Закрытый
2.6 Типы Unit, Nothing и иерархия Any, AnyVal, AnyRef
1
1
-
0
Закрытый
2.7 Вывод типов: когда тип указывать явно, а когда нет
1
1
-
0
Закрытый
2.8 Преобразование типов и связанные с ним ловушки
1
1
-
0

3. Модуль 3. Управляющие конструкции

6 уроков
Закрытый
3.1 Условные выражения if/else, операторы сравнения и логические…
2
1
-
0
Закрытый
3.2 Цикл while и когда он действительно оправдан
1
1
-
0
Закрытый
3.3 Цикл for и диапазоны Range
1
1
-
0
Закрытый
3.4 Цикл for с фильтрами и несколькими генераторами
1
1
-
0
Закрытый
3.5 Конструкция for-yield: строим коллекции
1
1
-
0
Закрытый
3.6 Конструкция match: первое знакомство
1
1
-
0

4. Модуль 4. Функции и методы

10 уроков
Закрытый
4.1 Методы def: параметры, тело и возвращаемое значение
2
1
-
0
Закрытый
4.2 Функции как значения. Функциональные типы и стрелка =>
1
1
-
0
Закрытый
4.3 Анонимные функции и сокращённый синтаксис с подчёркиванием
1
0
-
0
Закрытый
4.4 Функции высшего порядка: передаём поведение как аргумент
1
1
-
0
Закрытый
4.5 Значения по умолчанию и именованные аргументы
1
1
-
0
Закрытый
4.6 Параметры переменной длины (varargs)
1
0
-
0
Закрытый
4.7 Каррирование и частичное применение функций
1
0
-
0
Закрытый
4.8 Параметры по имени (by-name) и отложенные вычисления
0
0
-
0
Закрытый
4.9 Рекурсия и хвостовая рекурсия с аннотацией @tailrec
0
0
-
0
Закрытый
4.10 Вложенные функции и замыкания
0
0
-
0

5. Модуль 5. Коллекции: фундамент

7 уроков
Закрытый
5.1 Обзор иерархии коллекций. Неизменяемые и изменяемые коллекции
0
0
-
0
Закрытый
5.2 Список List: устройство из ячеек и базовые операции
0
0
-
0
Закрытый
5.3 Vector, Array и ArraySeq: что и когда выбирать
0
0
-
0
Закрытый
5.4 Множества Set и словари Map
0
0
-
0
Закрытый
5.5 Кортежи Tuple и их роль в обработке данных
0
0
-
0
Закрытый
5.6 Диапазоны Range и ленивые последовательности LazyList
0
0
-
0
Закрытый
5.7 Тип Option как коллекция из нуля или одного элемента
0
0
-
0

6. Модуль 6. Функциональные операции над коллекциями

10 уроков
Закрытый
6.1 Метод map и перебор foreach
0
0
-
0
Закрытый
6.2 Отбор элементов: filter, filterNot и collect
0
0
-
0
Закрытый
6.3 Метод flatMap: разворачиваем вложенность
0
0
-
0
Закрытый
6.4 Свёртки fold, foldLeft, foldRight и reduce
0
0
-
0
Закрытый
6.5 Группировка groupBy и groupMapReduce
0
0
-
0
Закрытый
6.6 Сортировка коллекций: sortBy, sortWith, sorted, maxBy/minBy
0
0
-
0
Закрытый
6.7 Соединение и нарезка: zip, zipWithIndex, sliding, grouped
0
0
-
0
Закрытый
6.8 Отрезаем и делим: take, drop, span, partition, distinct
0
0
-
0
Закрытый
6.9 Преобразования между коллекциями: toMap, toSet, toList
0
0
-
0
Закрытый
6.10 Ленивые вычисления через view и производительность цепочек
0
0
-
0

7. Модуль 7. Объектно-ориентированное программирование

11 уроков
Закрытый
7.1 Классы: поля, конструктор и методы
1
0
-
0
Закрытый
7.2 Вспомогательные конструкторы и значения полей по умолчанию
0
0
-
0
Закрытый
7.3 Объекты-синглтоны object и точка входа в программу
0
0
-
0
Закрытый
7.4 Объекты-компаньоны и метод apply как фабрика
0
0
-
0
Закрытый
7.5 Case-классы: что компилятор генерирует автоматически
0
0
-
0
Закрытый
7.6 Равенство, hashCode и метод copy у case-классов
0
0
-
0
Закрытый
7.7 Трейты trait: интерфейсы с реализацией
0
0
-
0
Закрытый
7.8 Композиция трейтов и линеаризация (ромбовидное наследование)
0
0
-
0
Закрытый
7.9 Наследование классов: override, super, абстрактные члены
0
0
-
0
Закрытый
7.10 Модификаторы доступа: private, protected, private[package]
0
0
-
0
Закрытый
7.11 Запечатанные иерархии sealed
0
0
-
0

8. Модуль 8. Паттерн-матчинг и алгебраические типы

7 уроков
Закрытый
8.1 Match глубоко: литералы, переменные и wildcard
0
0
-
0
Закрытый
8.2 Сопоставление с case-классами и деконструкция
0
0
-
0
Закрытый
8.3 Сопоставление списков и последовательностей
0
0
-
0
Закрытый
8.4 Стражи guards, связывание через @ и альтернативы |
0
0
-
0
Закрытый
8.5 Экстракторы: метод unapply и собственные шаблоны
0
0
-
0
Закрытый
8.6 Алгебраические типы данных: sealed trait плюс case-классы
0
0
-
0
Закрытый
8.7 Моделируем предметную область данных через ADT
0
0
-
0

9. Модуль 9. Отсутствие значений и обработка ошибок

7 уроков
Закрытый
9.1 Проблема null и тип Option: Some и None
0
0
-
0
Закрытый
9.2 Работаем с Option: map, getOrElse, fold, for-comprehension
0
0
-
0
Закрытый
9.3 Исключения в Scala: try, catch, finally
0
0
-
0
Закрытый
9.4 Тип Try: Success и Failure как обычное значение
0
0
-
0
Закрытый
9.5 Тип Either: Left и Right для ошибок с контекстом
0
0
-
0
Закрытый
9.6 Композиция ошибок через for-comprehension над Either и Try
0
0
-
0
Закрытый
9.7 Паттерны обработки ошибок в конвейерах обработки данных
0
0
-
0

10. Модуль 10. Дженерики и система типов

5 уроков
Закрытый
10.1 Параметризованные классы и методы (дженерики)
0
0
-
0
Закрытый
10.2 Ограничения типов: верхние и нижние границы
0
0
-
0
Закрытый
10.3 Вариантность: ковариантность и контравариантность
0
0
-
0
Закрытый
10.4 Почему коллекции ковариантны, а функции контравариантны по входу
0
0
-
0
Закрытый
10.5 Члены-типы и абстрактные типы
0
0
-
0

11. Модуль 11. Implicits и классы типов — ключ к Spark

6 уроков
Закрытый
11.1 Идея неявных параметров implicit и using. Передача контекста
0
0
-
0
Закрытый
11.2 Неявные значения и алгоритм их поиска компилятором
0
0
-
0
Закрытый
11.3 Классы типов (type classes): идея и реализация
0
0
-
0
Закрытый
11.4 Расширения через implicit class и extension. Pimp my library
0
0
-
0
Закрытый
11.5 Контекстные границы [T: TypeClass]
0
0
-
0
Закрытый
11.6 Неявные преобразования и где они прячутся в Spark
0
0
-
0

12. Модуль 12. Функциональное программирование глубже

6 уроков
Закрытый
12.1 Чистые функции, побочные эффекты и ссылочная прозрачность
0
0
-
0
Закрытый
12.2 Неизменяемость на практике: обновление данных через copy
0
0
-
0
Закрытый
12.3 Композиция функций: andThen и compose
0
0
-
0
Закрытый
12.4 For-comprehension как универсальный механизм
0
0
-
0
Закрытый
12.5 Что такое монада простыми словами: контракт map и flatMap
0
0
-
0
Закрытый
12.6 Лень в Scala: lazy val, by-name и LazyList — резюме
0
0
-
0

13. Модуль 13. Конкурентность и асинхронность

6 уроков
Закрытый
13.1 Потоки JVM в двух словах. Зачем дата-инженеру асинхронность
0
0
-
0
Закрытый
13.2 Future: запуск асинхронных вычислений и ExecutionContext
0
0
-
0
Закрытый
13.3 Композиция Future: map, flatMap, for и обработка ошибок
0
0
-
0
Закрытый
13.4 Несколько Future параллельно: Future.sequence и traverse
0
0
-
0
Закрытый
13.5 Параллельные коллекции .par и их подводные камни
0
0
-
0
Закрытый
13.6 Неизменяемость как способ избежать состояний гонки
0
0
-
0

14. Модуль 14. Ввод-вывод и работа с форматами данных

6 уроков
Закрытый
14.1 Чтение и запись файлов: scala.io.Source и java.nio
0
0
-
0
Закрытый
14.2 Управление ресурсами: Using и try-with-resources
0
0
-
0
Закрытый
14.3 Дата и время: пакет java.time
0
0
-
0
Закрытый
14.4 Разбор CSV: вручную и с помощью библиотеки
0
0
-
0
Закрытый
14.5 JSON в Scala: парсинг и кодирование (circe/json4s)
0
0
-
0
Закрытый
14.6 Регулярные выражения в Scala
0
0
-
0

15. Модуль 15. Сборка, зависимости и тестирование

7 уроков
Закрытый
15.1 sbt глубоко: build.sbt, настройки и задачи
0
0
-
0
Закрытый
15.2 Зависимости и репозитории. Оператор %% и версии Scala
0
0
-
0
Закрытый
15.3 Многопроектные сборки и структура реального проекта
0
0
-
0
Закрытый
15.4 sbt-assembly: толстый jar для spark-submit
0
0
-
0
Закрытый
15.5 Тестирование с ScalaTest: стили спецификаций и матчеры
0
0
-
0
Закрытый
15.6 Property-based тестирование с ScalaCheck
0
0
-
0
Закрытый
15.7 Логирование: slf4j, logback и конфигурация
0
0
-
0

16. Модуль 16. Scala 3: взгляд в будущее

4 урока
Закрытый
16.1 Scala 2 против Scala 3: совместимость и причины перехода
2
0
-
0
Закрытый
16.2 Новый синтаксис: значимые отступы, given и using вместо implicit
0
0
-
0
Закрытый
16.3 enum, методы-расширения и определения верхнего уровня
0
0
-
0
Закрытый
16.4 Прочие новшества: union-типы, opaque-типы, кратко
0
0
-
0

17. Модуль 17. Итоговый проект: мини-ETL на чистой Scala

4 урока
Закрытый
17.1 Постановка задачи: ETL-пайплайн без Spark
1
0
-
0
Закрытый
17.2 Проектируем доменную модель и этапы пайплайна
0
0
-
0
Закрытый
17.3 Реализация: чтение, трансформация, запись и тесты
0
0
-
0
Закрытый
17.4 Итоги курса и мост к Apache Spark
0
0
-
0