For the past month, I’ve been enjoying Exercism.io, a platform which gives you programming exercises to solve. There are two things I find so cool about it. First, you are fetching exercises and submitting their solutions from the command line. Second, you can easily view how others have solved the same exercise after you’ve submitted your own. Because these two things are conceptually something new to me on websites that offer similar content. It also allows you to submit multiple solutions of the same exercise with intend to improve it. Personally, I’ve done that couple of times little more than 15 exercises being solved so far.
I’ll admit these exercises are simple for me, mainly because I’ve been coding for the last 10 years but that’s not why I’m doing them. I’m solving them not because I need to learn how programmers think but because I want to improve my skills at writing a clean and idiomatic code in a programming language I’m solving exercises with. I’m focusing less on what algorithm to use ((If it’s explicitly stated to use a specific algorithm, I’ll do it with no complaint though.)) and more on which language construct to use, how the code is organized and so on. That’s why I’m still committed to Exercism.
And also because the project is open source I’ve become curious how the codebase, primarily the CLI tool, looks like and have been reading it ever since. And as always when reading other people’s code, I’ve learned something new too.
I discovered it while searching through a Go-related talks on YouTube and stumbled upon a talk Mind the Gap, presented by Exercism’s founder, Katrina Owen, which mentions Exercism and it sounded interesting to me. She made it as a tool to teach her students programming back in 2013 or even earlier.