Elixir

Join the Elixir Track
Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
Join the Elixir Track
Track mentors

53 Mentors

Our mentors are friendly, experienced Elixir developers who will help teach you new techniques and tricks.
Track students

16,014 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

94 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Elixir

defmodule HelloWorld do

  @doc """
  Greets the user by name, or by saying
  "Hello, World!" if no name is given
  """
  def hello(name \\ "World") do
    "Hello, #{name}!"
  end
end

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 here 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.

Join the Elixir track

Self-contained finite problems with which to learn the language

I have spent time with the Clojure, Elixir & Go tracks and all have been incredibly beneficial, providing self-contained finite problems with which to learn the language. The Go language track has been wonderful in introducing me to the language, what idiomatic code is, and the many different ways in which one can solve a problem.

Relaxed. Encouraging. Supportive.

Meet the Elixir Track mentors

Once you join the Elixir language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Vladislav Promzelev

Vladislav Promzelev https://github.com/rutaka-n

I'm a software engineer. I develop high load systems with erlang/otp and elixir. Also I have experience with ruby and some other programming languages.
Avatar of Ian Fosbery

Ian Fosbery https://www.codeguy.io

I've been a programmer for over 15 years. I've really gotten into functional programming in recent years, which is how I've come to love Elixir so much. Concurrency, fp, the Erlang VM - what's not to love?!
Avatar of Andreas Kammerloher

Andreas Kammerloher https://github.com/Odin94

I enjoy making things work elegantly more than just making them work and I consider myself a very honest and straightforward person. I value empathy and rational thinking. I enjoy learning about and debating ethics and philosophy. What I lack in formal education in these fields I make up for in curiosity and open-mindedness. I'm currently looking to get started with competitive programming and using Exercism to practice. I hope to accelerate people's progression through the Elixir track, as there is currently a huge lack in mentors and I'm sure it's frustrating people to wait many days for their code to be reviewed (although it does prepare us well for the realities of business :P).
Avatar of Tim Austin

Tim Austin my blog

Was interested in elixir for a long time, but didn't really start to look into it until 2018. Started the track, and enjoyed it so much I decided to help others enjoy their time learning it as well.
Avatar of Christoph Lipp

Christoph Lipp https://github.com/ser1us

The syntax is slightly ruby-ish and quite easy to grasp. But it truly is stading on the shoulders of giants (Erlang / OTP) which makes it my go to language for most new projects.
Avatar of Percy Grunwald

Percy Grunwald

I have been writing Elixir for many years now and I find it a pleasure to write and read. Elixir is an extremely productive language with a beautiful syntax and has amazing performance for networked applications. I think it's an ideal choice for any web application or backend.
Fun. Challenging. Interesting

Community-sourced Elixir exercises

These are a few of the 94 exercises on the Elixir track. You can see all the exercises here.

Largest Series Product
medium
enumeration
recursion
math
Minesweeper
medium
enumeration
reduce
algorithms
ETL
easy
enumeration
string processing
Custom Set
medium
collections
enumeration
Accumulate
easy
recursion
reduce
Spiral Matrix
medium
lists
transforming
Passionate. Knowledgeable. Creative.

Meet the Elixir Track maintainers

The Elixir Maintainers are the brains behind the Elixir Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Tim Austin

Tim Austin

Exercism has been a great way for me to stay current and expand my developer experience in new areas. I am excited to be working with the elixir track, because I appreciate the clarity/idiomaticity of the elixir language. I want others to enjoy this track as much as I have.
Avatar of Cohen Carlisle

Cohen Carlisle

I love Elixir for its productivity, elegant syntax, and functional nature. I've written it professionally and for fun. I hope to help people get excited about Elixir and learn some things myself, as well.
Avatar of Devon Estes

Devon Estes

@elixir-lang and Elixir developer. Maintainer of @bencheeorg & the Elixir track at @exercism.

Get started with the Elixir track. As with everything on Exercism, it's 100% free!

Join the Elixir Track