The term Code Kata has been introduced by Dave Thomas, the co-author of the book The Pragmatic Programmer (that I am currently reading). In short, a Code Kata is a programming exercise which helps a programmer to hone their skills through practice and repetition. A Code Kata should be easily solvable and can be solved again and again, repeated until perfection. By doing that, the programmer learns to solve the problem better, every time they try.
I’ve came up with PHP-CodeKata, which implements some Code Katas in the PHP programming language.
For TDD I’ve used the unit testing framework PHPUnit and I’ve also experimented with Behat, a Behaviour Driven Development (BDD) framework for the first time.
README file for the project for an overview of the implemented code katas. I may add more code katas in the future and I will also add a separate project with code katas for the C++ programming language.
I want to use this blog article to aggregate information about code katas around the WWW.
- Pragmatic Programmers (currently offline)
- Robert C. Martin: TheBowlingGameKata
- Robert C. Martin: ThePrimeFactorsKata
- The Ordered Jobs Kata
- Roy Osherove: TDD Kata 1 - String Calculator
- Roy Osherove: TDD Kata 2 - Interactions
- Software Craftmanship: Code Kata
- Coding Dojo: KataCatalogue
- cyber-dojo: a place to practice programming
- Codewars: Achieve code mastery through challenge
- Coding Kata.NET
- Clean Code Developer School: Coding Dojo
- Dave Nicolette: Why should we do code katas
The article Why I Don’t Do Code Katas contains an opinion saying that Code Katas aren’t useful. In my opinion Code Katas are at least useful to learn a new programming language and should not just blindly repeated.
If you know of any Code Kata that isn’t already linked in this blog article, please add a short comment.