What Programmers can learn from Chess Players - Part I
I have been playing chess for more than 15 years - my school days were spent travelling through many Indian cities and playing in tournaments. I still play online and follow chess tournaments religiously. When I began my software engineering career, I was struck by the many parallels between the life of a chess player and that of a software developer. It made sense to incorporate training methods from these top-tier cognitive athletes into our developer careers, and that's what this post is about.
1. The Importance of Physical Conditioning
In recent times, physical conditioning has been recognised as integral to chess training. Although its importance was known previously, it was only after the rise of Norwegian World Chess Champion Magnus Carlsen that it became a truism. He has credited part of his success to his physical fitness. Magnus spends a lot of time running and playing soccer, basketball, and tennis.
The exact mechanism is not known, but having good physical stamina is known to increase mental endurance. Known for his impressive mental endurance, Magnus often beats his opponents in marathon games lasting for more than 7 hours. Software engineers who find themselves sitting for hours trying to solve a production bug or push a feature before a deadline can certainly benefit from this information. Good physical health can help keep one's concentration up during intense coding sessions.
2. There is a Lot of Room at the Top.
In chess and in software engineering, there is a lot of room at the top. Although millions of people play chess, only about 2,000 players have ever achieved the title of Grandmaster. And if you look at Super Grandmasters (defined as having an elo of over 2700), the difference is even bigger—only about 40 players are Super GMs today.
I've found that this holds true in the software world as well. Exceptional developers are always in high demand. This is because they are able to architect large distributed systems and contribute at every level of the development lifecycle. Much like top chess players, they can outperform large groups of people with average skill. Therefore, if you're a developer, keep learning; you are in a high skill-ceiling profession.
© Aman Garg.