10 Best Elixir Courses for 2024: Pragmatic FP for the Web
Master the language of scalable, fault-tolerant, and concurrent applications with the best FREE and paid Elixir and Phoenix courses.
Quick Access:
- Comprehensive Courses: Course for all Levels, Concise Course for Beginners, Course in Spanish
- Courses for Intermediate Learners: Experienced Programmers, Ruby Developers, For Programmers
- Hands-on: Elixir Exercises, Hands-on Elixir Course
- Others: Textbook, Video Course.
Elixir is as magical as its name sounds.
By magical, I don’t mean that you need to memorize thousands of obscure incantations and syntax rules to use it — far from it (if you like Ruby, you’ll like Elixir). And I also don’t mean that only a select few from the academy of programming wizards can use it effectively — you can count on Elixir’s supportive community of developers and growing ecosystem of tools for that.
Instead, what I mean by magical is by how you can conjure lightning-fast scalable and reliable applications with ease. Its secret ingredient? The Erlang Virtual Machine, specially designed for concurrent systems. And mixed with the functional programming style, you can cast spells of clean and expressive code that is simple to understand and maintain.
That’s why many high-volume applications (like Discord and Pinterest) trust Elixir to handle traffic generated from its millions of users. In fact, systems written in Elixir almost never fail during production thanks to some clever engineering.
Have you fallen under Elixir’s spell yet? Read on more to see my top picks for the best course to learn Elixir, as well as its Ruby on Rails equivalent (and better), Phoenix.
Click on the shortcuts for more details:
- Top Picks
- What is Elixir?
- Resources Overview
- What Next?
- Why You Should Trust Us
- Best Courses Guides (BCG) Methodology
Our Top Picks. Click to skip to the course details:
What is Elixir?
Elixir is a functional, dynamically-typed language designed for building scalable and maintainable applications. It was created by José Valim in 2011, who wanted to combine the concise, expressive syntax of Ruby with the concurrent and fault-tolerant Beam VM used by the Erlang programming language.
To detract for a moment, Erlang is a language developed in the 1980s for the Beam VM that was used to build reliable, distributed systems (such as those used in telecommunications), to great success. It uses the Actor model of concurrency, in which independent entities called actors communicate with each other by sending and receiving messages. Thanks to this model, high-volume concurrency can be achieved while being lightweight.
However Erlang, as it was originally developed for telecommunications, lacked the modern features and syntax needed for modern development. Hence, Elixir builds upon the strength of Erlang by extending its features while at the same time having a much simpler syntax for beginners to read, test, and write code.
That’s why 300+ companies such as Discord, Pepsico, and Heroku use Elixir to handle astonishingly large amounts of traffic and data on a consistent basis with little to no downtime. Along with Elixir’s extensive tooling and frameworks, such as Phoenix for web development, Ecto for databases, and ExUnit for unit testing, there are many reasons why Elixir is a great choice for programmers looking into data-intensive fields. Additionally demand for Elixir developers will probably increase as the world becomes more data-oriented, and perhaps that is why Elixir developers are the 5th most paid programmers according to the Stack Overflow Developer Survey 2023.
And if you speak Portuguese, you may be interested in this recent interview with José Valim, who created Elixir.
Resources Overview
- Some of the courses require basic familiarity with programming
- One course is in Spanish and the others are all in English
- Around 1.2K people are following the Elixir Subject on Class Central.
Best Free Comprehensive Elixir Course for all Levels (Elixir School)
Elixir School is a free, open source text-based resource for learning the Elixir programming language. The reason why I mentioned this course first is because of how comprehensive its curriculum is. It covers the Elixir fundamentals all the way to the more advanced concepts of the language, along with popular Elixir tools and frameworks like OTP and Ecto.
Elixir School can be taken by learners of all levels, and includes examples, explanations, and a collection of coding exercises to help you practice and apply the concepts learned in the lessons. In addition to the core language topics, the course also covers a range of libraries and tools that can be used to test code, process data, store data, and work with databases in Elixir.
You’ll learn these topics and more:
- Basics:
- Programming concepts common to many languages: data types, modules, control structures, functions, and collections
- Unique features of Elixir: pattern matching, the pipe operator, the Mix build tool, sigils, comprehensions, and more, that help you write concise and expressive code
- Intermediate:
- How to handle errors and exceptions in Elixir using control structures and functions
- Concurrency is also made easy in Elixir. Learn about Elixir’s actor module and how it can help you write concurrent, parallel code
- Interoperate Elixir code with Erlang, create standalone executables, and define your own Mix tasks
- Advanced:
- OTP libraries and design patterns, including concurrency, supervisor, and distributions, to help you build scalable and fault-tolerant systems in Elixir
- Other advanced concepts such as metaprogramming, umbrella projects, specifications, types, behaviors, and protocols.
Sean Callan is a passionate software engineer with 20 years of experience. He has built companies, designed and developed critical business systems, and led teams on multi-billion dollar government contracts. Elixir School is fully open-sourced, that means that anyone can contribute to help improve the website, translate the lessons, or write for their blog.
This course has been translated (partially or fully) into 20 languages, including German, Spanish, Mandarin, Russian, and Japanese.
Provider | Elixir School |
Instructor | Sean Callan |
Level | All levels |
Workload | N/A |
Exercises | Code-based exercises |
Certificate | None |
Best Free Concise Elixir Course for Beginners (Tensor Programming)
No knowledge of functional programming or Elixir is required to take the Intro to Elixir YouTube series by Tensor Programming. This course is an excellent introduction to Elixir, as it teaches Elixir in a concise and expressive manner (just like the language itself). Tensor Programming aims to educate people on how to program in many various languages, like Dart, Clojure, Kotlin, Rust, and Go. The channel contains programming tutorials as well as live coding sessions that go along with the Tensor Programming Blog posts.
What you’ll learn:
- The background of Elixir programming language, built on Erlang VM
- Programming concepts: data types, functions, control flow structures
- Introduction to Elixir concepts: pattern matching syntax, guards, macros
- Recursion and first-class functions in Elixir’s functional programming paradigm
- Use the pipe operator to manage large streams of data
- Explore data visibility and abstraction, supporting CRUD operations on immutable data structures
- Understand processes and concurrency in Elixir through message passing
- Implement generic server process using OTP for common tasks including state maintenance and message handling.
Channel | Tensor Programming |
Provider | YouTube |
Level | Beginner |
Workload | 3–4 hours |
Views | 50K |
Likes | 761 |
Exercises | Follow provided examples |
Certificate | None |
Most Comprehensive Free Elixir Course for Spanish Beginners (Martin algañaraz)
Curso de Elixir de 0 a 100 is a free comprehensive introduction to the Elixir programming language in Spanish, teaching the basics all the way to more advanced Elixir.
No knowledge of Elixir programming is required to take this course.
Learn how to:
- Install Elixir and use IEx interactive shell
- Understand basic data types: integers, floats, strings
- Work with data types through assignments, logical operators, pattern matching
- Define and use functions, including anonymous and recursive functions
- Explore advanced topics: pipe operator, modules, mix tool
- Implement concurrent and parallel processes using GenServer
- Learn protocols, behaviors, and custom data types
- Deploy Elixir applications for online access.
Martin is a developer specializing in backend development and distributed systems. He loves learning different programming languages, paradigms, frameworks, and libraries.
Channel | Martin algañaraz |
Provider | YouTube |
Level | Beginner |
Workload | 28 hours |
Views | 8.1K |
Likes | 72 |
Exercises | Follow as the instructor codes |
Certificate | None |
Best Free Structured Elixir Exercise Provider with Mentoring (Exercism)
Exercism is a free online coding platform that offers a variety of programming exercises and challenges for all skill levels. It is a great resource for practicing your Elixir coding skills.
What sets Exercism apart from other exercise-based sites is its free mentoring service, which allows you to request personalized feedback from experienced Elixir programmers if you are stuck on a particular exercise, or help you understand your code’s strengths and flaws and improve your code.
In addition, Exercism has a dedicated learning track for Elixir with a structured syllabus that guides you through a series of exercises designed to teach you the language concepts gradually. This makes it an excellent resource for learning Elixir in a structured, step-by-step manner.
What you’ll learn:
This course is divided into two sections: learning mode and practice mode.
Learning mode:
- Complete learning exercises to unlock other exercises in the syllabus tree. This helps to ensure that you are not presented with problems that are too difficult for your current skill level
- Syllabus contains concepts such as Elixir basics, anonymous functions, data types like floating points and booleans, data structures, conditional statements, regular expressions, and a lot more!
- Each topic starts with a learning exercise, and then some coding exercises of various difficulty to help strengthen what you’ve just learned
- Exercises include easy tasks like creating ciphers to difficult tasks like implementing a basic reactive system.
Practice mode:
- Choose from any exercises of three different difficulties as you feel confident enough to tackle them.
Exercism provides exercises on 70 programming languages including 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.
Provider | Exercism |
Contributors | 290+ |
Mentors | 790+ |
Level | All levels |
Workload | N/A |
Enrollments | 41.9K |
Exercises | 150+ hands-on exercises with automatic feedback plus optional personal mentoring |
Certificate | None |
Best Paid Course for Experienced Programmers (The Pragmatic Studio)
If you’re an experienced programmer who wants to learn Elixir or improve your Elixir skills, Elixir & OTP is for you! The course uses screencasts, animations, text, and exercises to break complex topics down into understandable chunks, and teaches Elixir by building a HTTP server. The Elixir community recommends The Pragmatic Studio courses to be top notch and great value for money.
You will learn:
- Intro and Setup
- Create a mix project watch, high-level transformations watch, pattern watching watch, advanced pattern matching, and pattern matching maps
- Immutable data, function clauses, module attributes and organizing code
- Modeling and data handling
- Modeling with structs, matching heads and tails, recursion, slicing and dicing with enum, and comprehensions
- Web development with Elixir
- A peek at Phoenix, serving files, rendering JSON and web server sockets
- Concurrency and processes
- Concurrent, isolated processes, sending and receiving messages, asynchronous tasks, stateful server processes, refactoring toward GenServer, OTP GenServer, linking processes, fault recovery with OTP supervisors, and a final OTP application.
Provider | The Pragmatic Studio |
Instructors | Mike and Nicole Clark |
Level | Intermediate |
Workload | 6 hours plus exercises |
Exercises | Coding exercises and projects |
Certificate | None |
Also Great Self-Paced Hands-On Elixir Course (DockYard-Academy)
DockYard-Academy has made their previously paid Elixir curriculum on Livebook available for free and open-source. Download the source-code zip file and work on the curriculum in Livebook or GitHub and become a highly qualified Elixir developer.
Learn:
- Fundamentals: basics, data structures and intro to pattern matching, control flow and abstraction, modules and structs, enumeration, comprehensions and non-enumerable data types, string manipulation, recursion
- Mix projects: Elixir build tooling, testing with ExUnit, documentation and static analysis, executables
- Advanced syntax: advanced pattern matching, guarding, protocols, persistence using the file system
- OTP: processes, testing GenServers, supervisor basics and fault tolerance, concurrency with tasks
- Phoenix: HTML And CSS, APIs, relational databases, testing Phoenix, forms and components, Phoenix and Ecto one-to-many associations, and Phoenix authentication
- LiveView: authentication, image uploads, PubSub, JS interoperability and pagination
- Capstone project
- Bonus topics include performance optimization, metaprogramming, queues, and Rubix Cube project.
Channel | DockYard-Academy |
Provider | GitHub |
Level | Beginner |
Workload | 3 months |
Exercises | Hands-on coding exercises |
Certificate | None |
Best Elixir Textbook (Saša Jurić)
If you prefer to learn from a book, or want a paper reference, Elixir in Action by Saša Jurić is THE Elixir book. The third edition was released in February 2024. And although the paper edition is for sale, you can read the entire book online for free!
This book is for programmers comfortable with client/server applications, but you don’t need experience with Elixir, Erlang, or functional programming.
The book is divided into three parts:
- Part 1 Functional Elixir: first steps, building blocks, control flow, data abstractions
- Part 2 Concurrent Elixir: concurrency primitives, generic server processes, building a concurrent system, fault tolerance basics, isolating error effects, beyond genserver
- Part 3 Production: working with components, building a distributed system, running the system.
Publisher | Manning |
Author | Saša Jurić |
Prerequisites | Programming experience with client/server applications |
Level | Beginner |
Workload | 416 pages |
Certificate | None |
Best Elixir and Phoenix Course for Ruby Developers (Phoenix on Rails)
So, you know Ruby on Rails, and want to expand your experience? Phoenix is a web framework built with Elixir and was rated the world’s most admired web framework in the 2023 Stack Overflow developer survey.
You can receive the first part of Phoenix on Rails (learning Elixir) for free, then pay for the other six parts. With the latest version as of 2023 (Elixir 1.16, Phoenix 1.7, and LiveView 0.20.), you’ll receive free course updates whenever they are released. It won’t teach you how to build a web server, but it does a good job of explaining the differences between Ruby and Elixir.
This course will teach you:
- Elixir basics; differences and similarities between Ruby and Elixir
- The functional paradigm: recursion, pattern matching, pipe operator
- Elixir’s types and data structures in terms that make sense to a Ruby developer
- Use Phoenix to build a simple app and learn Ecto to query and update your database
- Discover legacy code to cope with outdated tutorials
- Advanced features include dependency management, Erlang interoperability, and tricky Elixir keywords
- Add features to your CRUD app and study the output of Phoenix scaffolds
- Add interactive behavior to your UI with LiveView, arguably Phoenix’s killer feature
- Document types using typespecs and validate them using Dialyzer and Dialyxir
- Update your Phoenix app to serve a RESTful API via JSON and become adept at creating APIs to serve any front-end application
- Build a new, more advanced app from scratch, plus more. Everything is explained intuitively for Rails developers.
Provider | Phoenix on Rails |
Instructor | George |
Pre-requisites | Ruby on Rails |
Workload | 72 written lessons |
Certificate | None |
Also Great Paid Course for Programmers (The Coding Gnome)
Mastery comes from understanding the underlying concepts, tools, and frameworks. Elixir for Programmers, Second Edition has videos to show you stuff, text to give you facts, quizzes to help you remember, and exercises to let you practice.
Syllabus:
- Welcome and getting started, first project
- Elixir types, pattern matching, coding, write a text-based client
- Refactor the dictionary, processes and maintaining state, use an agent for the dictionary
- Applications: making our code independent
- Add a supervisor to the dictionary
- Nodes and Distributed Elixir
- Hangman: the OTP server, make the Hangman server free-standing
- Distributed text clients
- Installing Phoenix
- Hangman using HTML Pages, introduction to LiveView and Hangman using LiveView.
The course is a little outdated, but you can access an updated version.
Dave Thomas wrote the book Programming Ruby in 2000. More recently, he wrote Programming Elixir and is an author of the Manifesto for Agile Software Development.
Provider | The Coding Gnome |
Instructor | Dave Thomas |
Level | Beginner |
Workload | 9 hours plus exercises and quizzes |
Certificate | None |
Also Great Elixir Video Course (freeCodeCamp)
By the end of Functional Programming with Elixir, you’ll be able to build your own Elixir applications and confidently apply functional programming concepts. Released in May, 2023, it’s designed for anyone with some basic knowledge of programming.
What you’ll learn:
- What are Elixir, functional programming, and recursion?
- Installing Elixir & setting up VS code
- Learning & unlearning, pattern matching, LiveBook, and immutability
- Hello World in Elixir
- Data Types: atom, string, charlist, process & list, tuples & keyword list, maps, struct
- Flow control, mix project, head & tail recursion, sum digits, factorial, reverse number
- Lists: LinkedList, list sum, reverse list,list map
- Concat, FlatMap, mid review, seven wonders, for comprehension, expense manager
- Project stats
Find the GitHub files for the course here.
Provider | YouTube |
Channel | freeCodeCamp |
Instructor | Octallium |
Level | Beginner |
Views | 87K |
Workload | 5 hours |
Exercises | Follow as the instructor codes |
Certificate | None |
What Next?
- Join community forums to ask and answer questions about Elixir
- Keep practicing and using Elixir so your new-found knowledge doesn’t get rusty.
Why You Should Trust Us
Class Central, a Tripadvisor for online education, has helped 60 million learners find their next course. We’ve been combing through online education for more than a decade to aggregate a catalog of 200,000+ online courses and 200,000 reviews written by our users. And we’re online learners ourselves: combined, the Class Central team has completed over 400 online courses, including online degrees.
Best Courses Guides (BCG) Methodology
I built this guide 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:
- Research: I started by leveraging Class Central’s database and the internet. Then, I made a preliminary selection of Elixir courses by rating, reviews, and bookmarks.
- 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.
- Select: Well-made courses were picked if they presented valuable and engaging content. Selection criteria includes comprehensive curriculum, affordability, release date, ratings and enrollments.
Pat revised the research and the latest version of this article.