Agreed. Some people it just comes naturally, some have to work for it, others will never get it, or will never be better than a mediocre coder bc they just cant grasp certain concepts and internalize them.
I'm one of the fortunate that grasped it naturally, programming in one language or another from the age of four after old man taught me to count in binary. My old man doesn't get it, he's hardware, my kid kind of gets it, but it's not her thing. I've never had to work hard for it, but I absorbed, out of pure curiosity and desire to always-be-better, every bit of knowledge I could on the subject. Projects have been challenges to overcome, but never a struggle.
But i've seen ppl struggle with it, trying to grasp a pattern of something and having difficulty. Some ppl have to translate things in intermediary steps before they can understand it, where to me it's as obvious as breathing.
Sometimes, pushing more ppl to code gives them a bad experience and either turns them off from it, or teaches bad lessons that then propagate further in technical life. It's not for everyone, nor should everyone have a basic understanding of it bc that leads to bad designs from insufficient knowledge and experience from ppl who think they know enough.
Ppl that go to programming will either pull themselves up from their boot straps out of a love and interest of the field well before college, or they will see it as a career path and put in the hard work to get there. The knowledge is out there without university, and easily found.