Course Overview
What this Scala course covers, how to use it, prerequisites.
A self-contained, hands-on course covering Scala 3 (with notes on Scala 2 where it still matters): object-oriented and functional programming, the collections library, the advanced type system, contextual abstractions (givens, type classes), metaprogramming, concurrency, the effect-system ecosystem (Cats Effect, ZIO), and real-world tooling (sbt, Mill, scala-cli, Spark, http4s). Every chapter has runnable examples and exercises.
Course Map
Part I — Foundations Introduction to Scala Installation & Tooling
The REPL, scala-cli & Your First Program Values, Variables & Basic Types Strings & String Interpolation Operators & Expressions Functions & Lambdas The Type Hierarchy & Type Inference
Part II — Core Language & Standard Library Classes & Objects Traits & Mixins Enums & Algebraic Data Types Option, Either & Try The Collections Library
Higher-Order Functions & For-Comprehensions Exceptions & Error Handling
Packages, Imports, Access Modifiers & Exports Extension Methods & Top-Level Definitions I/O, Files & Regular Expressions Build Tools: sbt, Mill & scala-cli Testing: MUnit, ScalaTest & ScalaCheck Part III — Advanced Scala Generics, Variance & Bounds
Contextual Abstractions: given, using & Type Classes Implicits in Scala 2 (Legacy)
Advanced Types: Union, Intersection, Opaque, Literal & Structural
Type-Level Programming: Match Types, Type Lambdas, HKTs, Dependent Types Recursion, Laziness & Tail Calls
Functional Programming Abstractions & Cats Metaprogramming: inline, Macros, Mirrors & Derivation
Concurrency: Threads, Futures & Parallel Collections Effect Systems: Cats Effect & ZIO
Streaming: fs2, ZIO Streams & Pekko Streams Actors: Akka / Apache Pekko Performance & the JVM Scala.js & Scala Native
Scala 3 Syntax, Migration from Scala 2 & Experimental Features Part IV — Ecosystem & Real-World Scala JSON & Serialization
Web Development: http4s, Tapir, Play, ZIO HTTP, Cask Databases: Doobie, Skunk, Slick, Quill, Magnum Big Data with Apache Spark Best Practices & Design Patterns
Appendices: Cheat Sheet, Keywords, Operators, Resources, Study Plan