Blog Closed

This blog has moved to Github. This page will not be updated and is not open for comments. Please go to the new site for updated content.

Monday, February 18, 2008


You'd like to think that the more you did something, the better you would become. Software is a great example, where you would hope that the more experience a person has doing it, the better a programmer that person should be. However, unfortunately this isn't the case. Doing something a lot doesn't necessarily mean that your performance is improving over time, it could simply mean that you have fallen into a rut and are doing things in the same bad way until you finally get fired.

Playing chess is a lot like software, in that doing something a lot does not necessarily mean you are getting better at it. This is especially true in chess, because if you play poor opponents, you can never progress beyond their level. I play chess online sometimes, I find that it can be a fun and short diversion from an otherwise hectic work day. However, far too many of the games I play are against players who seem to play a lot, and continue in the same lousy patterns. Here's an example of a game opening that I have played literally dozens of times, against players to are reported as being ranked 1400 and higher:
  1. e4, c5
  2. Bc4, Nc3
  3. Qh5
I play the Sicilian every time I'm faced with 1.e4. I do this for several reasons: because I know that many really good players do it, that it's a solid opening with good theory behind it, and because if I focus my attentions on it, I can start to anticipate better move patterns from experience. Maybe this is a bad strategy, and I should be more diverse in my openings. However, I've made my decision on this matter, and am going to play it out.

The move pattern above is a common amateur opening. By positioning the queen and the bishop just-so, the opponent hopes I stumble into a mate on move 4. Surprise! I beat you using an old trick! I begin to wonder sometimes whether people who are rated 1400 or higher have reached that rating just because they beat so many careless opponents using this simple trick. I reply, by necessity, with: 3. ..., g6 (3. ..., e6 never seems to do me any favors), which is typically followed by 4. Qxc5. Now, I'm down a pawn, but my opponent has brought out his queen far too early and is going to have to dance her around the board avoiding my attacks as I develop at my leisure.

It's hard to remember how many games have started like this, because I typically don't keep count. However, I will tell you that I win the majority of these games.

In chess, every game that you play--win, lose, or draw--should teach you something. Likewise, every software project, whether it's a success or a failure, should be a learning experience. You should always ask yourself, "What did I do wrong last time?", and avoid those things. Then ask yourself "What did I do right last time", and try to repeat those. Finally, ask "What can I learn overall?" and use that information to improve yourself. Writing bad software for 10 years is never going to make you into a good programmer, in the same way that playing bad opponents is never going to make me a great chess player. Being confined to chess mediocrity isn't so bad, however, since I only play about 5 minutes each day, don't get paid for it, and never have to do it in public.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.