Code Katas are a professional training practice developers use to stay in shape when it comes to programming, problem solving, tool utilization and much much more. A great definition and background can be found at codekata.pragprog.com. That link has a good list of Code Katas but has not been updated in a long time. It can be very difficult to find documentation, Katas to try, good practices, and information on Katas cousins, Rasa and Randori. I want to help keep up and coming developers up to date with the latest knowledge I have gathered as well as give us a place to collaborate on best practices. These are by far my innovations, these are smart practices from the greatest minds like Robert Martin and Dave Thomas, however they are too busy to be keeping up latest documentation on the open web, so I hope to help keep these practices up to date.
List of Code Katas
Here is a compiled list of different Katas for you to choose from. Most are links to other sites, but I may repost some on my site as many sites that have these Katas are unreliable.
Bob Martin’s Word Wrap Kata Walkthrough – Bob Martin walks you through every step of the word wrap Kata, and displays how a simple choice of the what to test next can make a problem very difficult or trivial. This should be read and practiced by every developer learning the Code Kata and Test Driven Development.
Bob Martin’s Bowling Game Kata – Bob takes us through another scenario of his classic Bowling Game example. He uses this example in many of his books focused on Agile development and best practices. Check out the solution slides, they can be very useful.
Pragmatic Programmer Compiled List – Great list of 21 Code Katas and a perfect starting point
Coding Game – Interactive web tool to program interesting problems in the browser. These aren’t your traditional katas, but they help serve the same purpose of purposeful practice.
Test Driven Development Problems – Great list ranging in difficulty
Coding Dojo Kata Catalogue – Coding Dojo is doing a great job and spreading the word and this is their compiled list of Katas.
Programming Praxis – Great ongoing list of programming problems. Some are great Katas, some are just fun problems to solve. Great find that a friend showed me, a hidden gem I couldn’t find with the original post.
Project Euler Problem Set – Project Euler is of similar mindset of Code Katas but more generically for anyone (non developers) to keep their minds sharp and feed their hunger to learn. Many of these problems can be solved using Test Driven Development which make great Code Katas
Code Kata Reporting Tool
I have put together a tool to output a report of the code kata after the fact. If your kata includes comitting tactfully and appropriately feel free to try the reporting tool. See the Code Kata Reporting Tool post on what it is, why we made it, and how to use it.