Katas are coding exercises meant to be repeated
Coding katas are a way to practice programming. They are exercises meant to be repeated in different sessions. Each time, you can practice a different approach, use a different language, refresh your skills, etc.
Some of the katas that I've done include:
-
RPG Combat (see my repository). This is fun —and I love the theme— to practice applying SOLID techniques and Test-Driven Development.
-
Mars Rover (see my repository). Good to practice Test-Driven Development and some design patterns.
-
Gilded Rose (see my repository). A refactor kata with a RPG theme —I can't get enough of these! Approval testing really shines here.
-
Cupcake (see my repository). A kata to practice some design patterns. It's also fun to do it with a Functional Programming language.