Курс на Stepik
Обложка курса «Scala 3 для начинающих: язык и функциональное мышление» на Stepik
950 ₽

Scala 3 для начинающих: язык и функциональное мышление ★ 0.000

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

Освойте Scala 3.10 через работу с данными: синтаксис, типы, коллекции, функциональные преобразования, обработка ошибок и Future. В курсе 20 глав, 125 текстовых уроков и 96 тестовых задач с пояснениями. Итоговая работа — консольная утилита ledger-cli, которая проверяет CSV, считает сводки и формирует отчёт.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Scala 3 для начинающих: язык и функциональное мышление»Учеников на курсе 0
Сертификаты, выданные на курсе «Scala 3 для начинающих: язык и функциональное мышление»Сертификатов выдано 0
Отзывы о курсе «Scala 3 для начинающих: язык и функциональное мышление»Отзывов получено 0
Рейтинг курса «Scala 3 для начинающих: язык и функциональное мышление»Рейтинг курса 0.000
Уроки в курсе «Scala 3 для начинающих: язык и функциональное мышление»Количество уроков 127
Тесты в курсе «Scala 3 для начинающих: язык и функциональное мышление»Количество квизов 120
Стоимость курса «Scala 3 для начинающих: язык и функциональное мышление»Стоимость курса 950 ₽ —
Обновления курса «Scala 3 для начинающих: язык и функциональное мышление»Обновления курса — —
Дата публикации курса «Scala 3 для начинающих: язык и функциональное мышление»Дата публикации курса — ———
Последнее обновление курса «Scala 3 для начинающих: язык и функциональное мышление»Последнее обновление — ———
Сложность normal — ———

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

Разделы в курсе «Scala 3 для начинающих: язык и функциональное мышление» 20 разделов Уроки в курсе «Scala 3 для начинающих: язык и функциональное мышление» 127 уроков Тесты в курсе «Scala 3 для начинающих: язык и функциональное мышление» 120 тестов Последнее обновление курса «Scala 3 для начинающих: язык и функциональное мышление» обн. 6 ноября 2026

Scala в 2026 году: язык и экосистема

5 уроков
1. Где Scala используется сегодня ↗
2. Scala как язык на JVM ↗
3. Scala 3 и код, написанный для Scala 2 ↗
4. Объектный и функциональный стиль в одном языке ↗
5. Учебный проект курса: ledger-cli ↗

Рабочая среда Scala-разработчика

7 уроков
1. Установка JDK 27 и проверка окружения ↗
2. Команда scala: запуск, REPL, тесты и упаковка ↗
3. Директивы using и проект без файла сборки ↗
4. sbt 2: структура проекта и сборка ↗
5. IntelliJ IDEA и Metals ↗
6. REPL и быстрые эксперименты с кодом ↗
7. Первая программа: @main, аргументы и код выхода ↗

Базовый синтаксис Scala

6 уроков
1. val, var и неизменяемость по умолчанию ↗
2. Числа, Boolean, Char и String ↗
3. Вывод типов и явные аннотации ↗
4. Выражения, блоки и значение последней строки ↗
5. Отступы, фигурные скобки и маркеры end ↗
6. Именование, комментарии и Scaladoc ↗

Управление потоком выполнения

6 уроков
1. if как выражение ↗
2. match вместо цепочек if ↗
3. Циклы while и когда они оправданы ↗
4. for: генераторы, do и yield ↗
5. for с фильтрами и несколькими генераторами ↗
6. Досрочный выход: boundary и break ↗

Функции и методы

7 уроков
1. Методы: def, параметры и тип результата ↗
2. Значения по умолчанию, именованные аргументы и varargs ↗
3. Несколько списков параметров и параметры по имени ↗
4. Функции как значения ↗
5. Лямбды и сокращённый синтаксис ↗
6. Каррирование, частичное применение и eta-расширение ↗
7. Рекурсия и @tailrec ↗

Строки, числа и стандартная библиотека

6 уроков
1. Строки и интерполяция ↗
2. Числа: переполнение, деление и BigDecimal ↗
3. Регулярные выражения и разбор текста ↗
4. Option вместо null ↗
5. Ordering, Numeric и сравнение значений ↗
6. lazy val и ленивые вычисления ↗

Коллекции Scala: основы

6 уроков
1. Устройство библиотеки коллекций ↗
2. List, Vector, ArraySeq и Array ↗
3. Map: ассоциативные массивы ↗
4. Set и уникальные значения ↗
5. Изменяемые и неизменяемые коллекции ↗
6. Производительность и выбор коллекции ↗

Коллекции Scala: преобразования данных

