-
Notifications
You must be signed in to change notification settings - Fork 220
Kata
In our dojo, 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.
Each kata is crafted for and by the community. The author (or Sensei) who created kata will initially include one or more languages to train in. Other Code Warriors later can "translate" the kata into additional languages.
The term was first coined by Dave Thomas, co-author of the book The Pragmatic Programmer in a bow to the Japanese concept of kata in the martial arts. Dave's version of the concept defines a code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition.
On codewars the idea of repetition is encouraged at your own pace. You will not be pressured to repeat kata you have already completed. If you struggle on a kata it is recommended that you save it to a collection and revisit the kata later. Even doing a kata just once will often give you some of the value that would normally only come from repetition. This is because after you complete a kata, and your solution is fresh within your mind, you are shown the solutions of other warriors. This can often lead to an epiphany that you otherwise would have to have found on your own over time.
On the Codewars dashboard you will always find a kata that you can train with. These kata are chosen at random based off of a training routine. If you select your routine to be "Practice and Repeat" then you will only be given kata you have already trained on. This is an excellent way to hone your skills. Repeatedly completing the same kata will allow you to discover and master efficient ways of handling common programming tasks.
You can learn more about training routines here.
After a kata is published and before it gets approved, it has to go through community approval (and difficulty ranking) in our beta process. The feedback during this process is vital to making sure all kata are of the highest quality.
Codewars users with over 50 Honor, earn the privilege of contributing to the beta process and voting on kata approval and ranking.
This voting happens on the discussion/solutions page after attempting or completing a kata. Each vote that notes an issue should be accompanied by a comment explaining the specific fix or problem. Similarly, while a kata sensei can mark an estimated rank, each rank vote will help adjust it's difficulty.
After a kata has received 5 approval votes from the community, fixed any issues, and reached a consensus on it's ranking, it's ready for the final step to come out of beta.
At this point a moderator will review it to make sure all this criteria has been met, and release it as an official kata onto the site!
Taking beta kata earns you an additional +2 Honor per kata, for contributing to the process and the challenge of taking kata with potential issues. Then once a kata is ranked and approved you will also receive the honor and rank credit for official kata.