The Elixir Year: Month 3 Review
This post is the 3rd entry in The Elixir Year Series.
Q1 2025 is officially over and it's time to take stock of how I stand in regards to the syllabus I drafted over 3 months ago.
Foundation Focus
This quarter was scheduled for learning the foundational core of elixir, to which I say I've mostly succeeded. I'm familiar with the feeling of elixir, functional programming concepts, and can follow along with most code on github line by line. Concepts feel loosely linked; when I learn something new, it now relates to something else I've learned. This is a big shift from the start where concepts were amorphously floating around; unable to cluster.
The Struggles
Looking at my time tracking app, it's clear that I'm trying to do too much and spreading myself thin:
I've spent the most time reading & coding the to-do tutorial app in Elixir in Action, but then jumped to working on a Toy Robot tutorial project, and kept jumping around without finishing anything. I'd get bored after a few days of working on the same tutorial, find another one, get excited, shift, rinse & repeat.
In the syllabus, I listed the following as my aspirational project for Q1:
"A useful Elixir package hosted on Github with solid documentation, a contribution guide, hex package, and everything needed to learn the ins & outs of running elixir releases."
Way too big a bite. If I had focused all my energy on it, perhaps, but I'd argue in favor of exploration and exposure before drilling down on a single project. It was pure hubris to assume I could go from 0 to full grok of functional programming & the whole language in 3 months, AND contribute a useful project to the community with all the bells & whistles of a proper release. Funny enough, a helpful redditor said the same in response to my syllabus:
"Building a library for the language before you've used the language enough to understand the ecosystem seems like cart before horse." - SIRHAMY
Sir Hamy was spot on.
Lessons Learned
"A man chasing two rabbits catches none."
Trying to keep up with every single AI/LLM development while taking a Python AI Agents Course, reading 3+ books and coding two tutorial projects has left me feeling exhausted and win-less.
I'm also realizing that following along with tutorials is only teaching me so much. It's better than simply reading code, but not by much. After 3 months, I'm convinced the best way to learn is by solving real problems and building things yourself. I'll do my best to remember all that as I embark on extending my learning of elixir into web development.
I'll pick only the best book instead of 3+, finish reading it and code the example project, then immediately jump into making my own from scratch.
Less is more.
Next Steps
Q2/April was supposed to be devoted to learning Phoenix Liveview and Web Dev, but the feeling of a bunch of half-finished books & projects feels gross so I'll clean house before moving on. I've also been dragging my feet on applying to Recurse Center because rejection is scary, so I'll do that as well.
I publicly commit to the following for the month of April:
- Finish Elixir in Action, complete the To-Do tutorial app
- Finish Learn Functional Programming with Elixir
- Finish the Toy Robot tutorial project
- Apply to Recurse Center