---
# System prepended metadata

title: A curated list of programming kata
tags: [kata]

---

---
disqus: pierodibello
---

###### tags: `kata`

# A curated list of programming kata

### IDE automation skills

* Refactoring Golf katas (`easy`...`medium`), to learn how to use the IDE at its best
    - https://github.com/sf105/refactoring-golf
    - https://github.com/emilybache/RefactoringGolf
    - https://github.com/daviddenton/refactoring-golf

## Refactoring skills

* Tennis kata (`medium`) - https://github.com/emilybache/Tennis-Refactoring-Kata
* Product Export refactoring kata (`medium`) - https://github.com/emilybache/Product-Export-Refactoring-Kata
* Supermarket Receipt kata (`medium`) - https://github.com/emilybache/SupermarketReceipt-Refactoring-Kata
* Gilded Rose kata (`medium`) - https://github.com/emilybache/GildedRose-Refactoring-Kata
* Ugly Trivia kata (`medium`) - https://kata-log.rocks/ugly-trivia-kata
* LCD Numbers DI Framework kata (`hard`) - https://github.com/codecop/LCD-Numbers-DI-Framework-Kata
* Game of Life refactoring kata (`hard`) - https://github.com/emilybache/GameOfLife-Refactoring-Kata

## Test automation / legacy code / testability issues / test doubles

* Unit testing koans (`entry-level`) - https://github.com/codecop/Unit-Testing-Koans
* Tennis Game testing kata (`entry-level`) - https://github.com/xpeppers/Tennis-Refactoring-Kata-Workshop
* Racing Car katas (`medium`) - https://github.com/emilybache/Racing-Car-Katas
* Device Driver Mocking kata (`medium`) - https://github.com/goerge/DeviceDriverMockingKata
* Trip Service kata (`medium`) - https://github.com/sandromancuso/trip-service-kata
* Birthday greeting kata (`medium`) - https://github.com/xpmatteo/birthday-greetings-kata
* Baby Steps Timer legacy code kata (`medium`) - https://github.com/dtanzer/babystepstimer
* Goose game legacy code kata (`hard`) - https://github.com/xpepper/fifty-shades-of-legacy-goose-game/tree/master/goose-game-two

## TDD

* String Calculator (`entry-level`) - https://github.com/xpeppers/string-calculator-kata (also [here](https://kata-log.rocks/string-calculator-kata))
* Evil FizzBuzz kata (`easy`) - https://github.com/stride-nyc/evil-fizz-buzz
* Roman Numeral kata (`easy`) - https://kata-log.rocks/roman-numerals-kata
* RPG combat Game kata (`easy`) - https://github.com/xpepper/rpg-game-kata
* Bowling Game kata (`easy`) - https://kata-log.rocks/bowling-game-kata
* Args CLI kata (`easy`) - https://github.com/wonderflow-bv/cli-args-parser-kata
* Tic Tac Toe kata (`medium`) - https://kata-log.rocks/tic-tac-toe-kata (see also https://8thlight.com/blog/georgina-mcfadyen/2016/06/27/inside-out-tdd-vs-outside-in.html)
* Bank kata (`medium`) - https://github.com/sandromancuso/Bank-kata and https://kata-log.rocks/banking-kata
* Mars Rover (`medium`) - https://kata-log.rocks/mars-rover-kata and https://katalyst.codurance.com/mars-rover
* OCP Kata (`medium`) - https://github.com/xpmatteo/ocp-kata
* Social Network kata (`medium`) - https://kata-log.rocks/social-network-kata (see also [here](https://github.com/sandromancuso/social_networking_kata))
* https://codemanship.wordpress.com/2020/10/10/the-jasons-guitar-shack-kata-part-i-core-logic/
* Game of Life (`hard`) - https://kata-log.rocks/game-of-life-kata
* Poker Hands kata (`hard`) - https://codingdojo.org/kata/PokerHands/

## Learning Java 
* Java koans (`easy`...`medium`) - https://github.com/matyb/java-koans
* Java8 Stream kata (`easy`) - https://github.com/Vashy/java8-functional-katas

## Iterative-Incremental approach
* Elephant Carpaccio - https://kata-log.rocks/elephant-carpaccio


## Spring
* Kata SuperHeroes with SpringBoot (Kotlin) - https://github.com/Karumi/KataSuperHeroesSpringBoot

# Resources
* https://kata-log.rocks
* https://katalyst.codurance.com/
* https://github.com/gamontal/awesome-katas
* https://codingdojo.org/kata/
* http://blog.code-cop.org/p/my-code-katas.html
