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

49 Mentors

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

11,893 Students

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

92 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 Adrian Gruntkowski

Adrian Gruntkowski Homepage

Over 2 years ago, exercism was one of the first places where I actively learned about idiomatic approach to writing programs in Elixir. Now, after working with the language day to day, I'd like to give back to this great community.
Avatar of Ken Cross

Ken Cross blog

Enjoy learning and teaching topics in functional programming and mathematics as it relates to distributed systems, category theory, graph theory, and computer science at large.
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 CJ Ting

CJ Ting https://github.com/fate-lovely

I like Elixir for its awesome functional programming features and elegant syntax, it really makes programming enjoyable.
Avatar of Paulo Gonzalez

Paulo Gonzalez https://github.com/pdgonzalez872

I'm transitioning to using Elixir full time. I try to use it as much as I can on my free time as well. I'm excited to mentor folks starting out and can hopefully learn new things as well!
Avatar of Júlio Leitão

Júlio Leitão GitHub

Enjoying the Functional Programming paradigm to solve problems and build solutions with quality, maintainability, and great code design. Elixir is one of the best options on the FP world.
Fun. Challenging. Interesting

Community-sourced Elixir exercises

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

Space Age
easy
pattern matching
Kindergarten Garden
easy
string processing
Diffie Hellman
medium
math
Zipper
hard
structs
recursion
trees
algorithms
Markdown
medium
refactoring
Simple Cipher
easy
encryption
string processing

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

Join the Elixir Track