Scala
Full course · 21 lessonsScala combines object-oriented and functional programming on the JVM. It powers high-performance data pipelines (Apache Spark), distributed systems (Akka), and type-safe web applications. These are the definitive free resources — vetted, current, and complete.
Getting Started with Scala 3
Set up the Scala toolchain and write your first programs in the REPL and with sbt.
Values, Variables and the Type System
Understand vals, vars, primitive types, and how Scala infers and converts types.
Control Flow: if, match and Loops
Write expressive branching with if-expressions and pattern-matching match expressions.
Defining Functions
Write functions with parameters, default values and named arguments.
Higher-Order Functions and Lambdas
Transform collections with map, filter, fold and other higher-order functions.
Collections: List, Vector, Map and Set
Choose the right immutable collection and use its API effectively.
Case Classes and Pattern Matching
Model data with case classes and destructure it with pattern matching.
Classes, Traits and Inheritance
Build object-oriented abstractions with classes, traits and extension.
Immutability and Functional Style
Write pure, referentially transparent code that avoids shared mutable state.
Option and Either for Safe Handling
Replace null and exceptions with Option and Either for total functions.
For Comprehensions and Monadic Composition
Sequence and transform monadic values with for comprehensions.
Generics and the Type System
Write reusable code with type parameters, bounds and variance.
Type Classes and Givens
Implement ad-hoc polymorphism with type classes and given instances.
Concurrency with Futures and Promises
Run work on thread pools and combine asynchronous results with Futures.
Files and I/O
Read and write files, parse lines, and stream large inputs lazily.
Testing with munit and ScalaTest
Write unit tests, property tests and test suites for Scala code.
Error Handling with Try and Either
Model failures explicitly and recover with Try, Either and validated data.
Builds and Dependencies with sbt
Configure builds, manage dependencies and run tasks with sbt.
Tail Recursion and Performance
Write stack-safe recursion and reason about allocation and performance.
Contextual Abstractions in Depth
Master using clauses, given instances and contextual lookup for flexible APIs.
Putting It All Together
Build a complete idiomatic Scala program combining FP, OOP and safe IO.
Free Books
Official Documentation
Official Scala Documentation Hub
Central entry point for all Scala guides — Scala 3 references, migration guides, and best practices.
Tour of Scala
Official interactive tour covering OOP, functional programming, pattern matching, and type system features.
Scala 3 Reference
Technical specification for Scala 3 context parameters, match types, enums, and metaprogramming.
Interactive Courses
Video Courses
Practice & Challenges
Reference & Cheatsheets
News & Updates
Community
Scala Users Discourse
Official forum where language designers, maintainers, and learners discuss features and troubleshooting.
Scala Discord
Active real-time chat for getting help with compiler errors, sbt configs, and idiomatic Scala.
Reddit r/scala
Community hub for discussions, library announcements, and Scala news.

