--- 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