zervis

zervis

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

Hello,

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?

Thanks!

Most Liked

peerreynders

peerreynders

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.

dwahyudi

dwahyudi

You probably needs to learn about Elixir first.

There are plenty of them.

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

For Phoenix

malloryerik

malloryerik

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.

peerreynders

peerreynders

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.

peerreynders

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).

Where Next?

Popular in Chat/Questions Top

William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
xgilarb
Hi there, I’m interested in using Elixir because of the rumors about the reliability of the Phoenix framework, and surprisingly, Elixir’...
New
Scoty
Hey, I am currently reading Programming Elixir and I am doing one of the exercises where you should write a solution to the “I’m thinkin...
New
mchean
I was wondering if anyone is using some learning tools that they can recommend? I’ve been looking at two specifically so would also be ...
New
svetarosemond
I’m planning on purchasing Elixir in action second edition, and I was wondering if anyone could tell me based off the first edition, does...
New
Fl4m3Ph03n1x
Background Hello all! So after my controversial introduction with Learning Elixir, frst impressions ( plz don’t kill me ! ) - I saw a ton...
New
ericdouglas
I think that would be really interesting to have official books created by the community about all kinds of development we can do with El...
New
woohaaha
I’m coming from Ruby and Rails. I have read some Elixir and Phoenix books. They shed a lot of light about building applications in Elixir...
New
shansiddiqui94
Hello, I have an interview coming up and I seem to have forgotten important concepts of Elixir. So I was wondering if you guys know of a...
New
yachnytskyi
Hello everyone. I am gonna start with Elixir/Phoenix, thinking to use Stephen Grider as a start point, then elixir school and other sourc...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 49522 488
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

We're in Beta

About us Mission Statement