Try Scala in your browser!
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.
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.
- Functional Programming Principles in Scala,
- Functional Program Design in Scala,
- Parallel programming,
- Big Data Analysis with Scala and Spark,
- Functional Programming in Scala Capstone.
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
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:
- Functional Programming Principles in Scala (Scala 2 version)
- Functional Program Design (Scala 2 version)
- Parallel Programming (Scala 2 version)
- Programming Reactive Systems (Scala 2 version)
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.
- Introduction to Programming and Problem Solving Using Scala
- Object-Orientation, Abstraction, and Data Structures Using Scala
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 provides detailed tutorials for beginners.
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.