From Elixir Newbie to Elixir Developer: Create Your Learning Path.
The Steps to Take to Become an Employable Elixir Developer.
Your Elixir Learning Path.
Deciding what you should learn is critical. You need to be exposed to new information and understand what the Elixir ecosystem looks like.
You can waste a lot of time learning things that aren’t critical and never learn key skills that actually matter to be a capable elixir developer.
Unfortunately, you know the least you need to know about what you should learn when you first start learning.
Right now, there aren’t a ton of terrific resources for new developers — at least not as many in some other languages. So the standard advice is to “read the documentation.”
This is fine. The Elixir documentation is excellent. However, most documentation necessarily prioritizes accuracy over understandability. It’s written by experienced developers and read by experienced developers. No matter how good it is, you can’t optimize for both experienced and new developers simultaneously. So other than reading the documentation, what can you do?
Learn Basic Elixir Syntax.
Elixir School is a great place to start. They do a great job ordering topics from beginner to advanced and from most important to less important.
The basics section has more than enough information to get you started.
I also wrote a brief primer for Elixir: The 20% of Elixir Syntax You Need to Understand 80% of Elixir Code.
For a gentler introduction to Elixir, you may also consider the Joy Of Elixir online book.
Apply Basic Elixir Syntax.
To learn and comprehend the information in Elixir School. You’re going to need to apply the information. Programming challenge sites are a great way to use Elixir to solve small technical problems before working your way up to larger projects.
Excercism.io is a great place to get started.
Create Elixir Projects.
Once you’re ready to start applying Elixir to creating projects, Alchemist Camp is a free resource for follow-along projects with Elixir.
After you feel comfortable completing those types of tutorials, you’ll want to break off from that and build your own project. But, unfortunately, there’s only so much you can learn from follow-along tutorials compared to solving a problem from scratch.
If any are available to you, find Hackathons to get experience collaborating with a team of developers. Hackathons are collaborative events where people in tech get together and “hack” a project together, usually in a short period of time, like 24–48 hours. You’ll learn a lot from working with a group that you could not learn by working on your own.
If you’re interested in web development in Elixir, then Phoenix is the go-to framework.
Web development makes a lot of sense if you’re transitioning into Elixir either as a new developer or developer from another industry, so learning Phoenix can help you get your foot into the industry.
To learn Phoenix, you can start with the Phoenix Documentation. You’ll likely want to go through:
Alternatively or additionally, you can watch the Elixir Cast for getting started with phoenix and build a blog application with Phoenix in less than 4 minutes.
Here’s a quick summary of the concepts you should try to make sure you understand, with links to resources for how to learn them:
- Routing: How to route incoming requests to the controller responsible for handling them.
- Controllers: Modules whose functions are called by the router in response to incoming requests.
- Views and Templates: Views render the body of the response to be sent back to the client. Templates build the body for the view to render.
- Ecto: Handles data validation and persistence in Elixir and Phoenix applications. For a brief guide on Ecto, you can read my summary Ecto with Phoenix in 4 Minutes.
- Testing: Write automated tests for the modules in your application.
- Debugging: How to debug your Phoenix/Elixir application.
- HTML: The standard markup for creating web pages.
- CSS/SCSS: Learn how to style your HTML elements.
Once you have a basic understanding of these fundamental Phoenix concepts, you’ll want to apply the concepts by creating your own side projects.
For more thoughts on how to pick a good side project, I wrote an article on how to pick your next side project.
By working on real-world applications, you’ll encounter problems and learn about concepts you would have a hard time covering on your own side projects.
Once you have a grasp of the core Elixir and Phoenix concepts, you should have enough experience to land an Elixir/Phoenix developer job and then learn what you need to do on the job.
So good luck to you! I hope you the best and hope this overview provides you some structure for creating your own learning path and helps you better understand the wider Elixir ecosystem.