Katas, Contests and
   Coding Dojos
   Kerry Buckley, 1 October 2010
What is a Kata?
kata
noun
a system of individual training exercises for
practitioners of karate and other martial arts.
• ( pl. same or katas) an individual exercise of
this kind.
ORIGIN Japanese.
http://www.flickr.com/photos/genista/310475897
But what does that have
 to do with software?
Coding Katas
Kata Styles
‘Prag’ Dave Thomas

• Simple problems
• Many correct solutions
• Different each time
• Learn by experimentation
‘Uncle’ Bob Martin

• Copy a master
• Follow forms precisely
• Learn by repetition
• Aim for perfect performance
Katas can help…

• To ingrain good habits (TDD, refactoring)
• When learning a new language
• Master your editor or IDE
• Stop you forgetting the basics
codekata.pragprog.com
codingkata.org
www.katacasts.com
Coding Dojos
http://www.flickr.com/photos/pedromenezes/4146050594
Code Retreat
http://picasaweb.google.com/coreyhaines/CodeRetreatChicago#5383234997317010050
And if I catch you writing the code
before the test again, I’ll give you a
chinese burn on the other arm too.




    http://picasaweb.google.com/coreyhaines/CodeRetreatChicago#5383234997317010050
Contests and Sparring
Demo: Prime Factors

Katas, Contests and Coding Dojos