Exercism is a code learning platform which has been building a steady following, and they’re promoting a challenge — try 12 programming languages in 2023. Every year I like to take some steps to improve, and this year I thought it might be interesting to take the challenge and get out of my programming comfort zone.
Why I’m doing it
Programming languages are fascinating to me, as they have the power to change the way you think about problems. When I started learning to code, I tried C++
and C
(I wanted to program games and knew these were the languages the industry used) and it taught me a lot about memory. How to arrange variable declarations, pointers and clean up after yourself to avoid gnarly issues. When I learned Python
it forced me to think more about the problem, and it read like pseudocode. In JavaScript
I learned about promises and callbacks as well as practical applications of applying it to the web. With each new language, I learn a little more about how computers work, but also about how to tackle problems in new ways. My most recent wow moment in programming has been Elixir
because it exposed me to concepts I hadn’t seen before. Pattern matching and the actor model are now features I want in other languages. They’ve forced me to think about problems in different ways and strengthened my skills in other languages. All of this is to say, I want to keep learning and pushing my limits.
How I’m approaching it
The hard part about a challenge like this is not starting it, it’s continuing to do it. To make sure I stick to it, I’m going to take the path of least resistance and use Exercism entirely to provide the coding problems and do tracking for me. There are definitely some languages that aren’t on Exercism that I’d love to try like Zig but, for this challenge, I will stick to only what’s available.
I’m going to choose a new language each month to focus on and do at least five problems in that language. I’m also going to document some initial reactions and what I learn along the way while programming in this language. This will serve as a record to go back to if I want to continue progressing in a particular language, and maybe it will inspire you to try it out too.
The benefit of challenges like this
Quantifying how much you read, what music you listen to or which programming languages you use in a year may seem a bit pointless but, setting a definite and achievable goal means you’re more likely to do it. You end up planning how best to approach something, take certain paths to ensure you reach those goals with less distraction and can look back at the end and say, “I did that”. This is where challenges like this shine. I’m hoping that I can reach the goal of trying out 12 languages this year, by setting this goal and having a plan of attack, I’m more likely to succeed and ultimately learn some new skills along the way.
How it’s going so far (longer than expected)
I started with vigour in 2023 but writing became a challenge to keep up with alongside learning languages so expect some long delays until this is filled out. In the meantime, below is a record of how I'm going with links to the different insights I learn for each month.
- January – Common Lisp
- February – F#
- March – Rust
- April – Julia
- May – Prolog
- June – TBC
- July – TBC
- August – TBC
- September – TBC
- October – TBC
- November – TBC
- December – TBC
Check back to see how I'm progressing in ~2023~ 2024!