What books/courses should I take to learn Phoenix as a newbie?




I’m about to dive into web development. I was thinking about Laravel or Ruby on Rails, but then I found Phoenix.
Do you recommend this learning path straight into Elixir/Phoenix without previous experience?

What books/courses should I take as a newbie?



Can you give a summary of your programming experience?


You probably needs to learn about Elixir first.

There are plenty of them.

After a while, take some exercises. Exercism for example.

For Phoenix


My programming experience is none. I was playing a little bit with PHP and made some sites.

Thanks @dwahyudi


There’s a book to help people learn Elixir as a first programming language.

After that, continuing on the Elixir path, there’s a full book that you’d likely be ready for titled Learn Functional Programming with Elixir put out by Pragmatic Programmers, the leading publisher for Elixir.

In this book you learn the basics of Elixir and write a basic dungeon text adventure game.
You could do it along with ElixirSchool, Exercism and so on as @dwahyudi mentioned.


That’s a tough one - but I would assume that in dealing with PHP you would have had to develop some “automation skills”.

On the book front I’d point you first to Learn Functional Programming with Elixir (Pragprog) (⟶forum discount).

No previous functional programming or Elixir experience is required. Some experience with any programming language is recommended.

After that you should probably move to Elixir in Action 2e or Programming Elixir (Pragprog) (Elixir in Action can be a bit more challenging/fast paced).

Now when it comes to Phoenix, you have to realize that there are a lot of technologies coming together. Programming Phoenix (Pragprog) is a great primer - i.e. you get your first guided tour of building something and the online documentation will make a lot more sense afterward.

That being said Phoenix itself is largely about the back end and it has less of an opinion about the front end. Even on the back end persistent storage management is delegated to Ecto (Programming Ecto (Pragprog)) and there it helps to have SQL skills (--no-ecto opts out of Ecto).

On the front end you have EEx templates (--no-html to opt out) so you are still responsible for bringing raw HTML/CSS skills to the table.

Then there are Phoenix features that require JavaScript in the browser which are supported via modular JavaScript (Modern JavaScript Explained For Dinosaurs) (--no-webpack to opt out), so one to some degree has to deal with JavaScript and it’s (npm/Node.js) ecosystem.

So as far as “web development with Phoenix” goes you may have a bit of road ahead of you.


I was working as IT Specialist before, I did never code mature things, but I know some basics.

Is learning Phoenix worth the time in my situation? I mean, maybe Ruby on Rails is better choice for a newcomer (or is it the same?)?
How much time do I need to invest to become Phoenix web developer (to be able to get first job)?


Look, if this is about “short term return on investment” - look at your local job boards. I strongly suspect of the options that you have mentioned Laravel will come out on top. PHP absolutely dominates the current global market.

I suspect that RoR has peaked and some would even go so far to say that it is in decline. And to assume that Phoenix is going to simply take over for RoR would be naive at best. Back in 2005 RoR didn’t have to deal with the existance of AWS/Azure/Google Cloud Platform.

But you have to decide for yourself if you could work with RoR/Laravel day-in/day-out because they are “frameworks to the core”. Basically they have been optimized to produce a certain type of product in a productive manner. Now while that sounds all very positive the skills you acquire while working with these frameworks are mostly related to way the framework is organized.

While having in-depth knowledge of any particular “sub technology” that is part of the framework should be beneficial, the cultures behind these tools don’t necessarily foster that type of skills development.

There are people who never learned JavaScript properly while using JQuery, similarly some people use RoR without developing Ruby competency and to a certain degree the same thing seems to be happening in the JavaScript ecosystem (if I can do it with JavaScipt I don’t have to understand CSS … etc.) I’m not sure how the situation is when it comes to PHP frameworks and core HTML/CSS/JavaScript skills.

What I’m trying to say is that something like Phoenix (which is still a framework) is much less opinionated and therefore encourages you to invest in more core, transferrable skills (HTML/CSS/JavaScript/SQL) that can be leveraged elsewhere later if necessary.

So if this is about web development - focus on the core skills: HTML/CSS/JavaScript (and for the backend SQL is always helpful even in a NotNecessarilySQL world) - no shortcuts.


Thanks @peerreynders


All things considered it may still be worth while to use Learn Functional Programming with Elixir (Pragprog) as your introduction to programming (especially before JavaScript) regardless of whether you continue all the way to Phoenix. It’ll likely set you up much better for anything else in the future.

It’s a tragedy how many people seem to get started with Python or JavaScript and then get stuck there (one of my rants).