8 уроков
1. map и преобразование элементов ↗
2. filter, find, exists, forall и collect ↗
3. flatMap и вложенные структуры ↗
4. foldLeft, reduce и scanLeft ↗
5. groupBy, groupMapReduce и partition ↗
6. zip, sliding, сортировка и срезы ↗
7. Ленивые цепочки: view, Iterator и LazyList ↗
8. Разбор журнала транзакций средствами коллекций ↗

Pattern matching

7 уроков
1. Виды образцов: литералы, переменные, альтернативы ↗
2. Сопоставление по типам ↗
3. Сопоставление case class и вложенные образцы ↗
4. Охранные условия ↗
5. Списки, кортежи и последовательности в образцах ↗
6. Собственные экстракторы и образцы в val и for ↗
7. Проверка полноты и безопасные варианты ↗

Кортежи, case classes и моделирование данных

5 уроков
1. Кортежи и именованные кортежи ↗
2. case class: что генерирует компилятор ↗
3. copy и обновление вложенных данных ↗
4. Равенство и хеширование значений ↗
5. Доменная модель ledger-cli ↗

Объектная модель Scala

7 уроков
1. Классы, поля и конструкторы ↗
2. object и singleton-объекты ↗
3. Объекты-компаньоны и фабрики ↗
4. Трейты: контракты и примеси ↗
5. Наследование, override, final и open ↗
6. Методы расширения ↗
7. Композиция, export и место ООП в коде на Scala ↗

Типы и система типов Scala

7 уроков
1. Any, AnyVal, AnyRef, Nothing и Null ↗
2. Псевдонимы типов и opaque-типы ↗
3. Обобщённые классы и методы ↗
4. Верхние и нижние границы типов ↗
5. Вариантность: +A, -A и инвариантность ↗
6. Типы-объединения и типы-пересечения ↗
7. Типы, исключающие некорректные состояния ↗

Enum, sealed traits и алгебраические типы данных

6 уроков
1. enum в Scala 3 ↗
2. enum с параметрами и методами ↗
3. sealed trait и case class ↗
4. Состояния процесса как алгебраический тип ↗
5. Команды и события ↗
6. Ошибки предметной области как ADT ↗

Контекстные абстракции: given, using и классы типов

6 уроков
1. Контекстные параметры using ↗
2. given-экземпляры и где компилятор их ищет ↗
3. Классы типов ↗
4. Ограничения контекста и summon ↗
5. Строгое равенство: CanEqual и derives ↗
6. implicit из Scala 2 и его замены в Scala 3 ↗

Функциональное мышление на практике

5 уроков
1. Чистые функции и побочные эффекты ↗
2. Ссылочная прозрачность ↗
3. Композиция функций ↗
4. Конвейеры обработки данных ↗
5. Функциональное ядро и императивная оболочка ↗

Ошибки как значения

7 уроков
1. Исключения на JVM и их цена ↗
2. Either: результат или ошибка ↗
3. Try на границе с кодом, бросающим исключения ↗
4. Как for раскрывается в map, flatMap и withFilter ↗
5. Цепочки Option и Either в for ↗
6. Накопление ошибок валидации ↗
7. Когда for помогает, а когда мешает читать код ↗

Ввод-вывод и стандартные API JVM

6 уроков
1. Аргументы командной строки и коды завершения ↗
2. Файлы: java.nio.file и scala.util.Using ↗
3. Построчная обработка больших файлов ↗
4. Даты и время: java.time ↗
5. Взаимодействие с Java-библиотеками ↗
6. Командная строка ledger-cli ↗

Асинхронность и Future

6 уроков
1. Зачем нужен асинхронный код ↗
2. Future и ExecutionContext ↗
3. map, flatMap, recover и recoverWith ↗
4. Future.traverse, sequence и параллельная обработка ↗
5. Таймауты, блокировки и виртуальные потоки ↗
6. Future и библиотеки эффектов: Cats Effect, ZIO, Ox ↗

Пакеты, тесты и качество кода

7 уроков
1. Пакеты, импорты и организация исходников ↗
2. Зависимости в sbt и в директивах using ↗
3. Первые тесты на MUnit ↗
4. Тестирование чистых функций и ошибок ↗
5. Тестирование свойств со ScalaCheck ↗
6. Scalafmt, Scalafix и предупреждения компилятора ↗
7. Непрерывная интеграция в GitHub Actions ↗

Финальный проект: ledger-cli целиком

7 уроков
1. Архитектура: функциональное ядро и оболочка ↗
2. Модель предметной области и разбор строк ↗
3. Чтение файлов и проверка документа ↗
4. Агрегация и отчёты в трёх форматах ↗
5. Ошибки, коды завершения и сообщения ↗
6. Тесты, сборка и выпуск ↗
7. Куда двигаться дальше в экосистеме Scala ↗