Part of the problem with college is that it doesn't do a very good job of preparing students to go to work. The value prop for companies is that colleges sorts students, so the best companies can take the best graduates. Part of the problem is that the sorting is broken - the "best" students according to the university aren't the best workers. And the process of college isn't very helpful. As far as software engineers are concerned, students need to do 2 years of pro work before producing decent code. Yes, 2 years. It is a difficult, painful process for the worker, but the results are fantastic.
College is great preparation for grad school, which is great preparation for a teaching job. The system serves itself very well, thank you.