Skip to main content

What is Kumite?

note

This page was imported from old Codewars wiki and needs to be reviewied/redacted.

In karate, kumite (ko͞omiˌtā) is the practice of taking techniques learned from kata and applying them through the act of freestyle sparring. Continuing with the coding dojo theme, and the already well established concept of a code kata, we wanted to play with the idea of what a code kumite might look like within the Codewars community. It is a social experiment to see how developers could share ideas and then respond to them with code instead of just words.

How does it work?

Creating a new kumite will involve creating some code, with an optional description and set of test cases that prove it works. Once published, the code provided will be considered the first "move". You and any other user are then able to respond to that move with your own. You do this by "forking" the original move. Your fork can refactor the original code, add features, fix bugs, add additional tests, etc. Any fork can then also be forked, creating a series of moves that happen between 1 or more participants.

What do I use this for?

Lots of things really. You could show off something you learned, only to have others show you an even more efficient way of doing the same thing. Maybe you have discovered an interesting and experimental design pattern in your favorite language and want to show it off, where others could then expand on the idea. You could use it for teaching - Kata are great for well-defined problems, but when a solution is open to many interpretations you could allow your students to experiment with how they would approach it in their own way.

One popular use-case for kumite is to use it as a starting point for fleshing out a new kata. You can convert your kumite to a kata. When you convert it, the kumite will no longer be published or searchable.

We look forward to seeing what the Codewars community comes up with! How would you utilize this format for something interesting?