Scala Programming Online Course

"This post contains affiliate links, which means that if you click on them and make a purchase, I may receive a small fee at no extra cost to you."

Close up iPhone showing Udemy application and laptop with notebookScala is a programming language that has gained popularity among developers due to its ability to handle complex tasks, provide concise and expressive code, and run efficiently on the Java Virtual Machine. As a result, there is a growing demand for Scala courses online that cater to individuals looking to learn or enhance their skills in this language. This article examines some of the best Scala courses available on the internet and the features that make them stand out as top contenders in the field.

Here’s a look at the Best Scala Courses and Certifications Online and what they have to offer for you!

Scala Programming Online Course

1. Apache Spark with Scala – Hands On with Big Data! by Sundog Education by Frank Kane, Frank Kane, Sundog Education Team (Udemy) (Our Best Pick)

The course Apache Spark with Scala – Hands On with Big Data! is offered by Sundog Education and taught by Frank Kane and the Sundog Education Team. The course includes over 20 hands-on examples for analyzing large datasets using Apache Spark, both on desktop and on Hadoop with Scala. The course is updated for Spark 3, IntelliJ, Structured Streaming, and a stronger focus on the DataSet API. The course is designed to teach skills in hot and highly valuable big data analysis technology. Employers such as Amazon, EBay, NASA JPL, and Yahoo use Spark for the same purposes. The course provides a crash course in Scala programming language for beginners and also offers a Python version for those familiar with Python. The course covers the concepts of Spark’s Resilient Distributed Datasets, DataFrames, and Datasets. It allows students to develop and run Spark jobs quickly using Scala, IntelliJ, and SBT. It also provides techniques to translate complex analysis problems into iterative or multi-stage Spark scripts. Students learn to scale up to larger data sets using Amazon’s Elastic MapReduce service and understand how Hadoop YARN distributes Spark across computing clusters. The course includes hands-on experience in Spark SQL, DataFrames, DataSets, Spark Streaming, Machine Learning, and GraphX. By the end of the course, students will run code that analyzes gigabytes worth of information in the cloud in minutes. The course is very hands-on, where students will write, analyze, and run real code together with the instructor on their own system and on the cloud using Amazon’s Elastic MapReduce service. The course provides over 8 hours of video content and over 20 real examples of increasing complexity. The course wraps up with an overview of other Spark-based technologies, including Spark SQL, Spark Streaming, and GraphX.

2. Scala & Functional Programming Essentials | Rock the JVM by Daniel Ciocîrlan (Udemy)

This is a course titled Scala & Functional Programming Essentials offered by Rock the JVM and taught by Daniel Ciocîrlan. The course is designed to teach fundamental concepts in Scala and functional programming that are highly in demand in the software industry today. It involves writing over 3000 lines of Scala code through 100+ examples and exercises. The course is updated for Scala 3 and is fully compatible with both Scala 2 and Scala 3.

Scala is currently the most popular language based on the Java Virtual Machine, with a high demand for Scala jobs. It also offers significantly higher pay than same-level Java positions. Scala is an enjoyable language to learn and unlocks the doors to the latest technologies such as Spark, Akka, and more.

The course deconstructs Scala into critical pieces, selects important concepts, and sequences ideas in a way that makes sense throughout the learning process. The course applies everything in live Scala code. The end benefits of the course include a significant bump in salary when switching to Scala, more enjoyable work, and future-proof skills.

This course is intended for established programmers with little to no experience in Scala or functional programming. It assumes a solid understanding of general programming fundamentals. The course is comprehensive, but the instructor gets straight to the point. Focus and commitment are necessary to become a successful programmer.

The course includes lectures with code examples, real-life Scala code demos and assignments, additional resources, instructions, exercises, and solutions. The instructor offers opinionated guidance but otherwise freedom to experiment and improve upon students’ Scala code. Fun is also an important aspect of the course.

The course is divided into four sections: Welcome, The Absolute Scala Basics, Object-Oriented Programming in Scala, Functional Programming in Scala, and Pattern Matching.

3. Scala and Spark for Big Data and Machine Learning by Jose Portilla (Udemy)

This course titled Scala and Spark for Big Data and Machine Learning is instructed by Jose Portilla. The short description of the course states that it teaches the latest Big Data technology, Spark and Scala including Spark 2.0 DataFrames. The course is aimed at providing knowledge on how to utilize Scala and Spark to analyze Big Data.

The course teaches the two most in-demand skills: Scala and Spark. It offers a Crash Course in Scala Programming and provides an overview of Spark and Big Data Ecosystem. It also teaches using Spark’s MLlib for Machine Learning, scaling up Spark jobs using Amazon Web Services, and using Databrick’s Big Data Platform. The course offers full projects including analyzing financial data and using machine learning to classify Ecommerce customer behavior.

The teachings of the course are based on the latest methodologies of Spark 2.0, such as SparkSQL, Spark DataFrames, and Spark’s MLlib. Upon completion of the course, the learner will be able to include Scala and Spark on their resume.

The course is divided into sections that include course introduction, Scala IDE options and overview, set-up and installation for Windows, Mac OS, and Linux (Ubuntu). It also has Scala programming levels one and two, Spark DataFrames with Scala, introduction to Machine Learning, regression with Spark, classification with Spark, model evaluation, clustering with Spark, PCA with Spark, and a bonus section.

Overall, the course provides an opportunity to learn valuable tech skills, Scala and Spark, in an easy and quick way.

4. Streaming Big Data with Spark Streaming and Scala – Hands On by Sundog Education by Frank Kane, Frank Kane, Sundog Education Team (Udemy)

The Streaming Big Data with Spark Streaming and Scala course, offered by Sundog Education and instructed by Frank Kane, provides a comprehensive tutorial on Spark Streaming technology. The course covers topics such as Spark Structured Streaming, Kafka integration, and analyzing big data in real-time. The course duration is almost 6 hours, consisting of over 30 lectures.

The course is designed to provide hands-on learning by enabling the students to work with real live Twitter data, simulated streams of Apache access logs, and data used for machine learning model training. The course covers topics such as setting up discretized streams, using structured streaming to stream into dataframes in real-time, analyzing streaming data over a sliding window of time, and maintaining stateful information across streams of data.

The course also includes learning how to connect Spark Streaming with scalable sources of data, such as Kafka, Flume, and Kinesis, and how to dump streams of data in real-time to NoSQL databases like Cassandra. The course covers running SQL queries on streamed data in real-time, training machine learning models in real-time, and using them to make predictions that improve over time. The course also covers packaging, deploying, and running self-contained Spark Streaming code to a real Hadoop cluster using Amazon Elastic MapReduce.

The course is designed to be very hands-on, with activities and exercises included to reinforce learning. The course is structured into sections such as Getting Started, A Crash Course in Scala, Spark Streaming Concepts, Spark Streaming Examples with Twitter, Spark Streaming Examples with Clickstream / Apache Access Log Data, Integrating with Other Systems, Advanced Spark Streaming Examples, and Spark Streaming in Production.

By the end of the course, students will have the skills and knowledge to confidently create Spark Streaming scripts in Scala and analyze massive streams of data in real-time. The course is instructed by an ex-engineer and senior manager from Amazon and IMDb, ensuring that the students receive high-quality education.

5. Advanced Scala and Functional Programming | Rock the JVM by Daniel Ciocîrlan (Udemy)

The Advanced Scala and Functional Programming | Rock the JVM course is designed for experienced Scala programmers who want to take their skills to the next level. The course covers the advanced concepts and techniques used by the top 1% of Scala developers. Students will write more than 2000 lines of Scala code with guidance to become a top-level programmer.

The course is suitable for Scala developers who need to design complex, scalable systems, customize existing tools, or write their own. Scala is a high-demand language that offers significantly higher pay than Java positions. Moreover, it is a fun language to learn and will equip students with the skills to work with cutting-edge technologies such as Spark and Akka.

The course is comprehensive and deconstructs advanced Scala concepts into critical pieces, selecting the most important ideas and sequencing them in a way that makes sense to learners. This approach ensures that learners achieve a completely new level of skill with the Scala language and enjoy more enjoyable work, among other benefits.

The course is designed for established programmers who have experience with Scala and functional programming at the level of the Rock the JVM Scala beginners course. The course is comprehensive and requires a good level of focus and commitment from learners. The course includes lectures with code examples, real-life Scala code demos and assignments, additional resources, instructions, exercises, and solutions.

The course emphasizes guidance rather than being told what to do. The instructor offers assignments that allow learners to experiment and improve upon their Scala code. The course promises to be enjoyable and is suitable for learners who want to take their skills to the next level and work in top-class companies such as Google. The course is divided into sections that cover topics such as functional concurrent programming, mastering the type system, and advanced functional programming.

6. Scala Applied, Part 1 by Dick Wall (Udemy)

Scala Applied, Part 1 is a course that provides an introduction to programming in the Scala language. The course is divided into six modules, which cover core syntax and concepts, including classes, objects, instances, function literals, higher order functions, custom control structures, and more. By the end of the course, students will be able to use the Scala Interactive Shell (REPL) for experimentation, understand Scala’s type inference, and start down the path of a more functional style of programming. The course is half theory and half practice, with hands-on coding exercises built around test-driven development examples.

Stairway to Scala Applied aims to provide a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections. It is intended to accelerate students’ Scala learning curve and make them able to use Scala productively by the end of the course. Unlike other courses that teach a specific aspect of the Scala language, Stairway to Scala Applied provides a comprehensive overview of the language and its applications.

The course is taught by two highly experienced Scala developers who use Scala on a daily basis for real world commercial projects. Most of the lectures are practical demonstrations accompanied by a slide, and the slide deck can be downloaded for reference. The lectures are also presented using Udemy mashups, so the slide and practical demo can be switched between at will.

The course is divided into six modules, starting with an introduction and exercise section, followed by Scala 101 and worksheets, classes, objects, apps, and more. The final module covers custom control structures, after which the course concludes. If students complete all three parts, with all the exercises, they will have practical skills and comfort to code in Scala. The course aims to provide students with a strong grounding in the language theory, as well as the tools necessary to do so.

7. Akka Essentials with Scala | Rock the JVM by Daniel Ciocîrlan (Udemy)

The Akka Essentials with Scala course offered by Rock the JVM aims to teach the Akka actor model using Scala, with a focus on writing parallel, concurrent, and fault-tolerant systems. The course is designed for Scala programmers looking to design complex and scalable concurrent applications, and those who want to enhance their marketable skills. The course promises to deconstruct all concepts into critical pieces, select the most important ideas, and sequence them in a way that makes sense throughout the learning process. The course also offers a new mental model around parallel applications and helps in developing a significantly more marketable resume.

The course is not for beginners in Scala or those who have never worked with threads. To benefit from the course, students must have experience with functional programming at the level of the Rock the JVM Scala beginners course, and a solid understanding of general programming fundamentals. The lectures cover both theory and practice, with code examples, real-life code demos, assignments, resources, exercises, and solutions. The course aims to guide the students, but not tell them what to do, and allows freedom to experiment and improve upon their code.

The course consists of six sections, starting with a welcome section, followed by the Scala and Parallel Programming Recap, Akka Actors, Testing Akka Actors, Fault Tolerance, Akka Infrastructure, and Akka Patterns. Students are expected to write over 2000 lines of Akka code themselves, with guidance, and become a rockstar. The end result would be a fun and enjoyable learning experience, leading to more marketable skills, a new mental model, and thousands of lines of Akka code.

8. Learn By Example: Scala by Loony Corn (Udemy)

The Learn By Example: Scala course offered by Loony Corn provides 65 examples to help learners understand and trust the Scala programming language. Scala is a popular language for big data applications, known for its sophistication and elegance compared to Java. However, the course acknowledges the reliability of Java as a language.

Each of the 65 examples in the course is self-contained and includes source code, demonstrating a specific use-case of Scala. The examples are designed to be simple but not simplistic, helping learners to understand and appreciate the language.

The course is structured to cover various aspects of Scala, including the reason for the language’s need in comparison to Java, the little details that matter like pattern matching and for loops and yield, as well as first-class functions which are the foundation of functional programming support.

The course also covers collections like lists and options, the different details of fold/reduce/shift in Scala, and classes, companion objects, traits, self-types, and dependency injection, which are Scala’s way of providing object-oriented support. The course content is broken down into six sections, each focusing on a specific aspect of the language.

Overall, the Learn By Example: Scala course provides a comprehensive and practical approach to learning Scala, aimed at making the language a reliable and steady friend to learners.

9. Scala Applied, Part 2 by Dick Wall (Udemy)

The Scala Applied, Part 2 course is designed to provide an introduction to programming in the Scala language, with a focus on Scala features that are unique or different from other languages. This course is intended to follow on from Part 1, and includes topics such as composition and inheritance, abstract classes and members, overriding and overloading methods, factory methods, and DSLs.The course covers various topics related to Scala programming, such as creating abstract classes and pure abstract members, calling superclass constructors and methods, and using parametric fields. Additionally, students will learn how to write correct equals and hashCode methods, use traits to mix behavior into classes, and understand the different styles of packages and visibility modifiers. The course also covers pre- and post-conditions and unit testing.The course is divided into five modules, with the first module providing an introduction to the course and exercises. Module 7 covers composition and inheritance, while Module 8 covers hierarchy, types, and options. Module 9 focuses on traits, and Module 10 covers packages, imports, and scope. The final module, Module 11, focuses on testing in Scala.Overall, the Scala Applied, Part 2 course is designed to provide students with a comprehensive understanding of Scala programming, with a focus on features that are unique to Scala or different from other languages. Students will gain valuable knowledge and experience in creating abstract classes, overriding methods, and using traits, among other topics. The course is ideal for those who have completed Part 1 and want to continue their learning journey in Scala programming.

10. Beginning Scala Programming by Infinite Skills (Udemy)

The Beginning Scala Programming course, offered by Infinite Skills, is designed for individuals with some programming experience who are interested in gaining a thorough understanding of the Scala programming language.

The course covers the foundational concepts of Scala, beginning with the basics of sequences, recursion, and nesting functions. Students will then progress to learning about the object-oriented aspects of Scala, including linearization of trait methods, building and writing with XML, and libraries for unit testing.

The video tutorial also covers advanced topics such as text processing, parallelism and actors, and provides students with the opportunity to work with a MUD project.

Upon completion of the course, students will have developed a solid working knowledge of Scala and will be equipped to start their own Scala-based project. Working files are provided to allow students to follow along with the author throughout the lessons.

The course is divided into nine sections, including an introduction and conclusion, as well as sections on language basics, object-oriented Scala and the MUD project, unit testing, XML, text processing, and parallelism and actors.