Чему вы научитесь
- Писать идиоматичный код на Scala 3 — от простых программ до сложных типизированных систем
- Понимать систему типов Scala: generics, вариантность, higher-kinded types, union/intersection types, match types, opaque types
- Применять функциональное программирование: иммутабельность, ADT, pattern matching, for-comprehension, монады, функторы
- Работать с contextual abstractions: given/using, type class pattern, extension methods, derives
- Проектировать конкурентные приложения с Future, Cats Effect (IO, Fiber, Resource), ZIO
- Использовать ключевые библиотеки экосистемы: Cats, ZIO, Circe, http4s, Tapir, Akka/Pekko
- Тестировать код: ScalaTest, MUnit, ScalaCheck (property-based testing), Testcontainers
- Собирать проекты с sbt и Scala CLI, настраивать линтеры (Scalafmt, Scalafix), публиковать библиотеки
- Понимать внутреннее устройство: как Scala-конструкции транслируются в JVM-байткод
- Писать макросы и использовать метапрограммирование Scala 3 (inline, Quotes & Splices, Mirror derivation)
- Разрабатывать кросс-платформенные приложения: Scala.js (браузер) и Scala Native (CLI, serverless)
- Применять production-паттерны: Clean Architecture, DI, error handling стратегии, observability, Docker/Kubernetes
- Мигрировать проекты с Scala 2 на Scala 3
О курсе
Исчерпывающий курс по Scala 3 — от основ синтаксиса до продвинутой системы типов, функционального программирования, конкурентности и production-паттернов. 20 модулей, 150+ шагов, сотни примеров кода. Каждая тема раскрыта как глава технической книги с полноценными, запускаемыми примерами на Scala 3.8 и сравнением со Scala 2.13.
Для кого этот курс
- Разработчики на Java или Kotlin, которые хотят освоить Scala и функциональное программирование на JVM
- Начинающие Scala-разработчики, которые хотят систематизировать знания и выйти на уровень middle/senior
- Data-инженеры, работающие с Apache Spark, которые хотят глубоко понимать Scala, а не только API Spark
- Backend-разработчики, интересующиеся типобезопасной разработкой, эффект-системами (Cats Effect, ZIO) и функциональной архитектурой
- Разработчики на Scala 2, которые хотят перейти на Scala 3 и освоить новые возможности языка
- Программисты с опытом на Python, C#, Go или других языках, которые хотят изучить мощный статически типизированный язык с поддержкой FP
Начальные требования
- Уверенное владение любым языком программирования (Java, Kotlin, Python, C#, Go, JavaScript — не важно каким)
- Понимание базовых концепций: переменные, функции, условия, циклы, классы, структуры данных
- Установленный JDK 17 или выше (инструкция по установке — в первом модуле)
- Знание Scala НЕ требуется — курс начинается с нуля
- Знание функционального программирования НЕ требуется — все концепции объясняются с нуля
Преподаватели курса
Как проходит обучение
- Курс состоит из 20 модулей, каждый из которых включает 5–7 крупных шагов. Теоретические шаги — это полноценные статьи на тысячи слов, которые читаются как главы книги. Каждый шаг с кодом содержит полноценные примеры, которые можно скопировать и запустить в IDE или Scala CLI.
- Каждый модуль заканчивается тестами (quiz) на глубокое понимание и практическим заданием с бизнес-контекстом, скелетом решения и критериями оценки. Задания нарастают от простых (первые модули) до архитектурных (последние модули).
- Вы проходите модули последовательно: читаете теорию → изучаете примеры кода → решаете тесты → выполняете практическое задание. Рекомендуется параллельно писать код в IDE, экспериментируя с примерами.
Что вы получите
- Глубокое понимание Scala 3 — не просто синтаксис, а внутреннее устройство, философия языка и дизайн-решения
- Навык чтения и написания кода на Scala 2 и Scala 3 — необходимый для работы с реальными проектами
- Практический опыт работы с экосистемой: Cats, ZIO, Circe, http4s, Tapir, Akka/Pekko, ScalaTest, sbt
- Понимание функционального программирования: от Option/Either до монад, type classes и эффект-систем
- Готовность к собеседованиям на позиции Scala-разработчика уровня middle и senior
- 150+ полноценных примеров кода, которые можно использовать как reference в своих проектах
- Навык миграции проектов с Scala 2 на Scala 3
- Понимание JVM-уровня: как Scala транслируется в байткод, escape analysis, GC, производительность
- Базу для работы с Apache Spark, Kafka Streams, Flink и другими Big Data фреймворками на Scala
Нагрузка
10