- meticulous attention to detail,
- explicit deductive reasoning,
- an ability to understand and build abstractions,
- a high tolerance for frustration,
- and a love of instant gratification when things work.
None of these are rare traits. But the cluster of traits isn't widespread. Which is to say it's not common among people in general, but also not unusual.
(and "meticulous attention to detail" is not strictly necessary, as my own career attests.)
I'd disagree. Debugging IS meticulous attention to detail. A single misspelling is often fatal. And if you've figured out how to program without debugging I'd love to know your secret.
I'd guess your baseline for that metric is enormously skewed by the people you spend time around. Even completing Algebra 2 requires meticulous attention to detail.
It's that it all takes training, and time in. It all takes reading and learning new things.
It's not a question of could they be good. It's a question of, do they want to. I don't think most people want to be good at it.
If you've ever needed to teach someone patience, you'd see the futility of trying to teach a random person programming.
Nowadays, I will tell people straight out I can't see them dealing with the frustrations long enough to develop the patience needed to learn the basics.
I've never met anyone who wasn't frustrated for at least the first few months trying to get even basic programs working. The syntax is orders of magnitude less tolerance of mistakes than any other subject.
What I do think coders need to know is that they are building on quick sand. That bit is the only thing I think we do that other trades don't. We can never rest, because as soon as we stop for a breath we start to sink and fall behind.
But for any physical skill you have some notion of tolerance. Whether that’s millimeter or micrograms things aren’t absolute in the way they are with programming.
Almost anyone though can learn to play piano if they practice enough. You don't have to be the best in the world either to make good music.
Then there is a huge difference between being a great piano player and being a great composer of music in a creative sense.
Culturally though, I would think we are going backwards. I feel like I would know so much less in this area if I was 25 years younger and grew up with a phone instead of a PC.