Step #1 of my Learning Elixir journey is complete.
I had expected to mostly read and instead I worked through most of the exercises.
A useful first step:
- The Elixir syntax no longer looks quite so foreign.
- Pattern matching caused a fundamental shift in how I think about writing functions.
- I’m confident I can write and deploy a simple application.
- I have a reasonable understanding of message passing.
- Still lots of practice mapping and reducing.
- Actors!
I appreciate the positive feedback I’ve received from my posts. The primary audience for these posts is myself, to keep myself motivated and gauge my progress.
Still lots to learn, the dance continues and yes, Dave, I did have fun. Thank you.
Notes on the Book
I found Programming Elixir ≥1.6 to be an excellent (though slightly dated) introduction to Elixir. Suitable for anyone who already has experience with at least one language and can adapt to some minor version differences.
Many of the exercises required learning from outside the book. Nothing that a little time with a search engine couldn’t resolve, but possibly too confusing for a first-time learner.
A number of the exercises required a fair bit of rubber duck debugging and multiple re-reading of chapters.
Most of the code exercises are non-trivial. Having worked through most of them has built up a decent set of code fragments from which I can draw for future projects.
Towards the end of the book I started skipping exercises. Topics such as macros and behaviors are not features I’m not expecting to be coding any time soon. (Using, yes. Creating, no.) Still spent a fair amount of time on the topics which I found to be clearly and well presented.
Programming Elixir is starting to show it’s age. It’s designed to teach Elixir 1.6 and Elixir is now at 1.14. I found this to be only a minor annoyance until the chapter on Distillery, which has changed significantly.
Check the (few) errata.
The book’s source code is helpful as it can be difficult to copy source from the e-book.
All notes and comments are my own opinion. Follow me at @rgacote@genserver.social