Learn Scala
Structured lessons from the basics up — follow the path below in order, at your own pace.
-
1
Level 1 — Beginner Beginner 29 lessons
Start here if you have never written a line of Scala before. No Scala experience is required, though knowing the basics of any programming l...
Lessons in this module
What Is Scala? Why Learn Scala? What Can You Do With Scala? Installing Scala Setting Up Your Environment Your First Program How Scala Code Runs Values and Variables Data Types Type Inference Strings Numbers and Math Booleans and Comparisons if Expressions Blocks and Expressions Match Expressions for Loops and Ranges while Loops Methods Default and Named Parameters Functions as Values Tuples Lists Vectors, Arrays, and Buffers Sets and Maps Collection Operations Option: No More null Reading Input and Arguments Comments and Style -
2
Beginner Projects Beginner 1 lesson
Build these on your own using what you learned in Level 1. Each one uses values, methods, collections, pattern matching, and Option . 1. Tem...
-
3
Level 2 — Intermediate Intermediate 20 lessons
These lessons cover classes, case classes, objects, traits, enums and algebraic data types, pattern matching, generics, higher order functio...
Lessons in this module
Classes Case Classes Objects and Companion Objects Traits Enums and Algebraic Data Types Pattern Matching in Depth Generics Higher-Order Functions For-Comprehensions Error Handling: Exceptions and Try Either and Validation Extension Methods Immutability in Practice Strings and Regular Expressions Working with Files Packages and Imports Building with sbt and Scala CLI Testing with MUnit Lazy Values, Views, and LazyList Java Interoperability -
4
Intermediate Projects Intermediate 1 lesson
Build these using case classes, traits, enums, pattern matching, for comprehensions, Either , files, and tests from Level 2. 1. Expense Trac...
-
5
Level 3 — Advanced Advanced 15 lessons
These lessons cover givens and contextual abstractions, type classes, opaque, union, and intersection types, variance, higher kinded types,...
Lessons in this module
Givens and Using Clauses Type Classes Opaque, Union, and Intersection Types Variance Higher-Kinded Types Futures and Concurrency Functional Effects: Cats Effect and ZIO Inline and Metaprogramming Tail Recursion and Performance JSON Building Web Services Big Data with Apache Spark Actors with Apache Pekko Scala.js and Scala Native Shipping Scala to Production -
6
Advanced Projects Advanced 1 lesson
Build these using givens, type classes, futures or an effect system, JSON, web frameworks, and Spark from Level 3. 1. REST API Service Build...
-
7
What You Should Know Now — and What's Next 1 lesson
What You Should Know Now Values, types, type inference, and expressions that return values Methods, functions as values, and higher order fu...