Online Resources

Try Scala in your browser!

There are a handful of websites where you can interactively run Scala code in your browser! Have a look at ScalaFiddle and Scastie.

Online courses from the Scala Center

The following online courses provide two main paths to learn Scala. The fast path consists of taking the course Effective Programming in Scala, otherwise you can take the full Scala Specialization, which is made of four courses and a capstone project.

All the courses are available for free. Optionally, a subscription gives you access to a certificate of completion that attests your accomplishments. Learn more about Coursera certificates or edX certificates.

Effective Programming in Scala

Effective Programming in Scala teaches non-Scala programmers everything they need to be ready to work in Scala. At the end of this hands-on course, you will know how to achieve common programming tasks in Scala (e.g., modeling business domains, implementing business logic, designing large systems made of components, handling errors, manipulating data, running concurrent tasks in parallel, testing your code). You can learn more about this course in the following video:

This course is also a good way to upgrade your Scala 2 knowledge to Scala 3.

After taking this course, you might be interested in improving your skills in specific areas by taking the courses Parallel Programming, Big Data Analysis with Scala and Spark, or Programming Reactive Systems.

Scala Specialization

The Scala Specialization provides a hands-on introduction to functional programming using Scala. You can access the courses material and exercises by either signing up for the specialization or auditing the courses individually. The specialization has the following courses.

These courses provide a deep understanding of the Scala language itself, and they also dive into more specific topics such as parallel programming, and Spark.

Programming Reactive Systems

Programming Reactive Systems (also available on edX) teaches how to write responsive, scalable, and resilient systems with the library Akka.

Scala Learning Path

The diagram below summarizes the possible learning paths with our courses:

The “foundational” courses target programmers with no prior experience in Scala, whereas the “deepening” courses aim at strengthening Scala programmers skills in a specific domain (such as parallel programming).

We recommend starting with either Effective Programming in Scala, or Functional Programming Principles in Scala followed by Functional Program Design. Then, you can complement your Scala skills by taking any of the courses Programming Reactive Systems, Parallel Programming, or Big Data Analysis with Scala and Spark. In case you take the Scala Specialization, you will end with the Scala Capstone Project.

Scala 2 Courses

The above courses use Scala 3 (except the Spark courses). If needed, you can find the (legacy) Scala 2 version of our courses here:

Scala Exercises

Scala Exercises is a series of lessons and exercises created by 47 Degrees. It’s a great way to get a brief introduction to Scala while testing your knowledge along the way.

Tour of Scala gives you an introduction to Scala, step by step, from begineer to expert.

Dr. Mark C Lewis’s lectures from Trinity University

Dr. Mark C Lewis from Trinity University, San Antonio, TX, teaches programming courses using the Scala language. Course videos are available in YouTube for free. Some of the courses below.

You can visit his YouTube channel for more videos.

Scala Learning Community

Scala Learning Community on Discord, a growing online community connecting learners with online resources to learn Scala together.

allaboutscala

allaboutscala provides detailed tutorials for beginners.

DevInsideYou

DevInsideYou is a YouTube channel with hundreds of hours of free Scala content.

Visual Scala Reference

Visual Scala Reference, a guide to visually learn about Scala concepts and functions.

Contributors to this page: