Disclosure: Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Best Courses Guides

7 Best Erlang Courses to Take in 2023

Here is a guide with the best online courses (including free ones) to learn Erlang, a programming language designed for building scalable, fault-tolerant systems.

WhatsApp. Cisco. GoDaddy. IBM. Heroku. What do they all have in common?

They all use Erlang in their technology stack!

Erlang is a programming language specifically designed for building scalable, fault-tolerant systems that can run smoothly in a distributed environment. Its unique approach to concurrency and message-passing makes it ideal for building real-time, high-traffic systems like WhatsApp’s messaging platform, Cisco’s networking equipment, GoDaddy’s hosting services, IBM’s cloud offerings, and Heroku’s platform as a service. In fact, 90% of all internet traffic goes through Erlang controlled nodes.

Want to find out and learn more about this (kind of) unknown yet powerful language? Continue reading to see my picks for the best Erlang courses. Click on one to skip to the course details:

Course Workload In Brief
1. Erlang Tutorial (Erlang Tutorial) 8–9 hours Best free comprehensive video tutorial to learn Erlang
2. Erlang Master Classes (University of Kent) 4 hours Best free course for beginner Erlang programmers to master practical Erlang
3. Introduction to Erlang Programming (CodeRed) 4 hours Best short yet sweet introductory Erlang course
4. Learn You Some Erlang for Great Good! (Frederic Trottier-Hebert) N/A Best free comprehensive text-based Erlang tutorial
5. Erlang University (erlang.org) N/A Best free text-based Erlang course with exercises
6. Modern Erlang for Beginners (Roberto Ostinelli) 3–4 hours Best alternative to 3 with real-world examples.
7. Erlang (Exercism) N/A Best free exercise provider to practice Erlang

What is Erlang?

Erlang is a general-purpose functional programming language and runtime environment developed by Ericsson, a Swedish telecommunications company, in the 1980s. The team needed a programming language that can handle telephone switching — a very difficult endeavor that requires high levels of concurrency and zero downtime (I’m sure you can imagine why).

After experimenting with dozens of different languages, they came to a stark conclusion: no such language exists! Instead of giving up or settling for compromises, they instead decided to create their own programming language.

Hopefully that brief history lesson gave you some context for why Erlang is known for two things: its practical concurrent programming and its robust virtual machine.

Erlang is a functional programming language for all the right reasons — scalability and concurrency. It has a lightweight threading model (which Rust also uses) and a powerful process-based runtime system. Companies like WhatsApp and Heroku are able to scale and handle millions of concurrent connections in real-time thanks to Erlang.

Also, the Erlang virtual machine (BEAM) is legendary for its fault-tolerance. The language has built-in support for handling failures, like automatically restarting processes and recovering from crashes. For mission-critical systems, you can be rest assured that your applications will continue running 24/7 even when things eventually go wrong.

In addition to its concurrency and fault tolerance features, Erlang is also a highly expressive language that allows you to write concise and elegant code. It has a simple syntax and a rich set of libraries, like the Open Telecom Platform, making it easy to learn and use.

Unfortunately, there are not enough developers in the world that know Erlang, even though Erlang developers are highly sought after. That’s why Erlang is the second highest paying programming language to learn (after Clojure) according to the Stack Overflow Developer Survey 2022. So why not become one of them? Whether you’re building a web application, a real-time messaging system, or a distributed database, Erlang is a worthy choice for building reliable, scalable systems.

Find your next course.

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:

  1. Research: I started by leveraging Class Central’s database with 100K online courses and 200K+ reviews. Then, I made a preliminary selection of Erlang courses by rating, reviews, and bookmarks.
  2. 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.
  3. Select: Well-made courses were picked if they presented valuable and engaging content and they have to fit in a set of criteria and be ranked accordingly: comprehensive curriculum, affordability, release date, ratings and enrollments.

Course Ranking Statistics

Here are some aggregate stats about the ranking:

  • Around 100 people are following Erlang Topic on Class Central
  • Five of the courses in this ranking are free.
  • All except for one course do not require any Erlang or functional programming experience whatsoever.
  • Some programming experience with other languages is required to take the courses in this ranking.

Without further ado, let’s go through the top picks.

1. Erlang Tutorial (Erlang Tutorial)

My #1 pick for the best course to learn Erlang is the Erlang Tutorial playlist.

I chose this course as my top pick because it is both recent and comprehensive. Plus, the video tutorials teach Erlang through interactive programming and examples. By the end of this tutorial, you’ll have a well-grounded understanding of the Erlang programming language.

Some prior knowledge of programming is required to take this course.

What You’ll Learn

In this tutorial, you’ll start by learning the tools and vocabulary of the Erlang programming language. You’ll write a simple “Hello, World” module and compile it to get a feel for the Erlang syntax and structure. You’ll then delve into common programming concepts such as data types, control structures, and functions, but with a functional and concurrent twist specific to Erlang.

One of the key features of Erlang is its use of processes to execute code concurrently (fun fact, millions of processes can run at the same time!). You’ll learn how to spawn and manage them. Other functional programming concepts will be explored too, such as recursion, anonymous functions, and higher-order functions. Along with other concepts like atoms, comprehensions, and pattern matching, you’ll have the skills to write efficient and scalable code.

In addition to these foundational topics, you’ll study more advanced constructs in Erlang. You’ll learn how to use maps and processes together to build a simple key-value database that can perform basic data operations. You’ll also learn about error handling in Erlang, and how to design your code to continue running even when errors occur. And to give you some practical examples, you’ll implement a palindrome checker and Conway’s game of life in Erlang, giving you the opportunity to apply your knowledge to real-world problems.

How You’ll Learn

This course is 8–9 hours long. You’ll learn by watching the lecture videos and following along with the instructor as he codes interactively using the Erlang shell.

Channel Erlang Tutorial
Provider YouTube
Instructors Michal
Level Beginner
Workload 8–9 hours
Views 17K
Certificate None

Fun Facts

  • Mysteriously, I’m not able to find any information on the author of the playlist, apart from that his name is Michal and that he is Polish.
  • He cites Programming Erlang on various occasions in this course.

If you’re interested in this course, you can find more information about the course and how to enroll here.

2. Erlang Master Classes (University of Kent)

My 2nd pick for the best Erlang course are the Erlang Master Classes from the University of Kent.

This free course comprises three master classes taught by esteemed Erlang programmers (one of them even helped invent Erlang). Each class focuses on different aspects of Erlang — functional programming, concurrent programming, and larger-scale programming with OTP — are used to solve complex real-world problems through case studies and examples. By the end of the course, you’ll know how Erlang is used practically.

The course assumes you have some basic familiarity with Erlang (watch the first video of the first masterclass to know more).

What You’ll Learn

The first master class focuses on language processing in general, with a focus on processing arithmetical expressions in Erlang. This will include how to interpret, compile, and run the expressions on a virtual machine, as well as simplifying and converting them to and from a textual form.

In the second master class, you’ll understand how Erlang does concurrent programming in Erlang through the ‘share nothing’ concurrency model. You’ll learn how to make sequential code concurrent and how to build systems using communicating processes. You’ll also cover Erlang’s famous approach to fault tolerance and how errors can happen while still keeping the program running.

Erlang has a wide ecosystem of tools and libraries — that’s what makes Erlang great. But, the most important tool for servers is arguably the The Open Telecom Platform (OTP). Hence in the final master class, you’ll explore OTP in depth, taking a look at its generic behaviors (such as a generic server) and how it can be used to build complex systems quickly and reliably, in addition to packaging and releasing systems.

How You’ll Learn

The master classes are presented by Joe Armstrong, Ericsson AB and KTH, Stockholm, and one of the inventors of Erlang; Francesco Cesarini, CTO and founder of Erlang Solutions Ltd; and Simon Thompson, functional programming teacher and researcher at the University of Kent. Each Master Class ends with a discussion between the three presenters on some of the issues raised by the Master Class.

Institution University of Kent
Instructors Joe Armstrong, Francesco Cesarini, Simon Thompson
Level Intermediate
Workload 4 hours
Certificate None

Fun Facts

  • This MOOC was created to celebrate the university’s 50th anniversary. It highlights the university’s successes and points to where it might go in the future.
  • Joe Armstrong is one of the “gang of three” Erlang inventors, and a champion of the Erlang approach to programming large complex systems. He has worked for Ericsson, as well as in startups, and is also professor at KTH, Stockholm.
  • Francesco Cesarini is the founder and Technical Director of Erlang Solutions Ltd, the company focused on building scalable, reliable systems based on Erlang / OTP.
  • Simon Thompson is a professor of Logic and Computation at the University of Kent. He has been a teacher and researcher in functional programming for most of his career.

If you’re interested in this course, you can find more information about the course and how to enroll here.

3. Introduction to Erlang Programming (CodeRed)

My third pick for the best Erlang course is Introduction to Erlang Programming.

This paid course is an excellent introduction for programmers looking to master the Erlang language. By the end, you’ll be able to build a system that uses functional concurrent programming to achieve scalability and reliability while still being easy to understand, debug, and maintain.

You’ll need basic programming knowledge and a MacOS or Linux system to take this course.

What You’ll Learn

The course starts by introducing you to the Erlang Shell, where you can get hands-on experience with the language by evaluating expressions and compiling modules. Then, you’ll delve into the world of functional programming in Erlang, including concepts such as pattern-matching and recursion. You’ll see how these functional programming techniques can be combined with concurrent programming to take advantage of Erlang’s efficient concurrency model using message-passing processes.

Next, you’ll cover how to handle errors in your Erlang program, both sequentially and concurrently, to ensure that it can continue running smoothly even in the face of unexpected issues. You’ll also learn about OTP that provides a powerful library and tools for building distributed systems. Finally, the course explores modern Erlang development practices and introduces you to Rebar3, a popular build and package management tool for Erlang.

How You’ll Learn

This course is 4 hours long. You’ll learn by watching the lecture videos chapter-by-chapter, with each chapter ending with a summary.

Provider CodeRed
Instructor Brujo Benavides Rodriguez
Level Beginner
Workload 4 hours
Certificate Paid

Fun Facts

  • Brujo Benavides Rodriguez is a long-time Erlang developer and trainer. He is a maintainer of multiple open-source projects and a member of the Education Working Group at the EEF. He has also worked as a trainer for 5 years at Inaka and Erlang Solutions, delivering Erlang lessons to individuals and teams around the world.

If you’re interested in this course, you can find more information about the course and how to enroll here.

4. Learn You Some Erlang for Great Good! (Frederic Trottier-Hebert)

Learn You Some Erlang for Great Good! is a free comprehensive text-based Erlang tutorial, based on another well-received tutorial of similar name, Learn You a Haskell for Great Good!.

It is for people who have basic knowledge of programming in imperative languages but are unfamiliar with functional programming. You’ll explore how Erlang is very pragmatic in its approach to functional programming, and how it results in robust, concurrent, distributed systems.

What You’ll Learn

You’ll start by exploring the basics of the language, like variables, data types, and conditional statements. And since the language follows the functional paradigm, you’ll learn how to solve problems the functional way, using concepts like recursion and higher order functions.

Next, you’ll delve into the concepts of concurrency in Erlang and learn how to use processes, message passing, and other techniques to build concurrent systems. You’ll also learn about OTP (Open Telecom Platform), a set of libraries and tools for building distributed and fault-tolerant systems in Erlang. And this fault-tolerance can only be resolved through smart error and exception handling.

Data structures and algorithms appear everywhere in software, and Erlang is no exception. You’ll use them to solve common problems. You’ll also learn about working with sockets and networking, along with event handlers and supervisors.

Finally, you’ll learn about testing and debugging in Erlang, including how to use tools such as EUnit to test your code and how to release and deploy Erlang applications.

How You’ll Learn

This tutorial consists of 36 chapters. You’ll learn by reading through the many chapters and implementing the code given in the course on your system.

Website learnyousomeerlang.com
Instructor Frederic Trottier-Hebert
Level Beginner
Workload N/A
Certificate None

Fun Facts

  • Frederic Trottier-Hebert is a French-Canadian working as a site reliability engineer at honeycomb.io. He owns a blog.
  • He has also written other books / tutorials like ‘Erlang in Anger’ and ‘Property Based Testing with PropEr, Erlang, and Elixir’.

If you’re interested in this course, you can find more information about the course and how to enroll here.

5. Erlang University (erlang.org)

Erlang University is the official Erlang course from the Ericsson OTP Team. This free text-based course covers Erlang from its history, to the basics parts of Erlang as well as to the advanced.

However, this course is quite bare, so be sure to supplement this course with other courses, the course’s own exercises, and Erlang’s discussion forums.

Programming experience is needed to take this course.

What You’ll Learn

This course is divided into 5 modules.

First, you’ll take a short look at the history of Erlang to understand and appreciate the motivations and design principles behind its creation. Then, you’ll start with the basics of sequential programming which follows the style of many other languages where code is run on a single thread. This will include learning basic programming concepts as well as Erlang’s functional programming capabilities.

Next, you’ll get to the exciting part of Erlang: concurrent programming. You’ll understand how to use processes, lightweight concurrent units of execution that can run alongside other processes. You’ll also learn how errors can propagate through processes and how to handle them when they occur. Lastly, the course ends by covering a few tricky topics and quirks in the Erlang language.

How You’ll Learn

According to the course description, this course will take 4 days to complete, but that can vary depending on your current skill. You’ll learn by reading through the course modules and completing the exercises to help you put into practice what you’ve learned.

Provider erlang.org
Level Beginner
Workload N/A
Certificate None

If you’re interested in this course, you can find more information about the course and how to enroll here.

6. Modern Erlang for Beginners (Roberto Ostinelli)

Modern Erlang for Beginners is a paid Udemy course that provides a simple and concise introduction to Erlang.

To take this course, you should have some experience with another programming language.

What You’ll Learn

You’ll begin by installing and setting up Erlang on your PC, using the IntelliJ IDE. Then, you’ll learn Erlang basics, especially how to think in Erlang, like variables, control structures, data types, and data structure, as well as taking a careful look at functions, guards, and patterns in the context of functional programming.

Erlang is known for its ability to handle concurrent processing, and you’ll learn how it achieves this through processes, messages, and other techniques to build distributed systems. To further illustrate these concepts, you’ll examine a real-world example of a bank system. Finally, you’ll explore how to improve the bank example using the tools and libraries provided by the Open Telecom Platform (OTP) and learn best practices for Erlang development.

How You’ll Learn

This course is 3–4 hours long. You’ll learn by watching the lecture videos, taking notes of the code examples, and completing the course exercises.

Provider Udemy
Instructor Roberto Ostinelli
Level Beginner
Workload 3–4 hours
Enrollments 655
Rating 4.6 / 5.0 (157)
Certificate Paid

Fun Facts

  • Roberto Ostinelli is an experienced software developer with over a decade of professional experience using Erlang. He provides training to developers on how to build massively scalable systems using Erlang and Elixir, with a focus on TDD and agile methodologies.

If you’re interested in this course, you can find more information about the course and how to enroll here.

7. Erlang (Exercism)

Exercism is an excellent resource for improving your coding skills in Erlang. It is a free online coding platform that not only offers a variety of programming challenges and exercises for all skill levels, but it also provides a free mentoring service where you can request personalized feedback from experienced Erlang programmers for a particularly challenging exercise.

What You’ll Learn

The course consists of three difficulties: easy, medium, and hard.

Easy exercises consist of tasks like determining the geometric type of a triangle, finding the prime factors of a number, and implementing basic lists operations.

For medium difficulty exercises, you’ll calculate the date of meetups, add numbers to a  minesweeper board, and detect saddle points in a matrix.

Hard exercises include creating a zipper for a binary tree, returning a square matrix of a number in spiral order, and making a chain of dominoes.

How You’ll Learn

This course is self-paced, so you can take all the time you need to complete the 70+ hands-on programming exercises. Each exercise comes with automatic feedback of your code as well as personal mentoring to help you understand your code’s strengths and flaws.

Provider Exercism
Level All levels
Workload N/A
Enrollments 32K
Certificate None

Fun Facts

  • Exercism provides exercises on 50+ programming languages like Python, Kotlin, F#, and even WebAssembly.
  • Their mission is to help everyone get really good at programming, regardless of their background, share the love of programming, and help people upskill as part of their upward social mobility.
  • Around 60 people have contributed towards the Erlang syllabus and exercises, with over 60 mentors available at the time of writing.

If you’re interested in this course, you can find more information about the course and how to enroll here.

Elham Nazif Profile Image

Elham Nazif

Part-time content writer, full-time computer science student.

Comments 0

Leave a reply

Your email address will not be published. All comments go through moderation, so your comment won't display immediately.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Browse our catalog

Discover thousands of free online courses from top universities around the world like MIT, Stanford, and Harvard.

Browse all subjects