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.

17 Mentors

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

6,990 Students

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

92 Exercises

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

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

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.

Wiwatta Mongkhonchit https://github.com/zentetsukenz

I like how Elixir made it easy for anyone who wants to start programming getting started with it. Not only easy to learn but Elixir also gives you a robust way to build your application. You can learn a lot by learning Elixir.

Nathan Chere NathanChere.com.au

I first got into Elixir in 2015 and haven't looked back. My day job still largely centres around .NET but Elixir is the language I remain the most passionate and excited about.

Aaron Milam Github

I have had an interest in functional programming for years, and Elixir has been my outlet for a while now. I love being able to program without hidden side effects, and I love the way functional programming changes the way you think about program flow.

Sean Handley Website

I'm a remote developer based in Manchester. Ruby is my first love but increasingly I'm focussing on Elixir. The open source community means a great deal to me and I attend (and occasionally speak at) various technical conferences.

Paul Otto https://github.com/potto007

I love Elixir for its pragmatic approach to functional programming, its small syntax, and its macro language. OTP on the BEAM (ErlangVM) is beautiful. I have professionally written and deployed networked software with Elixir.

Gabriele Lana https://github.com/gabrielelana

Software craftsman, clean code disciple, Elixir/Erlang, Elm, Ruby, Rust, JavaScript, quantified self geek, Emacs all the things, 20 years on the field and still love it.
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.

List Ops
medium
medium
lists
enumeration
recursion
Two Fer
medium
easy
strings
Dot Dsl
medium
hard
structs
graphs
Rotational Cipher
medium
easy
string processing
Phone Number
medium
easy
string processing
pattern matching

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

Join the Elixir Track