UPDATE: Programming Phoneix > 1.4 is (almost) out! You can buy a work in progress here.
Elixir is not only a new language, but it’s also very different than the current mainstream ones, because it’s based on another paradigm: not “object-oriented” but ”functional” instead. This means you’ll need to write code in much different way that before. As Jose Valim say: “It looks like Ruby, but it’s not Ruby at all”.
The documentation it’s ok but very limited, so I would recommend going straight to the books. Luckily there are already several great books published. This is my ordered recommended list of books you should read to learn Elixir.
This first book is a great introduction of both Elixir and the functional paradigm. While does not covers all of what Elixir can do, it gives you enough base knowledge to start and not be surprised by the weird/awesome parts of the language (like the fact that “=” is now pattern matching, not assignment and the consequences of that).
Eager to do web programming in Elixir? This book will introduce you to the Phoenix Framework (http://phoenixframework.org), by its creator himself. If you’re not in hurry you might want to just skim it and return to it later.
Sadly, this book it’s about Phoenix 1.0, and currently the framework it’s in a transition period. The new Phoenix 1.3 make some changes, specially to the structure of a new project and the philosophy behind it.
But don’t worry, the new version mantains (almost) backwards compatibility, so you can still use the commands and code from the book without problem.
The new book is due in June if you really want to wait for it.
What’s this? A changelog? Not really… ok, maybe, but is also a book about the de-facto ORM (actually, just “RM”) of the Elixir ecosystem and one of the biggest component of Phoenix.
The changes in this second version of Ecto are so big — Phoenix 1.3 has changed as well because of it — that this book paint an almost complete picture of what Ecto can do.
Is not an introduction though, you should first read either its documentation or the chapter about in the Phoenix book.
Last, but not least, this is a in-deep and wide introduction to Elixir. From the basis to the most advanced concepts like OTP and macros.
When you get ready to really know the language, this’ll be the book for you.
If the name of the author sounds familiar, it might be because he co-authored the amazing “The Pragmatic Programmer” and many Ruby books… He also runs The Pragmatic Bookshelf publishing company.
That’s it! If you feel that I’ve missed something important or have a suggestion, please let me know.
I hope you become excited about Elixir as I am. Have a nice read!