That is a typical comment from someone without the qualification. A good degree course is not so much about teaching the advanced methods, but about teaching the underlying theory. It should expose you to ideas and concepts you may rarely see in the real world, so would not "learn on the job", but which may occasionally prove useful.
Yes most schools programs are crap, but only in the sense that most schools don't really have people good enough to push the very best students. After all, the schools don't always get the best people, and it's not unknown for final year students who are seriously good to be better than their teachers. But a good student should still gain from the structured environment, the structured teaching.
Take two equal student just out of high-school, and send one off to work and learn on his own, and send the other to do an "adequate" CS course. Which will be the better all round computer guy after 4 years?