Regardless of whether you've only just heard of the Elixir programming language and would like to learn it, or if you're a seasoned developer with years of experience, you need adequate learning resources to ensure steady progress in your career - and just equally as important is the need to be up to date with what's new & trending in the functional

Table of contents

    I've selected a few sources that - over a few years of Elixir programming experience - I've considered most valuable for all stages of Elixir practicians' professional development. For this purpose, they're grouped into four categories: learning resources for newcomers, advanced and expert users, and lastly valuable media and other ways to keep yourself up to date. Enjoy!

    Your first Elixir steps

    Everyone prefers a different learning experience, so there's something in this section for readers, watchers, and interaction-lovers alike.

    Exercism

    To many people, the best way to learn new things is to go interactive - and Exercism (https://exercism.org) is an open-source, community-driven platform that has recently emerged as the go-to resource for interactive, online learning of programming languages - and Elixir is one of the strongest tracks in the whole project.

    Exercism allows you to interweave learning theory and practicing at a convenient pace, in an interactive way - both via a web UI and a command-line interface (CLI) and it covers 50+ Elixir language concepts with 150+ exercises.

    Surely a great learning resource for beginners and also a good one for refining your skills as an upper-level junior!

    Programming Elixir >= 1.6

    Dave Thomas's book (https://pragprog.com/titles/elixir16/programming-elixir-1-6/) explains basic concepts and features of the Elixir programming language in a thorough way - which is an interesting proposition for those who prefer to have their learning based on a book's structure. Covering the basics of both the language itself and its platform, as well as diving into more advanced topics afterward (touching on concurrency, metaprogramming, and others briefly), provides a great foundation for your development as an Elixir programmer.

    ElixirCasts

    A leading Elixir screencast, for people who like educational videos and learning by examples. This is a great source for programmers seeking a way to step up to a mid-level expertise tier, with resources ranging from the language's very basics to more advanced topics.

    As you gain confidence

    I've picked another screencast channel with a more advanced nature as well as two books of a very different kind - while one of these will strengthen your Elixir foundations, the other one introduces you to the Erlang world. Interested?

    Alchemist Camp

    This is a screencast series that I often consider a step up from ElixirCasts in terms of the specificity of each episode, as well as also containing tutorial series covering larger topics. It's got a great deal of useful content regarding advanced Elixir, Phoenix, Ecto usage, among others - so I recommend it for those who are oriented towards reinforcing their skillset.

    Learn You Some Erlang for Great Good!

    Getting advanced in Elixir means it's high time to learn some Erlang, too! The book (https://learnyousomeerlang.com) assumes no prior Elixir expertise, but it can be a refreshing experience to go through it, experience what Erlang is like, and get to know OTP the Erlang way. Definitely a must-read at a certain stage of an Elixir developer's career.

    Elixir in Action

    Saša Jurić's book (https://www.manning.com/books/elixir-in-action-second-edition) comes from one of the most respected contributors to the Elixir society, and it is a great source of knowledge about Elixir's more advanced features. Compared to the "Programming Elixir >= 1.6" book, it perhaps places more emphasis on the more advanced aspects of the language's toolset (processes, OTP, deployment) and goes into more detail, and there is a lot of examples to reinforce the book's content.

    The current edition of "Elixir in Action" is also based on a slightly newer (1.7) version of Elixir compared to "Programming Elixir >= 1.6", but that's not really a big deal since there were no revolutionary changes between these versions.

    Elixir resources for experts

    Books comprise the entirety of my picks in this section - but these are surely some of the best advanced-level resources that exist in the Elixir world.

    Metaprogramming Elixir

    If you'd like to consider yourself an Elixir expert, learning how to harness the power of macros is a must - and even if you won't write a lot of macros yourself, it's essential to know how they work to understand many codebases, especially those utilizing DSLs.

    The book by Chris McCord (creator of Phoenix Framework, https://pragprog.com/titles/cmelixir/metaprogramming-elixir/) is probably the best book I've read when it comes to explaining how metaprogramming works in the language, giving many examples and analogies to other mechanisms that every programmer should already have understood.

    And, by the way, it inspired me to write a short entry-level guide to Elixir metaprogramming that you can check out at our website: Elixir Trickery: Using Macros and Metaprogramming Without Superpowers!

    Designing Elixir Systems with OTP

    Learning the language is one thing, and choosing the right tools to do a particular job is another - so as an Elixir expert you should be looking for architectural cues, good design practices, and battle-tested code organization patterns - and here's where J. E. Gray & Bruce A. Tate's book (https://pragprog.com/titles/jgotp/designing-elixir-systems-with-otp/) shines, giving guidance on how to design systems that provide fast and resilient services.

    Adopting Elixir

    The book by Ben Marx, José Valim, Bruce Tate (https://pragprog.com/titles/tvmelixir/adopting-elixir/) deals with more than just programming, presenting Elixir strategies and case studies, leading the reader through all aspects of adopting Elixir in an enterprise - both the technical ones related to application design, development and deployment, and the human factor-related ones such as recruiting developers. Definitely a great pick for CTOs - both in start-ups and established businesses, greenfield and brownfield projects alike.

    Adopting Elixir in your company

    Be up to date

    Now, regardless of your level of expertise, I'll show you a few options when it comes to where to make yourself up to date with what's going on in the Elixir ecosystem.

    Elixir Podcasts

    For audio & podcast lovers, there's plenty of podcasts you can listen to as a great means to keep yourself updated with news, trends & new tools - here are my picks, just to name a few English-language ones:

    Elixir Conferences & Upcoming Events

    Elixir Conf EU comes to mind as the main Elixir event in Europe, just like ElixirConf is the premier conference in the US - and while before the 2020s pandemic twist these conferences were largely confined to their particular continents' audiences, in the last two years they've been held either completely online or hybrid, and it's interesting whether this shall continue as a trend - I find it interesting because it's now so easy to attend a US conference from the comfort of your home in Europe and the other way around!

    Newsletters for Elixir Developers

    Concluding the resource base, and taking into account some people prefer to have the news just delivered by email - here are a few of the Elixir-related newsletters that you can find on the web.

    Michał Buszkiewicz, Elixir Developer
    Michał Buszkiewicz Curiosum Founder & CTO

    Read more
    on #curiosum blog