Exercism: A Community-Driven Alternative to Leetcode
Whiteboard Questions
Anyone who has interviewed for a software engineering position has no doubt spent some time practicing “whiteboard questions”.
Whiteboard questions are normally data structures and algorithms-oriented programming questions meant to assess technical competency. Such questions fall short in evaluating the effectiveness of an engineer, but remain prevalent.
Who asks these questions in an interview depends on the company. Facebook, Amazon, Apple, Netflix and Google (a.k.a. “FAANG”) all do.
Leetcode, cringe name and all, is a popular site for practicing such whiteboard questions. You work on example problems and submit them, after which your solution is evaluated for performance and correctness.
In my opinion, Leetcode falls short because it lacks potential feedback from an actual human being. Interviewers place strong preference on code readability and being able to understand your solution as you make it. Leetcode absolutely does not ensure either of these!
Exercism
Enter Exercism, a great alternative or supplement to Leetcode for programming practice.
Exercism is entirely free, unlike Leetcode which requires purchasing a premium tier to access all problems, and provides the option to be mentored on improving your solutions. Mentoring and receiving general input from others on your public solutions is a fantastic way to improve yourself as a teammate and engineer!
If you’re not comfortable with this aspect of Exercism, mentoring and making your solutions public is entirely optional.
Not only is Exercism a great tool for interview practice, it’s excellent for learning a new programming language as well. I’ve read and heard many success stories from engineers using Exercism to become fluent in a new programming language.
My Experience
I recently attended a Go Developer Network event and watched this talk, which is both a great example success story and how I learned about Exercism in the first place!
After this talk, I started using Exercism and have loved it thus far. I especially like its command-line interface (CLI), and how everything is run on your machine, as opposed to some annoying and slow web-interface like Leetcode’s development environment. The free tier of Leetcode takes longer to compile, run and submit solutions, which is very unappealing!
Here is my exercism profile as well as my repository with my solutions to various problems on the site.
I hope you’ll join the community and make use of this wonderful resource!