The Scala Center produces online courses (a.k.a. MOOCs) of various levels, from beginner to advanced.
If you are a programmer and want to learn Scala, there are two recommended approaches. 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 (covering advanced topics such as big data analysis and parallel programming) and a capstone project.
You can learn more about the courses in the following video:
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.
On all the platforms the full material is always available online. It includes video lectures, text articles, quizzes, and auto-graded homeworks. All the platforms also provide discussion forums where you can exchange with the other learners.
The difference between the Extension School and the other platforms is that it provides live meetings with instructors, and code reviews by Scala experts.
On the other hand, on Coursera or edX it is possible to take our courses for free (a.k.a. “audit” mode). Optionally, a subscription gives you access to a certificate of completion that attests your accomplishments.
Learn more about Coursera certificates, edX certificates, or Extension School certificates. Note that your subscriptions also supports the work of the Scala Center, whose mission is to create high-quality educational material.
If you prefer learning in autonomy, we recommend you to choose the Coursera or edX platform, but if you are looking for more support, we recommend you to choose the Extension School. Here is a table below that compares the learning platforms:
|Coursera / edX (audit)||Coursera / edX (subscription)||Extension School|
|Video lectures, quizzes||Yes||Yes||Yes|
|Price||$0||$50 to $100 per course||$420 per month|
|Certificate of completion||No||Yes||Yes|
|Supports the Scala Center||No||Yes||Yes|
|30 min of live session with instructors per week||No||No||Yes|
|Code reviews by Scala experts||No||No||Yes|
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 2 Courses
The above courses all use Scala 3. 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)
- Big Data Analysis with Scala and Spark (Scala 2 version)
- Programming Reactive Systems (Scala 2 version)
Other Online Resources
You can find other online resources contributed by the community on this page.