Learning resources

Our website provides a Getting Started guide to learn more about Elixir’s foundations and explore how to build projects with Mix and OTP. Elixir also includes extensive API documentation. If you already know Erlang and you want to know Elixir (or vice-versa), check out our Crash Course for Erlang developers.

Outside of our website, the Elixir Community has also produced plenty of resources to explore Elixir from different backgrounds and other perspectives. We are sure you will find a resource that suits your pace and goals.

Books

Programming Elixir 1.6

Programming Elixir cover

This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.6 and beyond. Explore functional programming without the academic overtones (tell me about monads just one more time). Create concurrent applications, but get them right without all the locking and consistency headaches.

Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it’s Elixir.

Elixir in Action

Elixir in Action cover

Elixir in Action is a tutorial book that aims to bring developers new to Elixir and Erlang to the point where they can develop complex systems on their own. No knowledge about Elixir, Erlang, or functional programming is required, but it is assumed that a reader has a few years of production experience using mainstream OO languages, for example C#, Java, Python, or Ruby.

The book starts with a basic introduction to the Elixir language and functional programming idioms. The central part of the book deals with Erlang VM and OTP, discussing topics such as concurrent programming, fault-tolerance, and distributed systems. Finally, you’ll learn how to package your code into components, create a standalone deployable release, and troubleshoot the running system. The theory is demonstrated through a simplistic example that is gradually expanded throughout the book into a fully standalone releasable system.

Adopting Elixir

Programming Elixir cover

Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you’re going to need to know more than just the language. You need the case studies and strategies in this book.

Learn the best practices for the whole life of your application, from design and team-building, to managing stakeholders, to deployment and monitoring. Go beyond the syntax and the tools to learn the techniques you need to develop your Elixir application from concept to production.

The Little Elixir and OTP Guidebook

The Little Elixir and OTP Guidebook cover

The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you’ll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Come rediscover the joy of programming with Elixir and remember how it feels like to be a beginner again.

Elixir School

Elixir School

Elixir-School is an open and community driven effort inspired by Twitter’s Scala School. The site’s content consists of peer-reviewed lessons on various Elixir topics that range in difficulty. The lessons are currently available in over 10 languages to help make programming Elixir more accessible to non-English speakers.

Joy of Elixir

Joy of Elixir

Joy of Elixir is a gentle introduction to programming, aimed at people who already know some things about computers, but who have little-to-no programming experience.

This book will teach you the core concepts of the Elixir programming language in a fun and enjoyable way. If you’re completely new to programming and you want to learn how to make a computer do things using the power of programming and you want to experience some joy while doing it, then read this book!

Learn Functional Programming With Elixir

Learn Functional Programming with Elixir cover

Elixir’s straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don’t board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there.

The Toy Robot Walkthrough

Toy Robot

The Toy Robot is a common interview exercise for new programmers. This short book will take you through how to implement it in Elixir in a BDD-style, with some great explanations and imagery along the way.

If you’re a new Elixir developer who’s gone through some basic Elixir tutorials and you’re looking for the next thing to build your skills, this book is a great start. It covers the Toy Robot exercise from start to finish, testing with Elixir features such as ExUnit and Doctests along the way.

Courses

Pragmatic Studio's Elixir/OTP Course

Pragmatic Studio's Elixir/OTP Course

Put Elixir and OTP into action as you build a concurrent, fault-tolerant application from scratch in this 6-hour video course from The Pragmatic Studio. By developing a real app with real code, you’ll gain practical experience putting all the pieces together to craft applications the Elixir/OTP way.

The first half of the course focuses on core Elixir facets, principles, and techniques. In the second half, we go beyond the basics and focus on what sets Elixir/OTP apart: concurrent processes, the actor model, OTP behaviors, and fault recovery.

If you’re new to Elixir, you’ll get step-by-step guidance in an engaging format you won’t find anywhere else. If you have experience with Elixir, you’ll gain a deeper understanding of things you’ve been taking for granted and fill in any knowledge gaps.

grox.io's Elixir Course

grox.io's Multi-Format Elixir Course

Learning complex concepts like programming languages is best with multiple formats. Groxio’s learning method embraces an interactive mini-book for beginners, video overviews for novices, an online book for presenting higher level concepts, videos with live coding to simulate advanced pair programming through projects meaningful to beginners and experts.

The Elixir module is a full program with a book with 80 pages, 8 videos, dozens of exercises, and two full test-first projects. Beginners can learn the language, and experts can fill in typical blind spots like writing sigils, building macros, and using streams.

grox.io's OTP Course

grox.io's Multi-Format OTP Course

This course teaches OTP from a design perspective by showing a system for breaking projects into layers. This course builds on those layering concepts with a 60 page book, 12 videos, projects, and curated links to go into deeper detail for tricky OTP concepts.

Understand how back-pressure works, step inside supervision trees, and learn to build your dynamic supervisors. Learn OTP for the first time, or solidify your intuition by building the base concepts by reading a book, watching videos, and working through guided projects using Groxio’s blend of media, designed to take you from novice to expert.

Other Resources

Elixir Flashcards

Elixir Flashcards

Elixir flashcards are a set of beautifully crafted, professionally printed, poker sized flashcards to help you master the Elixir language.

Flashcards are a great way to highlight knowledge gaps, identify misconceptions or false beliefs, and help you memorise key concepts. When used in groups or teams, flashcards can help spark interesting discussions, and help bring people together to learn in a fun way by playing games.

Combined with books, tutorials and screencasts, using flashcards is the killer combination to master Elixir.

Elixir Koans

Elixir Koans

Elixir koans is a fun, easy way to get started with the Elixir programming language. It is an idiomatic tour of the language.

Exercism.io

Exercism.io Elixir track

Exercism.io is an open source platform that provides free practice and mentoring in many languages, including Elixir. It features exercises of varying difficulty, from string processing to using OTP, that are mentored by volunteers. Once you have completed an exercise you can also view other students’ solutions.

Running in Production Podcast

Running in Production Podcast

Running in Production is a podcast where developers and engineers talk about running small and large Elixir / Phoenix web apps in production.

Topics include tech stacks, success stories, lessons learned and deployment tips.

Screencasts

LearnElixir.tv

LearnElixir.tv cover

LearnElixir.tv is a screencast series which provides in-depth, step-by-step videos about Elixir’s main features. Videos range from 7 to 15 minutes in length, and are posted weekly.

It’s intended to help beginners get familiar with all of Elixir’s features by building their knowledge incrementally. Experienced Elixir developers might also learn a trick or two.

ElixirCasts.io

elixircasts.io cover

ElixirCasts is a collection of simple screencasts that cover a wide range of Elixir and Phoenix topics. Each episode tackles a specific problem or explores a new library, demystifying it in a language that’s easy to understand.

Episodes range from beginner focused to more moderate and advanced topics. Come build your knowledge of Elixir with us, one episode at a time.

Alchemist Camp

Alchemist Camp cover

Alchemist Camp is the largest producer of free Elixir screencasts and has dozens of hours of screencasts on YouTube. The videos are often longer-form and focused around projects, such as building a small Phoenix clone, or an OTP worker to regularly collect statistics from multiple APIs. Content is driven by viewer request.

Alchemist Camp is aimed at people who have some web development experience and want to ship real-world projects in Elixir.

In-depth Resources

Metaprogramming Elixir

Metaprogramming Elixir cover

Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.

Erlang in Anger

Erlang in Anger cover

This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang.

Designing Elixir Systems with OTP

Designing Elixir Systems with OTP cover

You know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that’s kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what’s happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.