When learning, what order of books did you start with?

Good Luck mate :slight_smile:

2 Likes

Went with Erlang and OTP in Action first. Got it a long time ago and it most of whatā€™s in there still seems as relevant. Lot of real world situations are outlined in it; itā€™s well written overall but not sure how it compares to the others mentioned above

2 Likes

My suggestion is a more ā€œdynamic orderingā€:

  1. Programming Elixir 1.3 (November 2016)
  2. Designing for Scalability with Erlang/OTP (June 2016)
  3. Programming Phoenix 1.3 (June 2018)
  4. Programming Phoenix (April 2016)
    4*) The Little Elixir & OTP Guidebook (September 2016)
    5*) Elixir in Action (June 2015)
    5*) Elixir in Action 2e (2018 (>=Q2))

(1) You already started this, so keep going. (I got to Ch20 on the v1.2 edition)

(2) Given your statement of wanting to build a web app with Phoenix a Phoenix book should be right here. But Programming Phoenix deals with 1.1.6 and ideally youā€™d want to catch the 1.3 edition - and you personally put it at the end of your list. Given that you have expressed a strong interest in OTP Iā€™d put DSEO here (so far I made it to Chapter 9, implementing the examples in Elixir). The example application is a Base Station Controller.

Chapter 2 has a whirlwind tour of Erlang which should be enough to get you going (by that point in time I had FPE and CPE under my belt) however if you need an additional reference consult LYSE if you get stuck.

Progressing through the initial chapters in the book find the equivalent portions of the relevant Elixir official documentation - for example GenServer for ā€œChapter 4 Generic Serversā€. That way youā€™ll acquire up to date Elixir knowledge.

Drawing parallels for the deployment chapters becomes a bit more difficult because some of the nitty gritty being discussed is being managed for the most part by mix (though the book discusses rebar3 a little later on) and distillery in Elixir.

Note that Chapter 6 discusses gen_fsm which has since been deprecated in favour of gen_statem - so dig through the Erlang documentation and use gen_statem instead (there isnā€™t an Elixir equivalent anyway).

In Chapter 7 Event Handlers stick to Erlang so that you know how gen_event works (Elixirā€™s GenEvent has been deprecated - though Logger will still use gen_event).

(3) Programming Phoenix 1.3 in this position is kind of a floater. You kind of want to wait for the 1.3 edition. But donā€™t wait for the final release and get in on it as the beta becomes available (and give any feedback if you can on the PragProg forum). For the beta the book will become available in pieces - so you can switch to your other main resource in the any gaps that you may experience.

(4*) Given that you are committed to DSEO I think that this one may be kind of optional (I own it but havenā€™t read it). There have been some interesting changes in Elixirā€™s OTP since the bookā€™s release in September 2016 so I think that DSEO + official Elixir documentation will give you more up to date knowledge. But if you find DSEO a bit heavy going it is certainly an option to switch to this to get some more background first. And itā€™s also an option to skim through this after completing DSEO.

(5*) The primary reason this is last is because it is the oldest book (Elixir 1.0.x/Erlang 17.x) AND because there may be a new edition in the second half of 2018. In some ways I prefer it to Programming Elixir 1.3 because it feels like ā€œlearning to use Elixir the Erlang/BEAM wayā€. As such it gets faster to the point; you are being introduced to the concurrency primitives by chapter 5, GenServer by Chapter 6, and in Chapter 11 you are piecing together a web server from cowboy, plug, httpoison, etc.

Again this book could be a good option to switch to if you find DSEO a bit hard going early on.

Now there may be a MEAP and that would be an excellent opportunity to get in on the updated content when it becomes available (in bits and pieces) while you have another study resource to return to/work through.

6 Likes

Your order is almost exactly what Iā€™m following except I would add Introducing Elixir before Programming Elixir as Dave sometimes uses something without explaining it first. I only noticed that a couple times but itā€™s enough to force you to go look up something which takes you out of your flow.

