Hear hear, that is why I am a huge proponent of people learning a low-level assembler (old Motorola or so, not necessarily a nasty one like x86), as well as LISP. Both of those prepare you for both understanding how the CPU works and high level concepts (every high level concept if you learn LISP well).
I’m afraid I have been spoiled. I will not name by which language.
But Peer’s quote reminds me of Edsger Dijkstra:
“It is not only the violin that shapes the violinist, we are all shaped by the tools we train ourselves to use, and in this respect programming languages have a devious influence: they shape our thinking habits. This circumstance makes the choice of first programming language so important.” (https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs/Haskell.html)
I think Elixir is approachable for beginner programmers. However, my impression is that most of available resources (including my own book) are targeting experienced programmers. A suitable beginners book might be Introducing Elixir. I didn’t read it myself, but from what I’ve heard, it’s a very gentle introduction to Elixir, so it might be a good place to start.
If you’re simply learning for fun or to become a better programmer, I do believe learning the basics of Elixir and how to think functional will help you in almost every other language you encounter. You can write functional code in other languages or use some other functional language altogether, but I feel the Elixir syntax is very approachable and can help you get started quickly.
At the end of the day, I’d not approach it like one language versus another. I love Elixir, so obviously take my suggestions with a grain of salt - but I’d focus on the basics of the language to start. How to handle iterating over a list of data. Learn the Enum module. Learn about Maps. See how that compares to other languages and their core libraries. Basically just get in there and get dirty. After that, learn the more Elixir-specific stuff if you want - OTP related things, Phoenix, etc. But I would stay away from all of that if you’re just beginning.
It should be noted that Études for Elixir (O’Reilly) are the companion exercises to the book (see also When learning, what order of books did you start with? and Which Elixir books have you got/read?). Also note the a 2nd edition is slated for November - though I don’t think that is a good enough reason to put off getting started with the first edition .
If you want to learn something interesting you can try
This XSeries presents a programming method that will enable you to produce well-structured programs — programs that tell a clear story about what they do, are well tested, and are easy for others to improve. This series differs from other online programming courses by focusing on a general design method, rather than how to program in a specific language.
Thank you for your recommendations. I am thinking to buy Programming Elixir 1.3 and Introduction To Elixir 2nd.
I think both of these books cover the same stuff. Better buy one of the two and the Phoenix book.
What I did is after reading Programming Elixir, I went through the guides on http://elixir-lang.org/ to refresh what I learned, and it turned out perfectly!!
If you want to buy 2 books for Elixir I would recommend one of the introductory and then Elixir in Action.
I think Elixir is a really wonderful language to start out in, because when you start out, you don’t have any patterns that you need to unlearn. Many people that come from other contexts (especially non-functional ones), face this when starting with Elixir. (Although it is a lot easier to migrate to Elixir than, say, Haskell).
I think it is better to learn programming in an environment that actively points you to a way of writing understandable and maintainable code, because once you’re used to doing this, you will carry that over to other languages, including the ones that might otherwise seduce you to write in an unmaintainable way.
Agree with everything you said except for recommending Programming Elixir. Programming Elixir is not beginner friendly. Introducing Elixir may be a good starting point before jumping into Programming Elixir.
i’d agree with this
i’m a newbie for myself (half a year online courses and half a year working as RoR junior developer)
and i agree completely that Programming Elixir is not the book for a beginner… i started with it, but after about 30% of the book i just can’t move forward and switched to Introducing Elixir, which is much easier…
now i’m back to Programming Elixir
in my opinion this book is for experienced programmer learning new language, not for a student learning programming from zero (even not for learning with some small experience in programming)
I can definitely see your and @max-underthesun point. I have not read Introducing Elixir and though it would be about the same. Thanks for pointing it out.
You mentioned that you are an ROR programmer. Does knowing Ruby and ROR first help you learn Elixir?
Any way, thanks for the suggestion, I will read Introducing Elixir first.
i’d say it helps and it making it more difficult simultaneously ))
it helps because a lot of things about programming you already understand and not just understand like theory, but you know exactly why you may need this function or this “way of doing” (pattern) in development…
and on the other hand, like people already pointed here “your first language has an incredible impact on how you think about programming”… and it can be a real pain sometimes to understand concepts of a new language, especially if your first is from another programming paradigm
in my case Ruby is a kind of language you can start programming without any knowledge of “any real programming stuff” … all you have to do is to learn some syntax and use some common logic…
Elixir seems to me more “mathematical” and more “programmatical”… especially if you are starting from Programming Elixir, not from Introducing Elixir (and this is exactly what i was looking for)
The 2nd edition is available as an Early Release right now: Introducing Elixir 2e - O’Reilly Media
Do you know if they do free upgrades like Pragprog? I have the first edition but still haven’t got around to reading it
I’m in the same boat. There used to be an option on your account to upgrade to the newest edition @ 50% discount but I haven’t seen that for some time. I’ll probably monitor and post if it becomes a “deal of the day” or another relevant 50% sale comes along.
That being said as “member” (i.e. account holder) there is the buy 1 ebook, get 1 free; buy 2 ebooks, get 2 free; buy 3 ebooks, get 3 free; and so on… code - in case you are buying anything else.
Wonder if one of us could email them to ask?
It’s one of the reasons I stick with Pragprog as they are brilliant when it comes to updates. Manning do as well sometimes but not always from what I remember.