Chess has been around for thousands of years, computers less than a hundred. Chess requires nothing but a board and analog pieces, computers much more than that. And yet, both skillsets are remarkably similar. They both tap into some universal analytical processes that are larger than both disciplines.
I came to Premier Chess as a web developer with little more than a basic knowledge of chess. But, working with Evan and seeing the way that his chess expertise affects every decision that he has to make, I’ve come to appreciate the common ground.
At the end of the day, both chess and programming can be boiled down to two main skills: planning and coordination. A chess player has to at all times be aware of every single piece’s position, its options, and how changing one object on the board restructures the larger picture. It is a game of relationships between all of the pieces on the board and how to most efficiently utilize those relationships to achieve a goal.
Substitute the word “pieces” for “variables” and the word “board” for “program” and you’re talking about coding. Coding is about seeing a goal, picking your tools, and using them to execute that goal. It requires a combination of big picture thinking and coordinating smaller aspects down to their most basic levels.
Of course, the obvious difference is that chess is a competition while programming is generally an individual endeavor. But, chess’s competitive nature makes it the equivalent of lifting weights for that kind of thinking. Having an opponent and pushback makes the coordinating process that much harder.
Playing chess won’t teach you how to code; but it will teach you a way of thinking that will make coding infinitely easier to learn, especially if you start training those mental muscles at a young age.