Which book to read?

Background

Hello all! So after my controversial introduction with Learning Elixir, frst impressions ( plz don't kill me ! ) - I saw a ton of recommendations for learning Elixir. The challenge however is that I don’t have time to read them all - that would take me several months or even years.

So I need to start somewhere. After checking the official page:

I concluded I am interested in Videos / Books.

What book should I get?

So, I am not completely new to FP. I know what lambdas and recursion are and I am quite familiar with the basic concepts of FP.

What I don’t know however, is how to do FP Elixir style. I am looking for a book or video that:

  • Teaches me the basics of Elixir and how to think in Elixir
  • Preferably has no association with frameworks ( yet, I will invest into Phoenix and OTP later as I rather have the basics of the Elixir mindset well cemented for now )
  • Has exercises ( I am using Exercism.io but I could use something with more guidance )
  • Preferably cheap ( I have seen some books recommended by the Erlang community with a woping 120€ price. I can’t afford anything near that. )
  • Preferable with immediate availability. I am a sucker for physical copies but right now I can’t wait a week for a book to get to me. A PDF file would be just fine.

I have checked online courses in Udemy and Pluralsight, but I am reluctant into buying them because I am not really sure if they are worth it.

Summarize

So, given my background, what I am looking for and the resources the community knows, which ones would you recommend ?

I tried to check this one out:

https://pragprog.com/book/cdc-elixir/learn-functional-programming-with-elixir

But I am not really new to FP so I am not sure if this is a good purchase for me.

1 Like

Based on this and your previous post, I would recommend Elixir in Action. There is a forum discount code. From where you are starting, this book provides an excellent exposition of Elixir and how the language fits into the Erlang ecosystem.

4 Likes

Which book was that? :open_mouth: I can’t recall seeing any relevant book with that price tag.

I would suggest either “Programming Elixir” or “Elixir in Action.”

Use our discount code to get 35% off (both PragProg and Manning are sponsors of our community).

For learning “just” Elixir, I would recommend the following books:

The prag prog book is more of a “step by step” book. Elixir in action progresses faster (doesn’t spend as much time exploring more basic aspects). Both are good and having both won’t necessarily lead to a lot of duplication. Note I have only read the 1st version of Elixir in action: I learned a lot, but at this stage it’s getting quite dated (i.e. buy the 2nd edition, not the 1st).

Another excellent (free!) resource is learnyousomeerlang.com. Although it’s about Erlang, it spends a lot of time covering “thinking in OTP” etc. which transfers nearly directly into Elixir.

For video-based learning, there’s

Based on your experience and requests, I would recommend the first one as its style is closer to what you’re looking for.

Being new to Elixir myself, I’ve spent some time to write a series on creating a process pool manager in Elixir (as well as some small coding patterns in Elixir). You might find them helpful: http://davidsulc.com/blog/category/elixir/

3 Likes

I share opinion for books with other posters… but for me, one turning point was

https://www.cs.kent.ac.uk/ErlangMasterClasses/

After that, I went from why? to of course, it makes sense.

And it’s free.

5 Likes

I would recommend Functional Web Development with Elixir, OTP and Phoenix.

By the time you get to the OTP parts you will have enough of a background in Elixir.
This book covers building an app domain model first then adding remote access then a User Interface (which eventually is left as an exercise for the user to complete).

This is not a deep dive into either OTP or Phoenix.

2 Likes

Given all the parameters I firmly point you in the direction of Elixir in Action 2e. It moves at a brisk pace while treating it as a BEAM language (rather than as a FP Ruby knockoff), gets into process thinking while sprinkling in a little bit of OTP.

Here are the details with regards to the forum discount.

But I am not really new to FP so I am not sure if this is a good purchase for me.

Get through EiA2e first and continue with exercism. If after finishing the book and watching the Erlang master classes exercism still gives you trouble then it is likely a good purchase.

If you need a quick Erlang primer check out chapter 2 of Designing for Scalability with Erlang/OTP in the free sample on play.google.com - if there are any other gaps fill them in with the appropriate sections of Learn You Some Erlang.

  • Simon Thompson is one of the key people (pulling in people like Francesco Cesarini, Joe Armstrong, etc.) behind the University of Kent content - he teaches Haskell and Erlang and is the Author of Haskell: the Craft of Functional Programming and coauthor of Erlang Programming. For my overview of the Universty of Kent MOOCs see (Part 1) and (Part 2).

For some other meandering thoughts on reading order see: When learning, what order of books did you start with?

4 Likes

I don’t think you should limit yourself to just one resource - the time spent reading books will save you time in the long run and imo, make you a more knowledgable Elixir programmer :023:

I highly recommend what I suggested in my post in your other thread:

Though maybe do the video course after the books (all of those are heavily discounted with your forum discount too :003:)

1 Like

I totally agree.

Reading books requires an investment of money, time and effort, but it pays back tenfold in my experience. Investing in good books will save you so much time and frustration down the road that you will earn your money back within a few months on your first serious project, even if you purchase and read all of the available Elixir-related books. It’s time and money well-spent.

Also, frankly speaking, a programmer who lacks the patience to read a few books will probably have a rocky road ahead, because programming (knowledge work) inherently involves a lot of reading. In my opinion, reading just comes with the job of being an effective programmer.

1 Like

Thank you all for your kind suggestions and comments !

After reading through this discussion I went ahead I bought Elixir in action, 2nd edition. I already started and am powering through the first chapter which has a lovely discussion about Erlang and the BEAM vm.

All good things thus far !

Widely recommended in Erlang talks as an excellent read for Erlang / Elixir programmers:

Principles of Protocol Design

I agree. But until I become Doctor Strange and somehow gain the power to manipulate time at my will ( and the power to have a very sexy beard ), I need a strategy to use the little time I have as efficiently as possible, as I am sure we all need.

Thus, for now, I will focus my all the attention I have int this book. Once that is done however, I will wait some time and play with all the concepts I have learned to make sure they are cemented somehow decently and then I will move to my next book or course or ( insert self improvement strategy here )…

This is a cycle I go through. I never really stop learning. I believe as a programmer I can’t. But this is a story for another time.

Thank you everyone !

2 Likes

:icon_biggrin:

So patience - and it’s not Erlang specific anyway.

2 Likes

Right now at www.springer.com use code SCW18E ​​​​​​​or CYBERWEEK18

3 Likes