Master Your Craft

Mastering your craft takes practice — repeated exercises to improve and eventually perfect the skills and discipline required to become a craftsman.  Mastering software development is no different.  You must practice the skills, methods, and techniques demanded by a software craftsman.  And don't think for a second that on the job experience is practice.

As in martial arts, kata are small, simple movements repeated again and again to master the bigger, more complex movements.  Code Kata are small exercises that require less than an hour to complete.  And it's not about finding a correct answer; it's about practicing the forms and techniques which will lead to good solutions.

Following are code kata that can be used to practice particular techniques.  If you are unsure how to solve the problem, begin by researching some possible solutions, then practice applying those techniques.  Repeat the kata again and again, then when you need to solve a similar problem, you will be able to conquer it like a ninja.

Problems are solved by experience, not knowledge.

computer Code Kata

Test-Driven Bowling

Any seasoned programmer who has tried doing Test-Driven Development (TDD) knows that it is a completely different paradigm of development from traditional methods.  So for most of us, it takes a lot of practice to become proficient at TDD.  This kata provides a simple exercise to practice the 3 basic laws of Test-Driven Development.

Get Started
computer Code Kata

Prime Transformation

A good TDD developer is one who can apply transformations well.  What are transformations?  They are the opposite of refactoring.  While refactoring is changing the structure of code without changing its behavior, transformations are changes to code that generalize behavior without changing its structure.  In this kata, you will create a function to calculate the prime factors of a given integer using TDD while applying transformations to pass the tests.

Get Started
More Coming Soon