There are certainly a lot of self-taught programmers, or programmers who didn’t get started until college. Just not enough of them. Have you looked at the H1B visa numbers lately?
I’m not suggesting that programming should be part of the curriculum for everyone, and I don’t share the OP’s dedication to Linux as the only way to teach programming. But it ought to be available as an option (and as part of a profession-focused education that does not require a four-year degree, but that’s another subject).
It IS available as an option in most high school, all colleges, and numerous trade schools. And doing it in college doesn’t necessitate a four year degree, the vast majority of people entering the field do so without a degree, they take the classes they want and or need and get a job. That’s how I did it, 2 years in focused on classes and instructors a friend pointed me to and into the company that friend and one of the instructors worked at. Any numerical problem with the number of programmers we’re producing isn’t because there aren’t enough ways for them to learn, it’s because there aren’t enough people that want to. Your top end number will always be the people that want to, and in this day and age with so many ways to learn so much computer stuff pretty much anybody that wants to is in.