training_and_teaching_methods

Coding Kata

A Coding Kata is a well-defined coding challenge to rehearse skills. Like in martial arts, the purpose of a coding Kata is to aim for perfect execution. A student can solve the same Kata many times, improving their own programming every time or trying new programming techniques.

coding kata

A Coding Kata could be:

For instance, you could implement the Hello World program in Python, C++, Java, bash, Postgres, Docker or brainf*** . Likewise, you could use the MNIST digits dataset to exercise RandomForest models, neural networks, CNNs, PCA and so on.

In contrast to step-by-step guides, Coding Kata are much easier to write. All you need to do is to come up with a clear description of the problem. The typical Kata can be finished in 10-60 minutes.


How to run a Kata?

  1. Pick a challenge
  2. Set a time limit
  3. Start working in pairs
  4. Review results together

1. Pick a Challenge

2. Set a time limit

3. Start working in pairs

4. Review results together


Variations

There are several ways to run a Coding Kata:

Classroom Challenge

this is safer to run but less satisfying for the group

Hotseat Kata


Online Kata

There are many places where you can find online coding Katas for self-study:


Where does the word “Kata” come from?

A Kata is a well-defined ritualized exercise. In martial arts, the student is expected to perform an exact sequence of movements. Programmers have borrowed the concept for coding exercises.

Unfortunately we don’t have an established system where you get colored belts (or hoodies or base caps) after completing a certain Kata. We should work on that.


Further Reading