Learning Elixir

Published at: 2017-01-30

I have some unbooked time I am currently investing to learn Elixir.

The Why

Elixir brings several interesting technical concepts (of which many already blogged about and) which are not really new. While I am really interested in the technical opportunities those features unlock I am much more interested in the – I'd call them soft qualities of the language and moreover its ecosystem.

There are 3 of those soft qualities I care about:

The community

There are so many really nice people in the community. Everytime I watch a video, read a blogpost or talk to someone who works with/for Elixir I get the feeling that these people really care about their users.

The tooling

More on that later.

Docs being first-class

Elixir provides something called Doctests which are a built-in feature of the language. No extensions, no configuration,.. it. just. works.

A Doctest is an executable code example (similar to a unit-test specification) that is embedded with the implementation, executed with sample input. It basically tries to solve the problem of deviating technical docs and their implementation.

Of course Elixir is not the first language to offer something like this but the degree of convenience is simply astounding.

The How

To get familiar with the language I give myself 14 days (each day about 3-4 hours) learning. I will focus on three things:

Learn the basics

There are lots of good books/blog posts to get familiar with the core data types and fundamental concepts of functional programming and pattern matching. I will add the ones I worked with later.

Get practical

I will apply learned theory by working on the Advent of Code 2016. This will take the first 4-7 Days. This will teach me the practiical basics.

Built an app

And finally I want to build something I can use. I dont know yet what it will be but it might be just another phoenix web application.

I will document my experience and learnings while I go along.