How To Learn Elixir For Free With Zero Experience
October 9th 2023
If you’re 100% new to coding, I’d recommend Ruby on Rails as your first language since the syntax is similar to Elixir.
Don’t Spend A Dollar Until You’re Absolutely Certain Elixir Is The Next Programming Language You Want To Master
Learning a new language is hard, but it’s not impossible. We need to get brilliant at the basics, which can be done absolutely for free, to learn Elixir as your next programming language.
Rather than spam out a bunch of links, let’s go over how to use the information first so you’re not banging your head against the wall for the next 3 - 5 years.
1. Set a Goal
Probably not what you were expecting from this article based on the title but let me briefly explain why a goal is important and how to leverage that information.
We filter out, make assumptions, or completely ignore about 98% of the world around us to prevent information overload. When you have a goal and reinforce it often you turn yourself into a homing torpedo with your destination as the target.
Your subconscious mind will then automatically highlight all relevant information that can contribute to or support your goal and bring it into the 2% awareness for you to act on.
Discover a future image of yourself that excites you and use it as motivation to keep you progressing down the right path of your decision tree of life.
2. Best Free Resources:
Quickly familiarise yourself with each resource before you start coding so you know where to go for what; explore all the nooks and crannies to uncover the hidden gems.
Poke around, and explore before you start coding.
Get familiar with the tools available to you and sharpen your axe before you start chopping:
Elixir-Lang is the source. The home page does a great job of pointing you in the right direction when it recommends the Getting Started Guide and Learning Page. Cases, Blogs, Docs, and Install can also offer a lot of value depending on which stage of self-educating you’re in. Overall, you’re going to come back here often so bookmark it in your browser.
Exercism isn’t Elixir specific but it does provide over 156 exercises and a level of mentorship to help guide you down the right path. Pretty much everyone goes through here so rest assured you’re solidifying a strong foundation.
Alchemist Camp has an amazing introductory page that allows you to skip straight to your skill level. The majority of the screencasts are free so don’t feel pressured to upgrade until you’ve completed everything in this article.
Elixir School has a lot of lessons and starts from the very basics into intermediate and advanced material. I also love that they list out which popular podcasts to listen to in the footer of the site so you can increase your productivity and learn with your ears and not just your eyes.
Elixir Casts also has a freemium model but again, you can program through a great deal of the basics first before considering which platform can offer you the most value.
Learn Elixir also offers a Free Preview if you wanted to experience levels 1 & 2 for yourself.
3. Brilliant At The Basics:
Let’s set a standard for what the basics are so you know what to look out for:
Variables and data types: variables are used to store data, and data types refer to the different types of data that can be stored, such as integers, strings, and booleans.
Conditional statements: these are used to execute code based on a certain condition. Common conditional statements include
Loops: loops are used to repeat a certain section of code. In Elixir we tend to prefer higher order functions using
Enum.each(items, fn), though comprehensions with
forcan be useful for their power
Functions as first-class citizens: In Elixir, functions are first-class citizens, meaning they can be passed around like any other value. This allows for a functional programming style where functions can be used to manipulate data and create higher-order functions.
Immutable data structures: Elixir encourages the use of immutable data structures, meaning that once a variable is assigned a value, it cannot be changed. This helps to avoid bugs caused by unintended side effects and promotes a more functional programming style.
Pattern matching: Pattern matching is a powerful feature in Elixir that allows you to match values against patterns and execute code based on the match. It’s used extensively in Elixir to handle control flow and to destructure data structures.
Concurrency: Elixir is designed to support concurrency and parallelism, making it well-suited for building distributed systems. Elixir provides lightweight processes that can communicate with each other through message passing, allowing for highly concurrent and fault-tolerant applications.
OTP: OTP (Open Telecom Platform) is a set of libraries and tools built into Elixir that provides a framework for building fault-tolerant, scalable, and distributed systems. This is your standard library for the language which includes basic features such as supervision trees, gen servers, which are used extensively in Elixir applications.
Once you have a firm grasp on these concepts you can feel comfortable to start stacking complexities that align with your interests.
4. Connect With The Community:
The Elixir community is known as a safe haven for developers as there are quite literally close to 0 toxic trolls raging on their keyboards.
It’s good to add a little extra Elixir to your life, so whichever platforms you frequent most you can either actively or passively become more integrated with the community.
Ask questions and learn from the people who are where you want to be, read other people’s answered questions, discover which companies use Elixir in their stack and why and if they’re hiring, collect bits and pieces of information from blogs or posts, and stay on the bleeding edge of Elixir’s evolution.
In no particular order and based on my personal experiences up to October 2023:
Facebook has a group called Elixir Programming Language which sees about 1 post a week from less than 3,000 members. You can easily network with new members from all over the globe but I’m finding more people leave Facebook every day.
LinkedIn has a group called Elixir Programming which I frequent most often for networking purposes. I usually see 3-4 posts a day on topics including opportunities, meetups, articles, and podcasts from the group’s 7,000 members.
Twitter has a lot of good people to follow if you want to keep up to date with the latest news, articles, or releases. Any business with the word Elixir in the name is likely going to provide value to your feed and from there, you’ll start to recognize which individuals also contribute a great deal to the community.
Reddit has a subreddit called r/elixir which sees about 1 or 2 posts a day mostly consisting of podcasts, blogs, or people asking for help from its 25,000 alchemists. Overall, not as much action as you’d think considering it’s the second-largest group but when I’m scrolling and something does come up, I’m always delighted.
Elixir Forum is special because it is a platform exclusively designed by and for the Elixir community. If you’re stuck on something, chances are someone else got stuck on it too and trusted answers await you. Quality over quantity is embraced by the 4,500 members diligently maintaining accurate information over a dozen categories.
Slack hosts the biggest group at 35,000 members and is in my opinion the #1 resource to ask questions and get answers. With over 50 different channels I recommend you keep it simple and start with #beginners and expand as you see fit. At the start, it will be hard to know who provides accurate insight and who’s confidently incorrect but you’ll quickly see no wrong answer goes un-fact-checked, after all, Elixir is world-class at fault-tolerance.
Discord is excellent because they have an outstanding case study for using Elixir in their stack which you might have already seen on the Elixir-Lang site. As far as the community goes I will admit I haven’t spent much time there myself but there are over 11,000 members and dozens of great channels topics of which I would recommend “getting-started” and “support” at first.
Stack Overflow isn’t the same as the other platforms as it doesn’t attempt to bring people together, but that doesn’t mean you should ignore it. As a proverbial elephant graveyard of 10,000 questions and answers dating back to 2012, you’re going to learn something.
YouTube I thought of adding as one of the free resources above but decided it belonged here because the content is created by the community and you can engage in the comments. You know how to use YouTube so just play around with it and watch stuff.
Mastery Is A Marathon:
Be patient with yourself and focus on compounding small wins like getting 1% better every day.
Any inch of progress toward your goal today is a step ahead of where you were yesterday.
For every question, there is an answer, for every problem a solution, you just have to know where to look and who to ask.
Hitting a glass ceiling can be frustrating so if you go through everything above and you’re still dead-set on reaching your goals.
If you feel like you’ve exhausted all of the free resources. you’re bored reiterating the basics, and you want to shave off years of trial-and-error troubleshooting.
If You Are Absolutely Certain Elixir Is The Next Programming Language You Want To Master, It Is Worth Investing In Yourself!
Close any general gaps in knowledge and reinforce best practices for a production-level quality of code.
Connect with Elixir experts and close the feedback loop.
Network with industry giants to form partnerships or find full-time employment.
Reach your goals but keep setting higher ones.
Be happy, be healthy, and thank you very much for reading through this article. Best of luck to you on your journey toward Elixir mastery!