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.