Why don't we have Chess-Style Tactics for programming?

https://news.ycombinator.com/item?id=3269225
by jinfiesto • 15 years ago
2 5 15 years ago

I've returned to studying Chess extensively lately. One thing that's struck me is how easy it is to study Chess compared to programming.You can just solve "tactics" and improve pretty quickly. Here, I mean tactics in the broadest sense, including positional, opening and endgame "tactics".

Tactics are "positions" that have an optimal solution. Solving tactics builds a library of common "patterns" or "themes" for chess players to use in actual games. Anyways, I digress.

Besides studying tactics, Chess players go over games by masters. This part has an easy analogue in the programming world. Reading good code is obviously very instructive.

The analogue between tactics and programming seems easy. Programmers obviously encounter obvious patterns (design patterns for instance.) It seems it would have obvious pedagogical value to construct problems based on common themes and variations on those themes. Why hasn't anyone done this? I'm really tired of lame problems that I see cropping up in various "how to program" books and web sites around the web. Obviously programs take longer to construct than it does to solve a chess tactic, so I can understand why this approach might sometimes be unreasonable. I think books like SICP take a nice approach; writing out programs and leaving parts of the program blank for students to fill in. I think this strikes a nice balance between a problem that can be completed in a reasonable amount of time and a problem that has actual practical and pedagogical value.

I think the real advantage of this approach, "tactics" that is, is that it organizes "units of improvement" into smaller quanta. If I can solve a tactic and reinforce a tactic in five minutes, that means I can improve even if I only have five minutes here or there to spend improving. State of the art Programming-Pedagogy is decidedly not conducive to this approach.

I had considered that perhaps certain kinds of activities are just not suited to practice in small increments of time. I think this is false though, because I'm also an accomplished pianist. While it's not as clear cut as studying a chess tactic, I can usually work out something to do in a small amount of time that improves my ability. I've also fenced at the national level, and fencers can always do little drills to improve in small amounts.

I realize that things like code katas exist. However, it seems like most of the "practice ideas" programmers have are pretty lame. I find myself passively wishing that someone would do something about the frankly pathetic state of the art in programming pedagogy. I'd do it myself, but not being a master programmer, I wouldn't trust myself to not screw it up.

Anybody else have any ideas?

Related Stories

Loading related stories...

Source preview

news.ycombinator.com