AstonJ
February 10, 2022, 9:12pm
1
Can you believe the first professionally published Elixir book was published just 8 years ago? Since then I think we’ve seen more books for Elixir than any other language of a similar age (except maybe Swift).
Which ones have you read and which ones are your faves?
3 Likes
I’m kinda new to elixir and just read a couple of books but I really liked Programming Ecto: Build Database Apps in Elixir for Scalability and Performance. Well written and really made med understand ecto, changesets etc.
4 Likes
crova
February 10, 2022, 9:48pm
3
Elixir in Action is a HOF to me.
I also really liked the weather station with nerves, quick pace and straight to the point, lots of fun there.
I’m starting Chris’ metaprogramming one, I’ll report back later.
3 Likes
cmo
February 11, 2022, 7:55am
4
Elixir in Action
understand Elixir basics and OTP
Designing Elixir Systems with OTP
lots of good principles explained
Concurrent Data Processing in Elixir
6 Likes
ahamez
February 11, 2022, 9:35am
5
If I had to chose only one book, it would certainly be Elixir in Action!
4 Likes
srowley
February 11, 2022, 1:23pm
6
+1 Elixir In Action; great content as noted. Also just really well -written - I stopped multiple times to appreciate just how much better a given concept was explained relative to an average programming book.
3 Likes
AstonJ
February 11, 2022, 8:53pm
7
Awesome!
I have enjoyed all the books I’ve read to date, cross-posting my reviews here in case any newcomers are interested:
Programming Elixir
Just finished this book - loved it!
I’ve been reading it concurrently with Elixir In Action : I read 50% of Programming Elixir first (the language bits) and then jumped to Elixir in Action because it covers quite a bit of the same ground (especially the language basics, albeit at a faster pace) - this suits me perfectly because it saves me having to write notes; I like going over things to help ‘repeat and reinforce’ what I’ve learnt. These two books are a fantastic combo if that is your preferred learning style too.
I love how Dave holds your hand while going through the language fundamentals (quite in-depth too) - he fully explains all the related code and I feel this is really important when you are learning a new language as it stops you from feeling lost, which can put you off the language let alone a book! I think the overall pace of the book is great, especially if you are coming from another language.
If you’re wondering how it differs to EIA, it covers the language basics in more depth, as well as covering more topics (like Agents, Tasks, Sigils, etc). EIA on the other hand covers processes, OTP and deployment in more depth. Again, another reason why these two books make the perfect combo.
If you will be reading this together with EIA I recommend reading 50% of Programming Elixir first, then 100% of Elixir in Action, then finishing with the remainder of Programming Elixir (partly because it’s been updated more recently - so when you’re done you will be relatively ‘up-to-date’ ).
Overall, this book definitely gets a massive from me! If you haven’t got it - get it! Definitely one of Dave’s best books to date.
Now… I’m off to do Dave’s online course
Elixir In Action
Just finished this book - loved it!
I’ve been reading it concurrently with Programming Elixir I read 50% of Programming Elixir first (the language bits) and then jumped to Elixir in Action because it covers much of the same ground on the language side of things. This suited me perfectly because it saved me having to write notes (I find going over things is a great way to ‘repeat and reinforce’ what I’ve learnt). These two books are a fantastic combo if this is your preferred learning style too.
I am surprised this is Saša’s first book - it’s very well written. It moves at a quicker pace than Programming Elixir on the language side of things (which is another reason why I think they work very well together if read concurrently as mentioned above).
Saša also covers much more than just the fundamentals of the language; after the basics you cover processes and OTP in quite some detail (and from what I’ve read so far, goes into more detail here than PE). You actually build your own server process before he introduces you to GenServers (which I felt was an excellent way to demystify them) - you’ll definitely leave feeling as though you have a fantastic insight into Elixir and Erlang!
If you will be reading this together with Programming Elixir I recommend reading 50% of Programming Elixir first, then 100% of Elixir in Action, then finishing with the remainder of Programming Elixir (partly because of what I’ve said above and partly because PE’s been updated more recently - so when you’re done you will be relatively ‘up-to-date’ ).
Overall, this book definitely gets a huge from me! If you haven’t got it - get it! Well done @sasajuric - I can’t wait to see what you put out next!
Programming Ecto
Interim-review (continued in post below)
It’s summer here and as I try not being glued to my desk all day, I needed a book to read where it wasn’t strictly necessary to follow along with the examples. I chose this book after what @peerreynders said in his post above
I’m only 60% of the way through this book (chapters 1-6 as per Peer’s recommendation, and will be going back to Programming Phoenix now - edit - I actually ended up finishing the book as I was enjoying it so much! See the rest of my review in the post below…) but I just wanted to post a mini-review to say I’m really really really loving this book! It’s been one of the most enjoyable Elixir books I’ve read so far. Why? Because it’s sooooooooooooooooooooooooooooo easy to read!!
There are a number of reasons for this, in part it is because of the pace and well thought out progression of topics, but the thing I really appreciated, is that it seems to have been produced with those of us who use e-readers in mind; there’s absolutely no having to flick back through pages to review code that is spoken about. Code is either just before or just after it’s covered or (and I really appreciate this…) repeated if it is spoken about again. The output is also included, eradicating the need to actually follow along as the results are there in front of you. On top of that, since everything is well explained and at an even pace, the cognitive load required to progress through the book is relatively low if you already know the basics of SQL. All this makes reading on e-readers frustration free and a real joy.
The other thing I really like about this book is that it acts as a bit of a SQL refresher (in fact so far my only suggestion would have been to run with this and cover more SQL and how to do it with Ecto - though I’m guessing the remainder of the book may do some of that anyway).
The other reason I like this book is because it (perhaps obviously) showcases what’s so great about Ecto. Ecto has been put together very nicely and I like that it follows the Elixir theme of keeping magic to a minimum. The query syntax is pretty close to SQL query syntax, and I think this will make converting SQL to Ecto a lot easier than trying to do the same in other DB libraries or ORMs such as Active Record. It will also mean if you ever need to drop into raw SQL it should be a bit easier.
So my thoughts so far are… get this book!! It’s so incredibly easy to read that I’m pretty sure you’ll enjoy it just as much as I am!
Well done Eric and Darin!
My review - continued…
I’ve now finished this book! So here’s the rest of my review
I’ll start by saying that I wasn’t really sure what I was expecting from this book - I mean, how deep can a database library be? Or how involved might it be using one? Of course that was based on my experience with ActiveRecord. Well it turns out a DB library can be more than what you may be used to or expect, and I was very pleasantly surprised by this book as well as Ecto itself.
One of the things I’ve said numerous times about Elixir - that it and the community show us a ‘better way’ - is most definitely echoed in this book! Some of the things I learned that I didn’t know before are that I can create custom Ecto types, or use table-less schemas, or that polymorphism can be handled in several different ways - all with different pros and cons.
I also learned about upserts and transactions and as I mentioned in the book club thread , there was a very welcomed chapter on application design which covers separating the Pure from the Impure, (Phoenix) Contexts and Umbrellas! I really wasn’t expecting to see that in a book about Ecto and it was definitely very much appreciated.
I also enjoyed the chapter and details regarding Phoenix, and I agree with @peerreynders that it may actually be beneficial to read this book before Programming Phoenix (or as I did, after the initial part of it) - it is so easy to read and doesn’t require much cognitive load if you are already familiar with the basics of SQL and something like ActiveRecord, so you will finish it in no time!
Miss this book at your peril! It will show you why Ecto is different… and why Ecto guides you down a ‘better’ path. Isn’t that in part why we came to Elixir?
Well done @darinwilson and @ericmj (and for all your work on Ecto!)
Learn Functional Programming with Elixir
Whoo hoo I finished it! Here’s…
My Review
I really enjoyed this book! I think it’s going to prove incredibly useful for those of us who are coming to Elixir as our first functional programming language. But before I go into the details, I want to say that this book reminded me that you should never judge a book by its cover!!
Why? Well when I first heard about this book I immediately thought it was going to be Elixir’s version of the Ruby book by Chris Pine, called Learn to Program (an amazing book btw!). But it’s not - this book goes much further down the rabbit hole! In fact, I reckon it could even drop ‘learn’ from the title and simply be called Functional Programming with Elixir. Having ‘learn’ in the title makes it sound as though it’s for newcomers to programming in general - but maybe that’s just because I’m aware of the aforementioned Ruby book which also happens to be published by PragProg.
For the same reason, I’m also glad I read this book after Programming Elixir and Elixir in Action. Because the focus of those books are the fundamentals of the Elixir language and OTP, and that’s why they cover them in great detail. The focus of this book however, is functional programming …with Elixir. So the aim of this book isn’t to teach you the ins and outs of Elixir and OTP, it’s to teach you the fundamentals of functional programming - and just so happens to be using Elixir, but, while also showcasing Elixir’s advantages in the area and how it approaches and tackles common problems using functional programming.
So this book is for you if Elixir is your first functional programming language or maybe even if it’s not, and you want to see how Elixir is functionally minded. It will go into detail about things like recursion - (which btw, is a deeper topic than I first thought!) for instance, just like in Elixir in Action where you build a genserver and supervisor from scratch using bare processes, here you build a Map function using recursion. I LOVE it when books do this, because it helps give you a much better understanding of what is going on and helps make things ‘click’.
If you still don’t think you need this book - here are some questions for you: Do you know functional concepts and terms such as Divide and Conquer, Decrease and Conquer, Unbounded Recursion, Pure Functions, Impure Functions, Higher Order Functions? Do you know what Map and Reduce are really doing under the hood? Do you know when to use Comprehensions or Monads or Try and Rescue/Throw or With? Or what about when to use Protocols or Module Behaviours? If not, this book will teach you, and much more!
I’m glad I read this book - and if you read it, I think you will be too!
Well done @ulissesalmeida , this book definitely fills a void and I think will prove very useful to a lot of people
Programming Phoenix
(Not a review as I never got around to finishing it but just some quick thoughts)
I’ve just started reading this but wanted to quickly say that the preface and opening chapter (everything up to the beginning of ‘Part 1’) is not only one of the best openings of any book I’ve read, but also does one of the best jobs to sell the idea of a piece of technology - ever!!
I was going to suggest PragProg consider making it a free download - because I reckon it will do a phenomenal job of helping drive adoption of Elixir and Phoenix …which in turn will mean significantly more potential customers/readers - so a win win for everyone but guess what? It’s already available as a free download!! (Get the preface here and the introductory chapter here .)
Well done Chris, José, Bruce, Jacquelyn, PragProg and anyone else who made that chapter what it is whenever anyone now asks “Why Elixir?” I’ll definitely be including this resource and I can’t wait to read to the rest of the book!
I really want to read Programming Phoenix from scratch, but think I am going to wait until it’s updated for LiveView…
6 Likes
Faves in order are:
Elixir in Action
(a tie) Programming Phoenix & Phoenix LiveView
Designing Elixir Systems With OTP
After I had finished these I really felt at home in Elixir and being able to reason through most issues I had come to face in my day to day coding with the language.
I just wish there was a book of the same quality as the above that goes over elixir releases, clustering and deployment into containerized environments! I’ve read manuals and many an article. There is just something about a good book that succinctly expresses that knowledge in a way I can hand to our new developers that is enticing!
1 Like
egze
February 14, 2022, 5:39pm
9
Elixir in Action
Designing Elixir Systems with OTP
I think without the “Elixir in Action” I wouldn’t be able to appreciate the “Designing Elixir Systems with OTP”.
1 Like