You already have some great books there so what I’d personally suggest is reading a little bit of all of them and then read whichever one resonates with you most or whoever’s writing style you prefer
Often books cover many of the same topics but the author and their writing style can vary greatly - so definitely let your instincts guide you. The great thing is by reading multiple books at the same level also gives you a different perspective about the same thing or similar topics, and this can help you understand things better as you get multiple perspectives. That’s what I think anyway - give it a try and let us know how you get on
I would definitely recommend “Learn You Some Erlang” as a first read, and front to back cover (or at least beyond the OTP chapters) to get started and comfortable (trust me, you’ll enjoy it ), and only then pick up other reading material to foster and bolster up your knowledge. If you start reading other books in parallel too soon, you’ll get confused (that’s my experience at least). The other books dig deeper into details which you don’t need to get off the ground. You should know them if you want to become a good Erlang programmer, but the first step is to become just an Erlang programmer
Lies! Don’t believe anything you read on the Internet
That said, my reaction when I had my first look at Erlang code (a RabbitMQ example plugin) was something like “OMG geez! ”
But seriously, it’s not really difficult, just very different (“somewhat scary and alien”, I read elsewhere in this very forum) from most other (frilly brace) languages. Then again, many things in Erlang are different, so it fits.
When you get past that first “culture shock”, you usually find that it is actually pretty nice. It just takes some time to appreciate the fact.
And IMO, it is a good thing that the syntax of Erlang is so different from other languages. My brain at least has less trouble switching out entire contexts than just some parts. For example, I once had to switch back and forth between Java and PHP (laugh all you want, it pays the bills ), and I was always mixing up periods and arrows and $- and non-prefixed variables etc. I don’t have that problem when switching to or from Erlang, my brain just goes into Erlang or non-Erlang mode. I even found that, while recursion is just natural to me when in Erlang mode, I really struggle with it when using another language.
Oh, and you may want to try the Erlang track on Exercism after your first “baby steps”, to practice and improve your skills as you go along. They have small coding problems for you to solve (77 on the track, last time I looked), ranging from simple to difficult, and you can (should) upload your solutions and have them reviewed and discussed with you, all for free.
I’m still very new to Erlang and I might not have great advice, but I can tell you what has been working for me. I started with a Udemy course and Learn You Some Erlang. But I also read parts of Introducing Erlang, Programming Erlang, and Erlang Programming. Just recently, I also started reading Erlang and OTP in Action, which has been really great. I wish I had read the first few chapters of that first since it explains the reasoning about why Erlang exists and why it does things the way it does. It sets the stage really well.
I’ve been rotating through each of those books, sometimes re-reading sections. Each time I do that, I pick up something new, especially since I would often skip over things that didn’t make any sense to me at the time.
I’m now going through the Udemy course again and also working through exercises at Exercism.org. There is an Erlang track there and I highly recommend it.
I hope that helps a bit. I’m sure you’ll get much better advice from the long-time pros here, but I thought a fellow “newbs” advice might help, too.
It’s also good, but it moves fast and doesn’t have as much explanation as the first one, so I would recommend doing this one after you’ve done the first course. I believe Daniel is working on another follow-up course now, which I’m excited to check out.
If it is reading you want, you may also want to try the official Erlang IRC channel, #erlang on Libera. Don’t expect a huge party going on there, though, the channel is usually very quiet . You can spend days there and the only thing that happens are joins and parts. With the advent of this new forum, it may become even quieter there…
That said, I sure wouldn’t want to miss the time I spent in #erlang and #ninenines (which is gone now, sadly)… Heck, I guess I should drop by there again one of these days and see what’s up
Advent of code is, IMO, a tad more challenging in Erlang - it seems to be geared more towards Python. December is by far my busiest month so I never get very far with it, no matter how good my intentions.
In my opinion, that might be true if you try to solve puzzles in the shortest possible time in order to get onto the leaderboard.
All of the puzzles can be solved with Erlang or any other BEAM language. I would say that some puzzles, for example those involving recursion, are easier to solve in a BEAM language. For some puzzles, the running time can be a little longer (minutes instead of seconds) if one tries solve it in a purely functional way, but that can usually be overcome by using ETS or the process dictionary.