Recently I’ve been spending a lot of my free time absorbing as much as I can about an exciting Functional Programming language called Elixir. For those of you that don’t know, Elixir is somewhat of a spiritual successor to Ruby, and therefore Phoenix (the web framework for Elixir) could be considered it’s Rails. Let’s take a look at my learning path and what you can do if you’re interested in becoming a proficient Elixir & Phoenix developer!
What is Elixir / Phoenix?
Step 1 – Read up!
Before you can get your hands dirty you need to at least understand the language, its syntax and nuance, the many libraries and tools available, etc.
👍 Programming Elixir 1.3: Functional |> Concurrent |> Pragmatic |> Fun
By Dave Thomas
This is a fantastic book, and of the 4 that I list, by far the single most important and the one that gets my recommendation. The author’s approach is great, the practice exercises provided work really well to give you a better understanding and comfort level with the language (to the point that you’ve learned so far throughout the book) and are just the right level of challenging to not be frustrating.
Elixir in Action
By Saša Jurić
This is the 2nd book I read on Elixir. It is also a really good book and goes into great detail about the language and its syntax. I got a little more than halfway through before I switched to Programming Elixir 1.3 (above) and found that more things “clicked” and I worked through at a first pace with the latter book. That being said this is still a very good book on Elixir.
Introducing Elixir: Getting Started in Functional Programming
By Simon St. Laurent
This is actually a really small book so its a great way to quickly get up to speed on the language and syntax. I can’t say its the most exhaustive book, but for what it does it does pretty well. That is to say, it gets you up to speed pretty quickly. Still, this is 3rd on my list of recommendations.
Step 2 – Practice, practice, practice!
Now that you’ve got a good solid grasp of the language syntax and fundamentals, its time to go through the paces and really start to challenge yourself. Trust me, with any new language this is going to be the most painful part. You’re going to get stumped, you’re going to feel stupid, and it’s going to generally suck at first. Thats very common and understandable – you just need to stick with it and you will get better every day!
Do the practice exercises that are included with whichever book you decide to read. These are provided for a reason – and generally the author provides them in such a way that they gently introduce you to the concepts that were just covered so you’re not bogged down with trying to figure out too much at any give time.
More Reading – Phoenix:
Programming Phoenix: Productive |> Reliable |> Fast
By Chris McCord
This is a fantastic book that very specifically covers Phoenix. This book is a must read if you’re planning on doing web development using Elixir. Of course read this book after you’ve read at least one of the books from the list above.
Videos / Online Training:
If books are not your thing, there is a ton of material available online in the form of videos and screencasts specifically dedicated to learning Elixir and/or Phoenix:
- Udemy – The Complete Elixir and Phoenix Bootcamp (make sure you wait for one of their sales!)
- Daily Drip – Learn Elixir Quickly
- Elixir Sips
Step 3 – Meet other Elixir devs
Make sure you get out there and find a local Meetup for Elixir so you can start chatting up other developers that are experienced or just getting started like you! If you can’t find a local meetup specifically for Elixir, see if there is one for Erlang and if theres not – time to start a new Meetup group! 🤓
Step 4 – Just build something!
Equipped with this new found skill of Elixir its time to put yourself to task and actually just build something. Anything! Take a simple pet project (or 2, or 3) you’ve done in the past and rewrite it using Elixir (and Phoenix)! Find an existing open source project built using Elixir and study its source – contribute even!