Want to learn and master Elixir?

Join Exercism’s Elixir Track for access to 159 exercises grouped into 57 Elixir Concepts, with automatic analysis of your code and personal mentoring, all 100% free.

Explore concepts

About Elixir

Elixir, initially released in 2012, extends upon the already robust features of Erlang while also being easier for beginners to access, read, test, and write.

José Valim, the creator of Elixir, explains in his 2012 conference talk how he built the language for applications to be:

  1. Distributed
  2. Fault-Tolerant
  3. Soft-Real-Time
  4. Hot-Code-Swapped (can introduce new code without stopping the server)

Elixir actually compiles down to bytecode and then runs on the BEAM Erlang Virtual Machine.

There is no "conversion cost" for calling Erlang, meaning you can run Erlang code right next to Elixir code.

Being a functional language, everything in Elixir is an expression.

Elixir has "First Class Documentation" meaning comments can be attached to a function, making it easier to retrieve.

Regular expressions are also given first class treatment, removing awkward escaping within strings.

Elixir's asynchronous communication implementation allows the code to be lightweight, yet incorporate high-volume concurrency.

Programmers use Elixir to handle thousands of requests and responses concurrently on a single server node.

It has been used successfully for microservices that need to consume and serve a multitude of APIs rapidly.

The Phoenix framework helps structure Elixir applications for the web.

Key Features of Elixir


Elixir

General-purpose

Elixir is used for web development, embedded software, data ingestion, and multimedia processing.

Functional

Multi-clause functions with pattern matching and guards are the building blocks of Elixir code.

Dynamically typed

Elixir has no compile-time type checks, favoring run-time pattern matching.

Immutable

All data in Elixir is immutable, allowing for safer and easier-to-reason-about concurrency.

Concurrent

Elixir uses the actor model - shared-nothing concurrency via message passing.

Fault tolerant

Elixir runs on the Erlang VM, known for running low-latency, distributed and fault-tolerant systems.

A taste of the concepts you'll cover


See all the concepts for Elixir

Get mentored the Elixir way

Every language has its own way of doing things. Elixir is no different. Our mentors will help you learn to think like a Elixir developer and how to write idiomatic code in Elixir. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Elixir - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Elixir exercises

The Elixir track on Exercism has 57 concepts and 159 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Elixir exercises
Elixir

Get started with the Elixir track

The best part, it’s 100% free for everyone.