|
I play chess regularly, and while I don't think chess skills translate into programming skills, I do think there is a moderately high incidence of good chess players being good programmers. However, I believe this to be because you've got thorough minds that "see" lots of possibilities, and those minds are good at both chess and programming. From my experience in coding as well as hiring coders, I've actually found that the best programmers are those that can make deductive arguments quickly. Most argumentative people argue inductively with anecdotes, references to studies, analogies, etc. But when you find someone who argues deductively by slipping in premises for tacit or explicit agreement and then lowering the boom with an axiomatic conclusion, this person usually creates good code for me. For computers, chess games are deductive problems where all (or almost all) possible moves (arguments) are examined to choose the best one, which is only made possible by binary brains. For humans, chess is extremely inductive - analogies, patterns, general underlying strategies albeit with changing particulars, etc. The best human chess players deductively analyze multiple possibilities of these inductive patterns (read Bobby Fischer - who I have not played, Tal Shaked - who I have played, and others on the amazing way they do this). So while the skill is not transferable, there are some similar aptitudes in good programmers and good chess players. I know there's a holy grail out there of the ultimate programming skills assessment test, and I don't have it. But what I do is this: I give two programming problems (no language or syntax required at all, just the problem basically in comments). They have to solve it in a robust way (and every now and then someone comes up with a brilliant solution I haven't seen yet, although most people suggest the same stuff over and over again), and then they have to defend why the solution is good while I time them. Most people can learn to think (and argue) deductively, but very, very few that I have found do this instinctively (and can thereby do it 10x faster than the average person). When I find someone who can even do it 2x faster than the average bear, I hire that person. It's just so rare. I know that's not a perfect test, but as someone who both plays chess and also is constantly looking for a good indicators for programming skills, this is what I do. I've had pretty decent success this way. So who knows, according to my methods, maybe the best lawyers and philosphers are actually the best programmers. |