Kata

What is a Kata?

On Codewars, kata are code challenges focused on improving skill and technique. Some train programming fundamentals, while others focus on complex problem solving. Others are puzzles meant to test your creative problem solving, while others are based on real world coding scenarios.

The term was first coined by Dave Thomas, co-author of the book The Pragmatic Programmer as an acknowledgment to the Japanese concept of kata in the martial arts. Dave's version of the concept defines a code kata as an exercise in programming which helps a programmer sharpen their skills through practice and repetition.

Working with kata

Codewars supports users in many ways so their training with kata is maximally effective:

  • They can set up one of available training routines.
  • Users can run test cases against their solution and solve kata using Test Driven Development approach.
  • Users can take a part in a discourse on every kata, to ask for help, or help others.
  • Kata can be bookmarked or grouped into collections for easier management, categorization, or sharing with others.
  • Users can view solutions of other people after they manage to solve the kata or unlock them.

Contributing to the site

Users can also contribute to existing kata in various ways:

  • After a kata is solved, users can cast their satisfaction vote for a kata to let others know how they like it.
  • Users can solve beta kata to evaluate them before they get accepted.
  • Authors can create new kata and put them in beta.
  • Translators can create new language versions (translations) of kata.