January 6, 2014

Programming katas

Do you know what is a programming kata?

I thought that programming katas are just simple problems and you should find solution to it in language of your preference.

I was wrong. It is not just that. There are much more benefits of doing programming katas.

Let's use my favorite fizz buzz kata as an example. When I did it for the first time I did not measure the time which I needed to finish it. I just did it and then wrote an article about it. That was all.

But later I found these two articles and they opened my eyes.

Goal of doing programming katas is not just to find the solution to the given problem. The main goal is to master the tools which you use.

We can agree that fizz buzz kata is very simple one. But how much time do you think you need to finish it? Just try it right now and measure the needed time.

When I measured it for the first time it took me more than 16 minutes! It is really a lot.

I quickly went to 10 minutes when I did not need to think about the solution any more. But my goal was to do it under 6 minutes. And it wasn't easy at all. For this I needed to master the tools which I use.

I've started to think how can I do something in more efficient way. I became better in vim. I've also trained my typing everyday and it helped. And today I finally did it under the 6 minutes! Just watch it.

I did it under the 6 minutes, but as you can see there is still a space for an improvement. For example there are some typos. Maybe vim can be used more effectively, who knows.

But that is the point of doing programming katas. To continually improve your skills which you use every day to work more effectively.

And what about you? Do you do programming katas regularly to improve your skills?

Hey there!

My name is Patrik Bóna and I am the only programmer at Memberful. This blog is kind of dead, but I just started my own Ruby on Rails screencast. Follow me on Twitter if you want to be notified about my newest videos.