Exercism
Hello! Today, let’s discuss a coding challenge to help us learn about writing idiomatic code in a new programming language.
Exercism (exercism.org) is one of the best ways I know to learn a new programming language. That’s it, that’s my take. This is one of the resources I used to learn Go six years ago and Rust four years ago. Interestingly, it’s also a resource frequently referenced at Google. For instance, part of the external resources recommended for learning Rust is Exercism. In total, Exercism offers more than 70 languages for free.
Once we choose a new language, there are two modes available:
Learning mode: Exercism proposes a guided learning path for those completely new to the language.
Practicing mode: While the learning mode is interesting, I believe the real value of Exercism lies in the practicing mode. Indeed, one of the real challenges when learning a new language is putting theoretical knowledge into practice. Learning by doing is the most effective way to reinforce what we’ve learned, and this mode emphasizes exactly that.
When we enter a track, we are met with dozens of exercises. For instance, the Go track alone has over 100 exercises. To solve an exercise, we have the flexibility to either use the online editor or work with our own IDE, as Exercism comes with its own CLI tool, for example, to test and submit a solution.
Once our solution passes the provided tests, we can submit it, and this is where Exercism shines. Indeed, Exercism isn't about just solving problems to practice; it's about learning to write code programmatically:
We can receive some automated feedback once a solution is submitted.
There's a Dig Deeper tab that delves into the problem and explains the required underlying concepts.
We can check community solutions to learn from others and ask for code reviews from the community:
So, Exercism isn't solely about learning a new language; it's about learning how experienced developers write quality code in that language. That's what makes it such a powerful learning tool.
If you’re thinking about learning a new programming language or deepening your skills, I strongly recommend you to have a look at Exercism!
Tomorrow, we will discuss a code optimization challenge.