Actually, while I appreciate that "Programming Elixir" gets a lot of airtime, owning both books I believe that "Elixir in Action" is a much better resource than the former. "Programming Elixir" takes a pedantic, cover-all-bases, step-by-step approach with many of the gotchas not obvious at first, while the latter just dives in with idiomatic code and gets much more quickly to the "jewels" of the language, namely that which benefits from BEAM/OTP.
Not to denigrate Dave Thomas, just to say that being first is not always best. My personal experience, from an imperative background, is that the "Action" book is more terse, but ultimately offers a cleaner schema of the language.
True enough, I have read both (actually the 1st edition of "Programming Elixir"), and "Elixir in Action" is more hands-on. The reader ends up working on an actual project along the book, adding new functionalities.
However, since Elixir 1.2, some of "Elixir in Action" is now outdated, especially the use of HashDict replaced by Map.
I have not read the second edition of "Programming Elixir" though. Based on the table of contents it seems to be a bit more "applied" than the previous edition.
There is a post from the author that documents what has diverged between Elixir in Action and Elixir 1.2. More than simply updating code examples, it actually gives context around all of the changes.
Agreed - I was just today seeing that my edition of the book still pushes the hashdict. Perils of early adoption! Still, kudos to both and my advice to all peeps looking at Elixir (and you should!) is to buy both.
Not to denigrate Dave Thomas, just to say that being first is not always best. My personal experience, from an imperative background, is that the "Action" book is more terse, but ultimately offers a cleaner schema of the language.
Side note: I love Elixir.