Today I want to talk about such thing like Kata. Originally Kata is an exercise in martial arts that has to be repeated again and again to make your movements clean, fast and almost automatic.
So, same approach is applicable for software development as well. Especially in the field of commercial development.
How to do Kata? First of all you need to pick one which is dealing with the topic you would like to practice. For example — Test Driven Development (TDD (opens new window)). For that topic good choice would be Banking Kata (opens new window). Even if TDD is not mentioned as requirements for this Kata it could be good additional challenge. Also try Racing Car Kata (opens new window). This one will give you opportunity to practice SOLID (opens new window) principles.
I am a beginner in programming Kata world, so far I’m training just this two. But even with this small practice I see the difference in my daily production code.
Just go to github , checkout, read README and try to implement. Then when you think you are done, do revert to original commit and do it again. And then one more time. Each time your solution will be a little bit different (but maybe not just a little). Then try to back to the same Kata later, for example in a month or two. And do it again. Compare the results with your previous try.
This is a good idea to do Kata in pairs. That will be not just a knowledge exchange but also will help you to follow Kata requirements in more strict way. Also it will allow to practice how you explain your ideas and argue on issues you face during development.
Do Kata —train your skills!