Generally agree, and I see the 'empty area' you're talking about. I see it because I
didn't experience it, and have taken years to really grok that there's a small handful of folks who start early. As much as I get pushback on it, learning programming is, imo, similar to learning another language, in that the earlier you start, the more natural it may seem. I started programming at age 9. It was really hardly 'programming' - mostly typing in code from books and magazines to start, but within a couple years I was writing my own stuff. I'm sure it was mostly crap, but I've been able to think about loops, variables, arrays, stacks, subroutines/functions and other concepts for... more than 30 years at this point. If someone 'starts' around age 17-18, then has a few years in school (while doing multiple other classes), it's little wonder they may not have as strong a grasp on the basics (missing semicolons, etc) as others with more experience.
> The result is not only magical thinking, but a belief that most/all software just magically springs from the void. I've had many conversations with people who never stopped to consider that all the stuff they use on their computer was actually created by people who thought it up and then made it happen - that it's a result of human effort.
I have to stop and remind myself that about cars sometimes too. There are thousands of parts on cars that all interact together, and people - thousands of people - all studied different areas to learn how to be the best at XYZ to build ABC which fits with 20 other parts to make everything work together when I press a button or turn a key. And... hundreds of others designed the machines that lets those other people build the parts they need. It's sort of crazy when you think about it! (shoulders of giants, etc).