Learning a new programming language is an investment in time and money (if you purchase learning material). Sometimes a job forces you to learn a new language in order to be productive and to do your job. My personal preference is to learn a new language without the pressures of instant productivity, this is the route I took when I wanted to learn Elixir.
Attempt #1
I first attempted to learn Elixir in Q4 of 2015, but my schedule (lack there of) didn’t allow me the time I needed for deep learning. About two months ago I decided to go all in and start learning Elixir again. This time I would learn the language first, and then any frameworks I deemed necessary. Previously I opened up Programming Phoenix and tried to pick up the language as I went. I feel this approach does a disservice to Elixir, as it is such a powerful language even without frameworks. I briefly tried to read through Programming Elixir but I couldn’t find the time to commit.
To fully utilize the power of Elixir you should be intimate with OTP as well. I relate this back to learning Rails, it is fairly easy to pick up Rails but you can wield much more power when you know Ruby in depth. Although I wasn’t successful, my time with Elixir created a spark that would slowly burn into the fire it is today.
Attempt #2 – We have a winner
Book upgrades between versions are normally a paid upgrade, but I was elated when Programming Elixir 1.3 was a free upgrade. The book is a daunting 641 pages, I sat down and got to work. Over the next 4 weeks I completed all 641 pages and exercises. It was such a great book! I thought Elixir would be enjoyable to work with, but it turned out to be better, it is a lot of fun! The book isn’t without its faults though. Some examples have solutions that include language features that were not introduced yet. Later examples lack the excitement I had throughout most of the book. Neither of those faults take away from the learning experience or fun I had while reading the book.
Another avenue I explored was the use of flash cards to build my Elixir knowledge. Elixircards.co.uk sell very high quality flash cards filled with questions that will test your depth of knowledge. It’s great to grab a pack and go through them when you have some downtime.
I also cheated on neovim for a bit with VSCode, but I am back now.
What’s next?
I mentioned above that learning OTP should go along with learning Elixir, that is the next step. Dave Thomas (author of Programming Elixir 1.3) introduced me to OTP, GenServer, Agents, Supervisors, Workers, Tasks but not in the depth that answered all of the questions I have. Two more books are in my backlog to read, and the next one up is The Little Elixir & OTP Guidebook by Benjamin Tan Wei Hao. Also I will be continuing to use my Elixir cards and adding in Exercism.io exercises.
Leave a comment below and share your journey learning Elixir!