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.

    FAQ

    What are the top Elixir learning media and resources for 2022?

    The top Elixir learning resources include interactive platforms like Exercism, educational books like "Programming Elixir >= 1.6" by Dave Thomas, and video tutorials from sources such as ElixirCasts.

    How can beginners start learning Elixir in 2022?

    Beginners can start learning Elixir through interactive platforms like Exercism, comprehensive books such as "Programming Elixir >= 1.6," and by watching educational screencasts like those offered by ElixirCasts.

    What resources are available for advanced Elixir learners in 2022?

    Advanced learners have resources like Alchemist Camp for screencasts, "Learn You Some Erlang for Great Good!" for delving into Erlang, and "Elixir in Action" for more advanced Elixir features.

    What are the best books for mastering Elixir programming in 2022?

    For mastering Elixir programming, consider "Metaprogramming Elixir" by Chris McCord, "Designing Elixir Systems with OTP" by J. E. Gray & Bruce A. Tate, and "Adopting Elixir" for organizational implementation.

    Where can Elixir developers find the latest updates and trends in 2022?

    Elixir developers can stay updated through Elixir podcasts like Thinking Elixir and Elixir Outlaws, attending conferences such as Elixir Conf EU, and subscribing to newsletters like ElixirWeekly.

    How does interactive learning like Exercism help Elixir beginners?

    Interactive learning platforms like Exercism help Elixir beginners by blending theory and practice through hands-on exercises, promoting a deeper understanding of the language's concepts.

    What are the recommended screencasts for learning Elixir as a beginner or advanced user?

    Beginners are recommended to start with ElixirCasts, while advanced users might find Alchemist Camp more beneficial due to its specificity and coverage of larger topics.

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

    Read more
    on #curiosum blog