12 March 2014
Kata are exercises that are meant to convert deliberate actions into muscle memory. They are exercises to help you become more natural at a given action. Simply completing an action is not the goal of a Kata, one must repeatedly practice to convert action to in-action; the very zen statement "do nothing" does not mean to simply be lazy.
Doing the same problem repeatedly will become boring quickly and soon after most people will falter in continuing to practice. Variety is the spice of life - or so they say, whoever "they" are - so in that vein here are some good Kata to work on frequently to get better at programming. For bonus points, do them in multiple different languages. The more languages and programming paradigms the better; bend and stretch your brain as much and often as possible.
- Prime Factors - find the prime factors of a given number
- Roman Numerals - convert a given number from decimal to Roman numerals
- Bowling Score - calculate the score of a set of bowling frames
- Project Euler
- Code Wars
I have inspired a few friends and colleagues to join in a sharing of ideas between languages around Project Euler (https://github.com/kalisjoshua/euler); feel free to join in if you'd like. This has been a great experience of learning and encouragement; when I get tired of doing problems I am encouraged by others solving more problems than me, don't want to let them win the non-competition.
Here are a few examples from the repo: