alamba78

alamba78

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

So, I’ve just finished Introducing Elixir. I did skip the last chapter on Using macros to extend Elixir as I will get to that when I get a good grip on Elixir and OTP.

Now, I recently bought Dave Thomas’ ebook Elixir Programming 1.2. Should I go into that next or maybe Elixir in Action?

Also, how important is it to learn Erlang at this point? Should I wait till I have a better grasp on Elixir? I did look at Erlang in the past and boy did I hate all the boilerplate. After being spoiled with Elixir, I’m not really looking forward to digging into Erlang unless it will be beneficial.

Also, has anyone read Francisco Cesarini’s new O’Reilly book, Designing for Scalability with Erlang/OTP? I have heard great things about this book but am wondering how much I’ll enjoy going through Erlang code. LOL. I’ll bite the bullet if I have to but would have loved the same book in Elixir. Maybe someone else who’s Erlang phobic can tell me of their experience with that book.

Most Liked

dgamidov

dgamidov

@alamba78, I am using Elixir with Phoenix and this is my current path:

  1. “Introduction Erlang” - started reading this book, but switched to “Introduction to Elixir”, because I felt that I need only Elixir at that moment.
  2. https://elixirschool.com
  3. “Introduction to Elixir” - started reading this book, but switched to “Programming Elixir 1.2”
  4. @pragdave “Programming Elixir 1.2/1.3” - extremely useful.
  5. @chrismccord “Programming Phoenix” - extremely useful.
  6. Paulo A Pereira “Elixir Cookbook” - good book, lots of examples.
  7. @sasajuric “Elixir in Action” - super useful to understand OTP.
  8. @bentanweihao “The Little Elixir & OTP Guidebook” - next book to be read.
  9. @chrismccord “Metaprogramming Elixir” - started reading this book, but I don’t see how I can implement this knowledges, yet, so I switched back to “Programming Phoenix”
  10. Videos in Youtube about Elixir and Phoenix
  11. Blogs.

I also is interested if “Elixir in Action” should be read?
Already read. I advise to read. I think I will read it again several times :slight_smile:

10
Post #2
rvirding

rvirding

Creator of Erlang

No, sorry. Me and writing books don’t go together. It would never be finished. It is bad enough trying to write blogs. I need to get worked up for that to happen, and I usually manage to say something which annoys people. :smile:

hubertlepicki

hubertlepicki

Not entirely books, but just my 2c:

https://www.learnelixir.tv/ really good of screencasts to watch about Elixir. Watched it when I was working out and introduced me to some basic stuff.

http://www.redfour.io/ recent stuff, I have scanned through it. Looks like very good intro, at least the book version. I need to watch the videos at some point.

Elixir in Action seems best if you know Erlang already, I guess that’s sort of target audience. Programming Elixir 1.2 is okayish but does not cover a lot of important stuff. It covers philosophy and general language feeling very well, however.

The Little Elixir and OTP guideboo - so far my fav book about Elixir, I think.

gausby

gausby

When I started out the books wasn’t released yet, and they came out as early pre-releases with a discount so I just bought them as they were announced. I read David Thomas’ Programming Elixir a couple of times as it was updated while the language was developed, and I read Elixir in Action when it was almost done and re-read it when it was final.

Today I would recommend reading Dave Thomas’ book for the introduction to the syntax and topics such as recursion and immutability; then read Elixir in Action but skip the first section as this has already been covered in Programming Elixir 1.2

Elixir in Action is a must if one want to understand how to build systems with state with OTP in Elixir.

peerreynders

peerreynders

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.

Where Next?

Popular in Chat/Questions Top

jace
I wanted to write a library for interacting with a Web API as a practical way of learning Elixir. However, there seem to be a lot of diff...
New
meraj_enigma
Hey, What’s a good resource to learn Microservices in Elixir/Phoenix? Is there any book/docs/Github repos that I can refer to? Thanks, -M
New
wolfiton
Question: Can someone recommend me some good resources on learning performance for phoenix elixir applications and a design pattern I sh...
New
armanm
I know zero downtime deployment can mean different things depending on your application and what your users can tolerate so expectations ...
New
pietrofxq
I’ve bought the following books: Programming Elixir 1.6 Programming Phoenix 1.4 Programming Ecto Functional Web Development with Elixir...
New
davearonson
I am looking for smallish problems to solve, using Elixir concepts beyond the basic syntax and concepts of Elixir as a language, such as ...
New
boddhisattva
Greetings everyone, At my current workplace we're evaluating different ways of building a microservices architecture for some parts rel...
New
phykos
In Ruby, which is very similar to Elixir I do this: def test yield end test do puts("sup there") end Here, the yield keyword will be...
New
Twfo326
As a novice dev I’m trying to keep the curriculum as lean as possible. My requirements are modest: build simple CRUD apps with Phoenix...
New
Allyedge
So, I want to get an Elixir book, but don’t know which one to get. Both Programming Elixir 1.6 and Elixir in Action looks interesting, b...
New

Other popular topics Top

stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
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
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
johnnyicon
Hi all, I've just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I'm trying to use Postg...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New

We're in Beta

About us Mission Statement