I teach computer science. And, yes, SOME people without a degree are successful programmers/software engineers. However, the vast majority of students are not that motivated. Learning to program well requires a tremendous amount of work and they need someone to guide them though the process. If left to their own devices, most self described “hackers” will just end up playing video games (I’ve witnessed this first hand).
With regard to my discipline, there are a dizzying number of free online courses and tutorials available. Most of these are incredibly under utilized. The free, online courses especially have a dismal record. Many times, less than 10% of those who start actually finish. There also also 2-4 week programming boot camps, but I don’t really trust those as good sources.
And here is a dirty little secret about employers: they don’t want to be educators. Almost all employers want people who are ready to be productive from day one (or with a minimum of training). So, they look for college grads who have a degree in computer science, as it proves some ability. Increasingly, they will ALSO ask for other proof of ability (like demo programs or documented participation in open source projects). If these are impressive enough, they CAN substitute for the college degree. I can’t entirely blame them, as educating workers adds to overhead. This is a definite change from 40-50 years ago, but it is what it is.
BTW—Good programmers without a CS degree often have a music background. Many musicians have an aptitude for programming.
But...Honestly...Does it require a college degree to be the check-in clerk at a hotel? My grandmother would find that laughable.
Internships are becoming absolutely necessary to get a job. I believe employers are now demanding internships because they simply can not trust that a college degree is a valid measure of education. Given what I see as a current student in my local community college, I would require an internship, too, if I were an employer.