Do you practice coding katas to get better at your craft?
Coding katas are a very effective way to make some computational problems become instinctive. As the martial artist you practice a set of movements (a particular algorithm or small problem domain in our case) so that in a case of a real fight you may apply these without any thought that would delay action (and thus being hit by your opponent).
When you practice a kata it will take you no more than 10 minutes to finish; ideally under 5 minutes. When you try to understand the kata and find the right moves it wil take you longer, but you should aim those 5 minutes.
Today it is a little late for posting my idea. I wanted to do it after taking a shower this morning, but I got caught up in some serious prototyping of a new product we want to launch in path11.
I a good friend of mine (and path11er), Raquel, is totally obsessed with her squash lessons. She will tell you what she did wrong during class, and how that move should be done, etc, etc.
Given I am not a squash expert (LOL) I was thinking that it would be great to have sport apparel (shirts, pants and all the shebang) with sensors attached to them. Obviously these would have to be really small (possibly the thickness of the fabric). The sensors would capture your moves and measure the correctness of them given the activity you are doing.
Later on you would be able to analyze what you have done in your training session and the analysis program would give you advice and routines to improve the next time.
As a bonus the improvinator would give you real time advice while you are in the middle of your training session.
I didn’t really want to talk about COLEMAK on this blog post, but it will help in giving context.
If I have talked to you about my craft, chances are very high that I have told you that practicing is key to be good (and possibly successful) in what you do.
Practice entails so many different exercises, you should not just stick to one set of things you do. Some people have their breakable toys to practice, or do code katas, but usually they stick to these kind of things; if I like doing katas I will only do katas to become better. Wrong!
In order to become really good in your craft you have to practice all the time.
I’ll give you an example. You might think that because I am typing all day long I am already training my COLEMAK chops. Nothing could be further from reality. If I would just type all day long blindly like that I would get used to finger movements that are suboptimal and wrong. What is worse, it would be really hard to correct these mistakes once I have gotten used to them.
Doing the work is not practicing!
What I do instead is practicing my typing skills every time I find time for it. When I am running the complete acceptance test suite (which runs in about 2min) I switch over to type-fu to do a few exercises. I do this instinctively. So basically I am practicing my typing every 15 to 30 mins for about 2 minutes during my workday currently.
Apart from the basic typing I set aside time during the day (mostly at the beginning of the day when I wake up, but also in the evenings) to practice other things; like doing a kata or working on an internal project for path11.
Setting aside some time to practice is a good thing, although not sufficient. You have to get into the mindset of practicing all the time and only set aside time for learning something new.
There is a big difference between practicing and learning!