Elixir Course

What's in this preview?

We want you to get the feel for typical Groxio content and the reasons we provide each type of content. Each Groxio module comes in four scheduled releases consisting of the central PDF, videos, and resource links. Later releases have projects as well. You can see part of the first release here.

Productive |> Reliable |> Fast

Buy Course Today!

Preview PDF!

Release Schedule: 2020-03-16 through 2020-05-01

Version: April 16, 2020

Just $70.00, A La Carte
(other options available)

Programmer Passport Elixir

Why a book?

The scientific teaching method we follow is the Dreyfus learning model. Books provide the metaphors experts need to build context, step-by-step instructions for beginners, and the exercises that intermediates need to learn.


1. Elixir Data

2. Elixir Tools

3. Elixir Lists and Reducers

4. Elixir Tuples and Functions

5. Elixir Key/Value Data

6. Elixir Processes

7. Elixir Blind Spots

8. Elixir Macros

Why an itinerary?

The itinerary is a virtual guide. This optional list describes the highlights of each release to maximize your learning time.


Elixir is a functional language that crosses many boundaries. With a syntax borrowing heavily from Ruby, a runtime that is on the Erlang BEAM, a macro system like that in Lisp and a streaming library like you might find in Haskell, Elixir borrows the best features from many environments.

Elixir borrows from Erlang’s Let It Crash philosophy, and adds in significant improvements with structs, first-class hygenic macros, and abstractions such as protocols.

Still, Elixir is approachable because of it’s fantastic documentation, clear error messages, and excellent tooling. Many of these ideas were borrowed from other communities such as Ruby, and they make a big difference in language adoption.


In 2011, José Valim was working on a research project for Plataformatec. The long-time Ruby core team member wanted to build a language that was better at solving the problems he was solving at his consultancy. In 2014, the movement began to pick up steam, and the first ElixirConf was held in Austin, Texas.

In 2015, the Phoenix web server began to pick up speed with the publishing of Programming Phoenix, and several shocking benchmarks showing Elixir’s incredible scalability.

As Elixir continued to grow, more libraries and frameworks were added to the platform. The Nerves platform allowed Elixir on embedded systems. The Scenic framework allowed a native user interface.

Today, Elixir is among the more popular functional languages, with many deployments from successful commercial companies such as Bleacher Report and Cars.com.


Public & Private

Why videos?

Groxio language modules have two kinds of videos. Our overview videos set the history and context of a language, or wrap up the work we've done, and are free to support language ecosystems. Our coding instruction videos, mostly starting with the second release, are paid content, and each one offers a live coding project.

Every learning level benefits from pair programming. Our videos are professional, but do not scrub away every tiny mistake. That way, you can see how experienced programmers deal with errors and changes in code organization.

1. Elixir Documentary

Not a Groxio video, but a good one. José says it better than we can. This documentary tells the story of what Elixir is all about. It talks about abstractions and practical applications, and the things that get programming language people excited.

2. Build a Mix task

In this video, we build a Mix task. We use IEx to explore the Mix.Task API, and then put it to use by crafting our own Mix task, complete with command line arguments. As we do so, we look at the arguments that will choose environments, create documentation, and recursively call umbrella projects.

3. Strings, Binaries, Charlists, and Lists

A typical blindspot of Elixir developers is the string vs charlist. In this video, we look at the data structures underneath these two, and how to look at binaries.


4. It's All Reduce!

Elixir is all reduce! This intermediate video tells you why. Reducers form the foundation of APIs throughout the language, and in this example, we move a point around through a two dimensional space, and eventually reduce over a list of English commands to show a more natural API. Along the way, we'll show you how to navigate the differences between reducers that work with Enum and reducers that work with pipes.
Subscriber content


5. Bob: Elixir Protocols and Design

In this session, we code the iconic Exercism "Bob" problem, the surly teenager. Then, we put our own twist on it. We separate responsibilities between interpreting the input and providing an appropriate response. Then, we use Elixir protocols to add a second personality to the teen-bot. When you're done, you'll have a better understanding of Elixir protocols, and how to build effective APIs in layers.
Subscriber content


6. Elixir Processes and Message Loops

One of Elixir's most powerful features is the process. When you start to use them, the language begins to click for many people. The message passing, pattern matching, and lightweight processes all work together in a natural way. In this video, we build a simple application, a key-value store.
Subscriber content


7. Elixir Streams

A quick review of streams and the tools we use to create and transform them. We'll stay in IEx for this session, and look at techniques to understand the Stream module, the constructors, and the transformers you'll find therein.
Subscriber content


8. Working with Sigils

This Elixir video demystifies that beautiful but cryptic bit of syntax, the sigil. A sigil provides a tiny bit of sugar for representing complex types concisely, like characters and strings with quotes, dates and times, and compact lists of strings or atoms. We'll even code our own sigil.
Subscriber content

9. Putting It All Together

In this Elixir Capstone video, we work with several concepts for a single project. We implement a protocol, import files with a `__using__` macro, work with sigils, and more. We use several different datatypes to establish a final pleasing API in our project, an API to work with points in geometry.

Community Resources

Cool quick trips for Elixir

Why resource links?

Each new chapter has a set of links, separated into three categories. The categories reflect different competency levels and resources that match that stage of learning, for each Groxio release.

Learn It

These resources will get you on the path to learning with background information, tooling and exercises.

Do It

You decide how deep to go. These resources are exercises and projects to cement your learning.

Grok It

These resources will help you put your new knowledge into context so you'll be better at your everyday job.


Longer Excursions (chapters 3 and 4)

Why projects?

The Dreyfus model is originally instruction for pilots. A typical pilot course is based on reading material to understand context, and then flying a plane. Our videos and PDFs are important, but in the end, programmers need to program in order to learn. Our projects offer different levels of assistance, from "give me the answer" to "make this test pass".