For whatever reason, it seems like the way of thinking required for even simple programming doesn’t come naturally to most people. I saw this with a bunch of kids I went through nearly CS classes with. People who could not wrap their heads around pointers or reference semantics. People who didn’t get polymorphism and seemingly couldn’t no matter how many times you went through it with them. People who couldn’t seem to write programs, even very simple ones, despite being clever in most other ways that can be measured by academe. To be sure, it could be the slice I saw was not representative of typical people, but that would require typical people to be better suited to programming than those admitted to a high tier university. Maybe they are, but it doesn’t seem especially likely.