Manning is coming out with Phoenix in Action as a MEAP soon so that might be another one to look at down the line depending on how comfortable you are after reading Programming Phoenix 1.3+.

Iā€™ve also gotten through about 40% of Daveā€™s course on coding gnome. It is really good so far. He does have some opinionated architecture methodology but itā€™s still nice to see the thought process.

Iā€™m kind of on a Elixir learning hiatus as Iā€™m exploring whether Elixir and Phoenix is the right stack for my side project or whether itā€™s overkill for the sake of using a new stack.

So instead, Iā€™m currently focusing on getting a solid understanding of Advanced JavaScript and then React and React Native. Languages and tools are just a means to an end. So, Iā€™m trying to be pragmatic about the most appropriate stack for the job. Iā€™ll definitely continue the Elixir and Phoenix learning soon.

3 Likes

I feel like Iā€™m one of the only people that did not read any books to learn elixir but rather just read the sourceā€¦ ^.^;

2 Likes

I thought erlang programmers are humble :slight_smile: ! I saw that u have been using erlang for more than a decade. Learning Elixir wonā€™t be a problem for you I guess.

Me, Iā€™m a chemical engineer who chose to learn programming using Elixir. I canā€™t read Elixir source from day 1.

However, thank you for your comment.

2 Likes

In that case your reading/study list is somewhat ambitious as the books have been written for an audience with previous programming experience (or previous web development experience in the case of Phoenix).

I wonder if you should consider Learn Functional Programming with Elixir as your #2 book to let things sink in before moving on. I personally havenā€™t read the book but maybe somebody who has can chime in.

4 Likes

Iā€™m halfway through Programming Elixir. I was very slow at understanding first, but now i can actually read Elixir code without any problem. Thanks for the advice though.
I will follow the order you suggested, because it seems very interesting

  1. Programming Elixir 1.3 (November 2016) (50% done)
  2. Designing for Scalability with Erlang/OTP (June 2016)
  3. Programming Phoenix 1.3 (June 2018)
  4. Programming Phoenix (April 2016)
    4*) The Little Elixir & OTP Guidebook (September 2016)
    5*) Elixir in Action (June 2015)
    5*) Elixir in Action 2e (2018
1 Like

In between 1 and 2 You might like to follow the free erlang master class also from kent university.

Part 3 is about otp and the teacher is the author of DSEO.
But really, all parts are interestingā€¦

It really helped me get a clearer picture.

3 Likes

Thank you so much ! I needed this :slight_smile: !

2 Likes

Thatā€™s because you came into a thread specifically talking about books used for learning. :confused:

1 Like

I think it is important to really know and understand what is going on when building and deploying releases even if you use tools to do it. If nothing else you can feel more confident when using them. It also gives you a better chance of understanding what may be going wrong. And it actually isnā€™t that complex to build releases. :wink:

3 Likes

Heh, not that, I hear from near everyone that they read some books to get started. It keeps making me think that I should go over some just to see if Iā€™m missing anything, hence why Iā€™m scoping out this thread. ^.^

(I actually got a PDF book recently, itā€™s in my reading list on my phone currently ^.^)

1 Like

LOL, I couldnā€™t resist. But yea, I like reading source as well to peak into the thought process of someone else. But for someone starting out from ground 0, I donā€™t imagine thatā€™s the first option for too many people unless itā€™s something bleeding edge and there are no other resources.

For me, I like books cuz it gets you on the ground running without wading through source to make sense of something. Source, for me, is awesome once I have a basic understanding and can get some a-ha moments while looking at a skilled craftsman at work.

2 Likes

9 posts were split to a new topic: Who would you like to see write an Elixir book (split thread)

I would also add (closer to the end of the list)
Metaprogramming Elixir (February 2015)

ElixirConf 2017 - Donā€™t Write Macros But Do Learn How They Work - Jesse Anderson

1 Like

I started with Learn You An Erlang for Great Good!, then Erlang in Action (this book made everything click), followed by Programming Elixir (though I didnā€™t complete it), then ā€¦ I wrote an Elixir book. :joy:

3 Likes