I'm going to try to comment like this, here goes...
Why do you think 4 years are better spent paying to cobble together scripts for unnecessary assignments the way a can't-hack-it-outside-academia teacher wants who is not incentivized to do the best and is out of touch with real-world development instead of spending those years surrounded by experienced and like-minded peers in an environment that focuses on making tangible accomplishments and making money?
I hope it's clear how ridiculous discussing things this way is. There are benefits on both sides, and a reasonable person would respect that.
Except that what's being talked about here is a Computer Science degree, not a Programming or even Software Engineer degree. While the former does generally involve learning some programming, its focus is more about understanding the way computers and programming languages work from the fundamental theory on up.
So if you're going to criticize it, at least get it right: it's not 4 years cobbling scripts together for <insert tired "those-who-can't-do-teach" stereotype here>, it's 4 years learning theory and fundamentals when you could be practicing the marketable skills you'll be using more directly.
Personally, though, I've found that while nearly none of the specific programming techniques I learned in my Computer Science degree have been applicable to my job since, the fundamental understandings of the underpinnings of the field have made it vastly easier for me to pick up new languages and techniques as I need to.
Thank you for stepping in and trying to clarify. English is not my native language - that is why I sometimes struggle to explain myself better. The most valuable stuff you learn in CS study is the theory and that is exactly the stuff you miss out in an actual job (exceptions are possible of course).
Why do you think 4 years are better spent paying to cobble together scripts for unnecessary assignments the way a can't-hack-it-outside-academia teacher wants who is not incentivized to do the best and is out of touch with real-world development instead of spending those years surrounded by experienced and like-minded peers in an environment that focuses on making tangible accomplishments and making money?
I hope it's clear how ridiculous discussing things this way is. There are benefits on both sides, and a reasonable person would respect that.