How have you been learning Phoenix?

What’s been working well for you?

Did you pick up Elixir along the way or did you learn it first? (Just the basics or more fully before jumping in to Phoenix?)

(We also have a How have you been learning Elixir thread.)

2 Likes

I’ve been slowly rewriting small pieces of Rails/Ruby projects in Phoenix/Elixir, trying to just read as many guides/blogs/github examples as I can and learn as I go. I dipped my toes into the ecosystem maybe a year ago and it feels like it’s a lot more mature/stable and a larger community of support now.

After skimming Dave Thomas’s book, I really found that at least breaking ground on a new Phoenix project didn’t have that much of a learning curve coming from Rails. The nitty gritty details are where it’s harder, Rails just has a huge headstart on the quantity and maturity of libraries and documentation, howtos, etc.

2 Likes

I followed this Phoenix/React tutorial until part 8 or 9 and just went off on my own from there. I just did this a week ago though so I’m still very much a beginner, but I think overall it was a really good tutorial.

3 Likes

I began the programming phoenix book, but then got involved with a side project with some friends. From there it was pretty much trial by fire. :slight_smile:

2 Likes

I read through the official Phoenix guides then jumped straight into a project for work. I kept referring back to the guides as I progressed, and found they provided almost everything I needed.

2 Likes

I also went through the Programming Phoenix book a couple of time and then have also been following some detailed Medium posts as of late.

2 Likes

Thanks all, however I forgot to ask how much of Elixir you learned first:

Did you pick up Elixir along the way or did you learn it first? (Just the basics or more fully before jumping in to Phoenix?)

3 Likes

I learned Elixir by reading its Erlang code that parses Elixir as I already knew Erlang and the Elixir parser was surprisingly readable. :slight_smile:

Learned Phoenix by reading its code and hexdocs.

I’ve been learning more of JS/React/Bootstrap than anything else though. Javascript seems so hacky as a language…

2 Likes

I was looking at reading the Phoenix source but having a little trouble figuring out where to start. I’m still very beginner at Elixir and haven’t learned macros yet (so maybe that’s part of the problem). Would you mind pointing me in the right direction?

I’ve been learning more of JS/React/Bootstrap than anything else though. Javascript seems so hacky as a language…

Have you looked into Elm yet? Sounds like it would suit you perfectly. :smiley: I think everyone has a love/hate relationship with javascript. You can do great things with it and also really terrible things.

3 Likes

I went all the way through the LearnElixir videos, so I had some grounding in Elixir, but was still a n00b. My first substantial Elixir app used Phoenix, so I was learning them together.

2 Likes

Programming Phoenix Book and

2 Likes

I did actually, and it looks fascinating, but its integration with the javascript phoenix channels and presence is highly lacking at the moment. The currently existing elm library mandates that it fully owns the websocket (no sharing with other javascript-driven rooms) and it has some major issues with reconnecting and some other things, so I eventually ripped my Elm experiment out.

I had recently been playing with the idea of making a javascript-to-elm wrapper for a javascript phoenix websocket connection. It would just connect to a room and manage everything about it, but it would push the messages to Elm and listen back from Elm to send back over the socket. That would make the Elm side ‘pure’ while also completely removing the need of the Elm Phoenix Websocket library that is currently too broken for my use.

EDIT:

I just read the source, following at the Endpoint, what Plugs it adds, and just saw how it pieced it all together. Phoenix is remarkably simple and easy to follow. Just have to first realize that it is not so much a cohesive entirety, but rather a lot of little Plugs that you plug together (and the quickstart project just puts in a lot of those Plugs for you, but it has more, and you may not even need the default ones).

2 Likes

I just read the source, following at the Endpoint, what Plugs it adds, and just saw how it pieced it all together. Phoenix is remarkably simple and easy to follow. Just have to first realize that it is not so much a cohesive entirety, but rather a lot of little Plugs that you plug together (and the quickstart project just puts in a lot of those Plugs for you, but it has more, and you may not even need the default ones).

Ya after reading the guides a little last week I saw how everything is built on plugs and started looking at that a little. I had tried initially looking at the source without reading any guides on Phoenix and was trying to follow it more from a boot loader perspective and found it tough to piece together that way.

1 Like

If you used the quickstart project start at YourApplication.Endpoint, that is where the plugs start. :slight_smile:

2 Likes