I am short on free time lately but I’d suggest somebody make a curated list of Erlang/Elixir books sorted by expected reader level.
F.ex. books that intermingle both functional programming and Elixir can be a perfect entry point. And only after one consumes such a source should they go to a dedicated Phoenix or OTP book. IMO anyway.
Anybody else feels the same way about a curated list sorted per expected reader level?
We sort of have something similar in our https://elixirforum.com/c/learning-resources/learning-questions section - where people say what their experience is and seek recommendations based on that… so maybe that could be used as a starting point, or for a simpler version create a list of those threads per ‘experience type’.
Alternatively, we have start a number of threads such as:
- Which learning resources do you recommend for people new to programming who want to learn Elixir?
- Which learning resources do you recommend for people new to Elixir but not programming?
- Which learning resources do you recommend for people new to functional programming?
How many levels will we have? I suggest the following:
The first 3 levels are self-explanatory. The 4th level (the name is up for discussion) should be when someone wants to got details about BEAM and eralng itself. Ideas? Do we need a 4th level at all?
Given this structure, I would recommend “Elixir in Action” for the intermediate level. based on the recommendations give to me by the community.
These levels are way too generic. I’d suggest these:
- Doesn’t know programming.
- Knows imperative programming / OOP, but not FP.
- Knows FP, doesn’t know Elixir.
- Knows FP and Elixir but doesn’t know OTP.
- Knows FP, Elixir and OTP.
The last one would probably only need mentoring on things like Phoenix, Absinthe and other de-facto standard libs.
I personally like this categorization better mainly because I can turn it into a list of checkboxes and then based on which checkboxes I pick have someone (an algorithm) suggest me a list of books and material
My only concern is that I don’t see erlang there, and I have the distinct impression that given enough time, any Elixirer will eventually venture into BEAM and erlang.
The thing is that everyone would have different opinions about when a book for beginner ends, and the level intermediate starts, same for intermediate and advanced.
IMO beginner is when you know nothing about functional programming or just have experience with a common OOP language, I think that we all could agree here. Intermediate would be where you start to learn common libraries like Phoenix, Nerves… and using others to extend them like Überauth, Comeonin… also it is a good point to learn the basics of Erlang. Last but not least, advanced, where you learn the rest of the language’s features, like metaprogramming, OTP, NIFs, toolkits like Absinthe and Erlang in depth.
I like the levels purposed by @dimitarvp but Erlang should be included too, when I was starting with Elixir I found this website very useful: https://startlearningelixir.com/
Lastly, I’m not trying to be disrespectful with authors for its work, but I personally don’t trust courses or books published by Packt or Udemy, I did have bad experiences I’m afraid.
To move forward with this topic, I would suggest that instead of making a list of levels, we make a checklist.
Such checklist would have a different set of topics, and people would then pick what they want to focus on. Based what the user picked, we could then suggest some books.
I’m not sure how this would be implemented in Discourse though. Any ideas?