Practicing the Basics

It can’t be over stated how important it is for your teams to practice the basics.

With my teams, I spend a good bit of time showing them how to do what are known as “katas”. What is the point behind these short excercises? Let me tell you a story.

When I was fifteen, I joined my high school chess team. Yeah, I was a chess nerd. There was one particular tournament I went to with a couple of my friends and my coach that I’ll never forget.

I think it was actually my first real tournament. I was still very new to the idea of being on a chess team, but I had been playing chess or a while at that point. At the tournament I was doing fairly well. I was definitely exceeding the expectations that I had for myself. Towards the end of the day, I was matched up with another kid around my age, and again, I was doing well. However, I had reached a point where I was decidedly winning when something really bad happened. My opponent had nothing left except for his king, and I was down to my rook and king.

Under normal circumstances this would have spelled the end for my opponent, but that day something happened. I forgot how to mate with a rook. It wasn’t that I didn’t know how to do it. I knew very well how to do it. My mind simply blanked. It left my mental space entirely and I was left with an utterly blank stare on my face. I scrounged around trying to reign it back in and get my head around what I was doing. I was nervous, because if my opponent knew what he was doing he could force a draw simply by staying away from check long enough. Luckily, he didn’t know how to do that, and put himself into a position that I was able to mate him. Crisis averted.

That’s when people started coming to me. One person congratulated me, but then started showing me how to mate with a rook. Based on the way I was playing, it was obvious to everyone that I didn’t know how to mate with a rook. The problem was, I did. So why didn’t I do it.

Practice.

I was young. I didn’t practice a lot on my mechanics. I certainly didn’t practice enough on end game scenarios. However, the type of practice I’m talking about here is a specific kind. I played chess a lot, so I’m not talking about general practice, and just getting games under my belt. That wasn’t the problem. I’m talking about short, focused practice to reenforce specific disciplines on my game.

In this case, end game mating with various pieces. Any good chess player practices these mechanics until they become muscle memory. They don’t even have to think how to perform those mates, because it’s just part of their being. It becomes part of who they are. I can mate with a rook now without even thinking about it, even though I probably haven’t played chess in over 5 years. It’s that ingrained in me.

The same thing happens coding katas. The exercises are simple and focused, and designed to teach you a couple disciplines. Usually these disciplines focus around naming things properly, proper code size, refactoring techniques, etc. Notice how none of those things are language specific. They are disciplines that should be taught across any language you write in.

So what are some of these katas that we go through?

I’ll have to cover that another day. I’m getting a huge urge to play chess all of the sudden.