Since Elixir was founded, there have been many books dedicated to the language. Here I run through some of the recommended books on the language of choice;
Adopting Elixir, by Ben Marx, Jose Valim and and Bruce Tate
Adopting Elixir is an ideal book for those starting out in Elixir. It not only introduces you to the language, it also showcases business use cases in production applications. Although this book doesn’t teach the language or it’s system, it focuses on learning and understanding what Elixir is, and also tells what pros and cons which Elixir may have on businesses.
Read Hayden’s interview with Bruce Tate here
Elixir In Action, by Sasa Juric
Elixir In Action is a great book which teaches you how to build production quality distributed applications using the Elixir language. It introduces you to the powerful language using examples that highlight the benefits of Elixir’s functional and concurrent programming. It also also explores practical approaches to concurrency as you learn to distribute a production system over multiple machines. Step-by-step, you can start your Elixir journey with the examples and explanations presented in a very accessible way.
Read Hayden’s interview with Sasa Juric here
Build Your Own Web Framework in Elixir, by Adi Iyenga
With this book you’ll start by exploring the fundamental concepts of web development using Elixir. You'll learn how to build a robust web server and create a router to direct incoming requests to the correct controller and also learn how to dispatch requests to controllers to respond with clean code and explore the power metaprogramming in Elixir. It will also help you to develop a deep understanding of Elixir's unique semantics and syntax, allowing you to optimise your code for performance. It will also give you the knowledge of how to effectively test each compenent for performance and accuracy.
Read Hayden's interview with Adi Iyenga here
Testing Elixir by Andrea Leopardi and Jeffrey Mattheus
This book's title is pretty self-explanitary, it runs through the effective and robust testing processes for Elixor and it's Ecosystem. It enables you to dive into Elixir's test philosophy and gain mastery over the terminology and concepts that underlie good tests. You'll explore the basic tool set provided by ExUnit and Mix to write and organise your test code built around different OTP functionality. It will also allow you to learn property-based testing with StreamData from the author who wrote the library.
Read Hayden's interview with Andrea Leopardi here
Programming Phoenix 1.4, by Chris McCord, Bruce Tate and Jose Valim
This book gives you information and explanation of the main Framework for Elixr, which is Phoenix 1.4. Aimed at more advanced developers, it also introduces end-to-end testing, channel support and database connection using Ecto. It is also beneficial for AP builders who are expecting to build fast and reliable applications.
Metaprogramming Elixir, by Chris McCord
In this book, the Phoenix framework creator guides you through the world of macros, step by step. With this book You can learn an advanced approach to programming and using the language’s potential by using macros in your code. Extend Elixir with your first-class features, optimise performance, and create domain-specific languages. This book is aimed at more advanced developers.
The Little Elixir and OTP Guidebook, by Benjamin Tan Wei Hao
The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. It starts with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. It gives you the chance to experience the joy of programming with Elixir and remember how it feels like to be a beginner again!
Designing Elixir Systems with OTP, by James Edward Gray II and Bruce Tate
This book is aimed at the experts in who know how to code in Elixir. You know how to code in Elixir; now learn to think in it. It allows you to learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. You'll embrace the same OTP that’s kept our telephone systems reliable and fast for over 30 years. It allows you to move beyond understanding the OTP functions to knowing what’s happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus. It will allow you to think about it and focus on learning how to build applications cleanly and wisely.
All of these books, and plenty of others, are available from various online shops, and some physical stores too. Most are available in the form if e-books as well as hardback/paperback.