I am currently reading Mastering Phoenix Framework by @shankardevy.
It is excellent for someone porting from Rails, so far the best on boarding pathway. Shankar explains not only HOW something works, but WHY it works and WHY it is laid out that way.
For example I was puzzled to see a VIEWS and TEMPLATES folder, but then Shankar’s book explains Phoenix compiles the template and makes it available as a function n the views folder. Very helpful insight.
Also the breakdown of Elixir lang basics is very helpful, productive and pragmatic as it focuses on what you would be using 99% of the time without distracting you with a lot of other noise.
In doing so he lays out a great yet simple path to be productive in the shortest amount of time. So far this is the best book I have found for someone new to Phoenix from any language.
The author explains the value of being explicit in Phoenix vs implicit, the code involved is not much more and I immediately recognized the value of being explicit.
Based on how the author shares these insights, to me it seems Phoenix is that unique sweet spot between Rails (a framework) and Sinatra (a micro service you wire up with libraries), yet is still elegant as the Elixir language is elegant.
Phoenix and functional programming may initially look inaccessible to an OO programmer but this books makes both very accessible. If one just follows the path laid out, its virtually a straight line path to getting things done vs losing time experimenting and getting disillusioned.
The author has a nice flow chart that shows the path of many beginners with Phoenix. Its quite humorous and clear the author has gone down all these paths and is sharing his wisdom to avoid such traps.
I want to thank Shankar for his service to the Elixir and Phoenix communities, he has created a gem of a solution for much easier adoption of Phoenix and functional programming.
I have read other books, but so far this is by far the best for being most up to date, pragmatic and getting you productive in the shortest and straightest path possible. Understanding the WHY of certain patterns behind the framework fosters confidence which is much needed when learning a new stack.
I am only half way through the Mastering Phoenix Book at the moment, but the author also provides one on Ecto, Contexts (to better understand them) and Garuda, where you build your own lighter version of a Phoenix Framework to better understand how all these libraries work together.
All in all, it is a fully comprehensive resource for understanding, becoming productive and avoiding common traps new beginners fall into.
Thank you again to the author for his exhaustive work and sharing humble insights from his own experiences as a beginner.