Skip to content

bwfisher82/kata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is a kata?

In Japanese, the word kata means "form".

According to Wikipedia, this refers to a choreographed pattern of martial arts movements made to be practised alone, but potentially reviewed in a group setting.

Typically these are meant for learning fundamentals of particular styles. In Japan, other industries, such as theater, use katas as well.

What is a coding kata?

Coding katas are similar: we use small problems used to learn and improve aspects of our particular set of skills.

Katas are used for learning new languages, practising the necessary skill of clean coding, needed paradigms such as TDD, helpful design principles such as SOLID, and so on.

We use small problems because we want to be able to repeat the exercise frequently, perhaps multiple times during a given day or week, to learn the skill well.

Paired Kata

Just like with paired programming, a kata can be practised together with another.

One common practise is to write the simplest test that fails, have your peer write the least code possible to make the test pass, refactor together, and then the other person starts with writing the next test.

Assumptions

This practise assumes the object-oriented programming paradigm, so it would be good to stick to that, though it is not truly required (though you may have to modify some rules on your own).

If using a dynamically-typed language, note that learning or applying SOLID principles may need to be skipped or, better yet, modified to take into account language-specific features.

How to Practise with a Kata

Below are a few sections describing different sets of rules that go well together. There is some overlap.

Some focus more on clean code, TDD, SOLID, component/package design, other design principles, and so on.

Feel free to practise one at a time, a few, or all. Any individual kata - the small problem to focus on for learning - can be used in this way.

Pick your language, testing framework, IDE, and set up your initial execution framework (one method in one class that does nothing which executes without errors: ready to write your first test).

Decide on the rules / objectives of the kata, the kata, and review those rules and objectives.

Further Reading

The RULES.md file contains several possible goals or topics for your practice with the kata.

The KATAS.md file contains links to various lists of possible katas to use to learn.

Now get coding!

About

Code Kata Info and Refs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages