Programming is not something that requires grueling training or rare talents. Algebraic topology, cardiothoracic surgery, and competitive chess require those. If you're writing code that requires elite skills, you're doing it wrong - no one is going to be able to understand it, and you will never be able to troubleshoot it. Someone with an IQ of 100 can become a perfectly competent Java or C++ programmer with two years of intensive training.
You said "competitive chess" which implies a high skill level and "cardiothoracic surgery" which implies doing it well enough to have zero fatal errors most of the time. Those don't correlate to "competent programmer", nor to a programmer who can perform well in a job that requires code that works, has a long service life, and can be maintained. Writing a PGP key manager that can traverse the web of trust without granting privs to an attacker, for example, really does require elite skills -- just like your elite electrician and elite body mechanic.
Anyone can write Hello World, many can write an address book. It takes a lot of study to be able to write a cluster management system.