I have to disagree. OP might be right, but before we establish that conclusion, we have to try these things first:<p>Teach coding from young age. Are you really surprised that 18 year old CS undergraduates fail their intro to programming when they have to learn in 11-22weeks what probably took me say 6 years to learn between the age of 11 and 17? I have a CS degree, but I'm also self taught.<p>We have to acknowledge the vast breadth of the field and split the teaching to different paths. There is a reason we have chemistry and biology and physics, although it's all just physics. And we start splitting super early on. The same is needed for coding.<p>And I agree with OP that the perception of the field is selecting (self-selecting), and again we have to change that before we assume that people are born to be programmers.<p>Also, they didn't add up the numbers, it's over a half with a CS degree (gotta count masters).