As developers we have to frequently consult outside resources for information on how to complete certain tasks. Whether it’s a book or an online tutorial, a quick refresher is always helpful to get a push in the right direction. The problem is that we will often look for these resources when we know specifically what we need to do, rather than using them to buff up our skills.
There are many sites out there that allow you to do programming challenges to work on your proficiency with a language. Project Euler, TopCoder or the Daily Programmer subreddit come to mind. My newest addiction of this type of site is Code Wars.
What is Code Wars?
I like to explain Code Wars as a combination of small programming challenges and Xbox style achievements. You complete a series of code “katas“: short snippets or bug fixes that test basic understanding of programming language concepts. For each kata that you complete, you work your way up to higher ranks and increasingly more difficult tasks.
Test Your Might
Code Wars provides you with a very simple code editor with syntax highlighting. It works surprisingly well in the browser, complete with handling of indentation and other features. You are also provided with the ability to write unit tests against your solution to test any cases that will help you complete the kata. Then you submit your solution. There becomes nothing more addicting than getting that green check mark every time you complete a kata.
The best feature of Code Wars comes after you complete a kata. Once you submit your solution and it is verified, you get to see the solutions that other developers submitted as well. Sometimes you will see solutions that are more complicated than your own, but quite often you will see solutions that are mind blowing in their simplicity. I typically spend just as much time reviewing other’s solutions as I do coming up with my own.
I have no doubt that in the future Code Wars will bring support for more languages. I’m excited at the possibility of completing code katas with Python or PHP. I can’t help but think that Code Wars would also be an amazing tool for teaching people how to use the UNIX command line.
The beauty of Code Wars is that its katas are populated by user submissions, so it will continue to grow with new content in the as time goes on.