9 Best Free Scala Courses for 2024: Build Big Data Systems
Here is a guide with the best free online courses to learn Scala, a very flexible programming language used to work with lots of data and for building stuff for the web.
Scala is a general-purpose programming language mainly used for data processing, distributed computing, micro services, and more. It supports multiple paradigms, but it is best known for being able to blend object-oriented and functional programming into one amazing concoction.
In this Best Courses Guide (BCG), I’ve picked the best free and free-to-audit online courses to learn Scala. Some courses are short to get you started in Scala programming in no time while others are comprehensive with hundreds of hours of university-level content packed with projects. Most of the courses are beginner-friendly!
Click on the shortcuts for more details:
Here are my top picks. Click on one to skip to the course details:
What is Scala?
Scala is a strong statically typed general-purpose programming language mainly used for data processing, distributed computing, micro services, and more. Created by Martin Odersky at the Swiss Research University École Polytechnique Fédérale de Lausanne, it was designed to be a better Java and solved many of the problems Java had, like extraneous boilerplates, complicated concurrent programming, and lack of functional programming support.
But don’t think that Scala is purely a functional programming language — you’d be wrong on that as the Scala language is actually purely object-oriented! Instead, Scala is very flexible and supports multiparadigm programming, so the smart developer can choose the most appropriate paradigm to follow when writing code. This is especially true in data processing, when it makes more sense to model data as objects but process them with pure functions for better parallelization. Additionally, Scala can compile to Java Bytecode (as well as machine code and JavaScript), and it is interoperable with Java code.
Scala is the implementation language of many important frameworks, including Apache Spark, Kafka and Akka. Not only that, it has been used extensively in industry as infrastructure for tech giants such as Twitter, Netflix, and Spotify. There are a lot of Scala jobs available on the market, with Scala being one of the highest-paying languages at over $96K per year according to the Stack Overflow Developer 2023 Survey. So if you’re interested in working with lots of data or building stuff for the web, Scala is one of the best languages to learn.
BCG Stats
- All of the courses in this BCG are free or free-to-audit
- Three of the courses are university courses, whereas the rest are independent
- All of the courses have been made or updated for the latest version of Scala, Scala 3
- Six courses assume some prior programming knowledge
- Around 1.7K people follow the Scala Subject on Class Central.
Best Official Comprehensive Scala Specialization for Programmers (École Polytechnique Fédérale de Lausanne)
My #1 pick for the best course to learn Scala is the Functional Programming in Scala Specialization.
Created by EPFL, the university behind the Scala language itself, this free-to-audit specialization is designed to turn programmers with no prior experience in Scala into experts with a deep understanding of the language.
The specialization covers basic topics such as functional programming principles to more advanced topics: big data analysis with Spark and parallel programming. In the capstone project, you’ll implement a complete application capable of processing gigabytes of data about temperatures all over the world. The first course in this specialization is one of Class Central’s best free online courses of all time.
You should have one year of experience with any programming language (preferably with Java or C#, but any other language works).
What you’ll learn in this specialization:
Course 1: Functional Programming Principles in Scala
- Learn common traits of functional programming
- Apply higher-order functions, function composition, and pattern-matching in programming tasks
- Develop the ability to reason about functional programs
- Understand proofs of invariants and symbolic tracing of execution.
Course 2: Functional Program Design in Scala
- Advanced application of functional programming
- Design larger Scala applications
- Address problems using laziness, monads, combinatorial search, and other concepts.
Course 3: Parallel programming
- Importance of parallel programming
- Basics of parallel computing
- Theoretical and practical aspects covered
- Scala standard library’s readiness for parallel computing.
Course 4: Big Data Analysis with Scala and Spark
- Distributed computing application
- Apply functional concepts across machines
- Suitable for handling massive datasets up to thousands of gigabytes.
Course 5: Functional Programming in Scala Capstone
- Capstone project to complete the specialization
- Build large data-intensive application
- Utilize real-world weather data.
All of the instructors who teach this specialization are distinguished contributors to the Scala programming language. Even the designer behind Scala language itself, Martin Odersky, is one of them!
This course was produced in collaboration with the Scala Center, a not-for-profit center established at EPFL. Hence, it is the official course for beginners to learn Scala.
Institution | École Polytechnique Fédérale de Lausanne |
Provider | Coursera |
Instructors | Dr. Aleksandar Prokopec, Julien Richard-Foy, Erik Meijer, Martin Odersky, Prof. Heather Miller, Prof. Viktor Kuncak and Roland Kuhn |
Level | Beginner |
Workload | 210 hours |
Enrollments | 71.5K |
Rating | 4.7 / 5.0 (6.8K) |
Cost | Free audit |
Certificate | Paid |
Best Official Fast-track Scala Course for Programmers (École Polytechnique Fédérale de Lausanne)
Effective Programming in Scala, also by EPFL, is also a free-to-audit course. It’s the fast track of the previous recommendation, getting you up to speed quickly with Scala programming. It’s focused on the simple and practical aspects of the language, teaching you how to unite functional programming and object-oriented programming together, modeling business domains, running parallel tasks, as well as best practices.
To take this course, you should have some experience in any programming language.
What you’ll learn:
- Basics of Scala: learn language syntax and develop programming thinking
- Understand conditionals, loops, and collections
- Explore tools used in daily workflow
- Organize large programs with modules
- Learn effective testing methods
- Understand how to reason about code
- Explore compiler’s ability to write parts of a program
- Address run-time errors
- Develop concurrent programs, for example a web server.
A paid version of this course by EPFL Extension School includes everything in the Coursera version plus weekly 30 minutes of live sessions with instructors and a review of your final project by Scala experts.
Institution | École Polytechnique Fédérale de Lausanne |
Provider | Coursera |
Instructors | Julien Richard-Foy and Noel Welsh |
Level | Beginner |
Workload | 30 hours |
Enrollments | 13K |
Rating | 4.6 / 5.0 (154) |
Cost | Free audit |
Certificate | Paid |
Best Scala Course for Anyone with no Programming Background (DevInsideYou)
If you’re a complete beginner to programming with no experience whatsoever, Scala – Your First Programming Language will suit you. In fact, it’ll bring you from a newbie all the way to a proficient Scala programmer. By the end of this course, you’ll understand basic coding concepts and coding paradigm functional programming and object-oriented programming.
In this course, you will:
- Understand code interpretation, Scala Build Tool, and the JVM
- Learn fundamental programming concepts: development environment, values, defs, vars, and scopes
- Study decision-making with conditionals and static types
- Explore subroutines, recursion, and efficient programming techniques
- Dive into the functional paradigm: higher-order functions, function composition, and pattern matching
- Integrate object-oriented programming concepts: inheritance, classes, and polymorphism
- Combine concepts from both paradigms when writing code
- End with error-handling, packages, namespaces, and imports.
Vladyslav Pekker is a 10+ years Scala veteran. His aim is to make the world of professional software development accessible to anyone by creating educational material in the form of video courses and tutorials. You can find his website here, along with his Discord community where you can get help.
Channel | DevInsideYou |
Provider | YouTube |
Instructor | Vladyslav Pekker |
Level | Beginner |
Workload | 19 hours |
Views | 22K |
Cost | Free |
Certificate | None |
Best Short Scala Course for Programmers (Rock The JVM)
If you’re a programmer, Scala at Light Speed will teach you all you need to know to get up and running with Scala.
This free 2 hour jam-packed course goes through the basics very quickly, preferring to focus more on more advanced Scala-specific features: case classes, pattern matching, asynchronous programming with Futures, and more!
To take this course you’ll need to have some programming background.
What you’ll learn:
- Syntax and basic programming concepts: cover values, types, expressions, and functions
- Object-oriented programming: explore classes, singletons, generics, and others
- Functional programming: learn higher-order functions, flatmaps, filters, etc.
- Scala’s superpower features: focus on pattern matching for complex and nested patterns, advanced features including Futures, implicits, and contextual abstraction
- Hands-on learning: code along with hands-on examples, run code with the instructor for practical understanding.
If you’ve managed to build something by yourself after finishing this course, you can email the instructor and he’ll send you a gift as a marker of your work. The GitHub page for this course can be found here. It’s also available as a YouTube playlist.
Institution | Rock the JVM |
Provider | Teachable |
Instructor | Daniel Ciocîrlan |
Level | Beginner |
Workload | 2 hours |
Cost | Free |
Certificate | None |
Best Short Scala Course for JavaScript Programmers (DevInsideYou)
Scala Crash Course with some JavaScript flavor, as the name implies, is geared towards JavaScript developers who want to indulge themselves in Scala programming. Whereas other courses in this ranking may be more object-oriented programming-focused, this course will teach all the basics and even some advanced features in Scala within a functional perspective.
In this course, you’ll:
- Setup development environment
- Learn basic Scala programming concepts: values, variables, types, conditionals, loops, operators
- Explore functions in functional programming: higher-order functions, anonymous functions, recursion
- Deep understanding through thorough practice
- Understand Scala’s OOP with classes, inheritance, and subtype polymorphism
- Cover additional concepts: pattern-matching, exceptions, collections
- Explore Algebraic Data Types
- Learn about implicits, Scala’s controversial feature.
Vladyslav Pekker has many other courses and series not only related to Scala, like his Ultimate WSL2 Guide, Git Tutorial for Absolute Beginners from Zero to Hero, and Book Reviews.
Channel | DevInsideYou |
Provider | YouTube |
Instructor | Vladyslav Pekker |
Level | Beginner |
Workload | 3–4 hours |
Views | 59K |
Likes | 1.5K |
Cost | Free |
Certificate | None |
Best Comprehensive University-level Course for Programmers (University of New England)
COSC250 – Functional and Reactive Programming is a free online public course from the University of New England.
Although the unit is an introduction to functional, object-oriented, asynchronous, and reactive programming, it is taught predominantly using Scala. By the time you’ve completed the course, you’ll be able to code in Scala following many different programming paradigms and techniques!
This course is designed for second year undergraduate students, who mostly have experience of imperative languages (Python and Java), so background knowledge of programming is needed.
What you’ll learn:
- Basic Scala syntax introduced through imperative and object-oriented programming, enables implementation of programs from previous languages
- Scala-specific concepts including type system, Futures, Promises, and Actors
- Functional paradigm exploration: learn foreign concepts, functions as values, laziness, immutability, pattern matching, etc
- Introduction to category theory and influential concepts such as Monoids and Monads
- Learn to handle massive streams of events using asynchronous and reactive programming
- Tasks or problems for practical application, with solutions
William Billingsley is an Associate Professor in Computational Science, Computer Science at the School of Science and Technology. You can find course information on the university’s website here.
Institution | University of New England |
Instructor | Will Billingsley |
Level | Intermediate |
Workload | N/A |
Cost | Free |
Certificate | None |
Best Interactive Programming Exercise Provider for All Levels (Scala Exercises)
Scala Exercises is an open source project for learning different technologies in Scala. The platform has hundreds of solvable interactive exercises with runnable code samples organized into several categories covering the basics of the Scala language and its most important libraries.
The exercises range in difficulty from beginners to advanced, so it is suitable for all levels. You’ll learn by reading the explanation snippets and applying what you’ve learned by filling in the interactive code samples. The system will consider the category complete when all its exercises are successfully done.
There are 10 categories of exercises:
- STD Lib: Learn Scala’s Standard Library.
- Cats: Learn Cats, a library which provides abstractions for functional programming in Scala.
- Shapeless: Learn Shapeless, a type class and dependent type based generic programming library for Scala.
- doobie: Learn doobie, a pure functional JDBC layer for Scala.
- ScalaCheck: Learn ScalaCheck, a tool for testing Scala and Java programs.
- Scala Tutorial: Quickly learn Scala from the beginning through an interactive tutorial.
- circe: Learn circe, a JSON library for Scala.
- Fetch: Learn fetch, a library for making access to data both simple & efficient
- Monocle: Learn Monocle, an optics library for Scala.
- FP in Scala: Learn FP by doing exercises based on Manning’s Functional Programming in Scala book.
47 Degrees is a technology consultancy that unlocks business growth for clients by creating assured solutions for complex, mission-critical software.
After completing a category, you’ll be able to go back and edit it. Additionally, you can even add new exercises or improve existing ones by sending a pull request, that’s the power of open source!
Institution | 47 Degrees |
Level | All levels |
Workload | N/A |
Stars | 2.5K |
Cost | Free |
Certificate | None |
Best Programming Exercise Platform with Personal Mentoring for All Levels (Exercism)
Exercism is a free online coding platform that provides interesting and unique programming exercises of various difficulty levels. As learning a skill is all about practice, doing exercises on Exercism is an excellent way to practice your Scala coding skills.
When you have solved and submitted an exercise, you’ll receive automated feedback on your code. If you do find an exercise particularly challenging, you can request a mentor to look over your code and give you personalized advice on how to improve it, which I think is the best feature about this website! 59 people have contributed towards the Scala syllabus and exercises, with over 240 mentors available at the time of writing.
What you’ll learn:
- Exercism contains 90+ exercises of three difficulties: easy, medium, and hard
- Easy exercises include binary search, flattening arrays, and translating RNA sequences into proteins
- Medium exercises include determining whether a person is allergic to something given an allergy score, creating a custom set type, and implementing run-length encoding and decoding
- Hard exercises include creating a zipper for a binary tree, implementing variable length quantity encoding and decoding, and parsing a Smart Game Format string.
Provider | Exercism |
Level | All levels |
Workload | N/A |
Enrollments | 16K |
Cost | Free |
Certificate | None |
Best Short Tutorial for Programmers to Get Started with Apache Spark (Dean Wampler)
Just Enough Scala For Spark is a free hands-on Jupyter Notebook tutorial on the most important core concepts of Scala that you need to use Apache Spark’s Scala API for data engineering effectively. Although this course isn’t a complete introduction to Spark itself, it’ll teach you just enough Scala for Spark.
Some prior programming experience in any language is assumed. Familiarity with Java is helpful.
Topics in this tutorial include:
- Methods and functions
- Immutable vs. mutable values
- Type inference
- Pattern matching
- Scala’s object model
- Scala collections and the common operations on them (the basis of Spark’s RDD API)
- Scala type hierarchy and useful Scala types: case classes, tuples, and options
- Effective use of the Spark shell (Scala interpreter)
- Common mistakes and how to avoid them
- Solutions are available in the notebook.
The Repo has 674 stars on GitHub. This tutorial has been used to teach in 5 conferences so far, and there is even a live demo of the tutorial on YouTube led by the author himself. There’s also a French version of the tutorial here.
Provider | GitHub |
Instructor | Dean Wampler |
Level | Intermediate |
Workload | N/A |
Cost | Free |
Certificate | None |
Why You Should Trust Us
Class Central, a Tripadvisor for online education, has helped 60 million learners find their next course. We’ve been combing through online education for more than a decade to aggregate a catalog of 200,000 online courses and 200,000 reviews written by our users. And we’re online learners ourselves: combined, the Class Central team has completed over 400 online courses, including online degrees.
Best Courses Guides Methodology
I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database and the internet. Then, I made a preliminary selection of courses by rating, reviews, and bookmarks.
- Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner.
- Select: Well-made courses were picked if they presented valuable and engaging content. I looked for recognized institutions and experienced instructors in Scala.
Ultimately, I used a combination of data and my own judgment to make these picks. I’m confident these recommendations will be a reliable way to learn about Scala.
Pat revised the research and the latest version of this article.