I think people who trash university education either never attended, went to a poor school, or were studying something they didn't care about and thus never engaged properly.
The worst part is: you don't even know what you are missing in the first place.
Since we are all into anecdotes today, let me give you mine:
My co-founder once called me with some aggravation, because he was developing a feature for a client that needed, in a nutsheel, to figure out which points, out of a few million, were inside some arbitrary geographical boundaries.
His naive algorithm was taking minutes to process all the data, but the requirement was for real-time(ish).
Turns out I didn't even get to apply the space partitioning techniques that I learned in class. Just explaining to him the concept of pre-calculating bounding boxes was more than enough for him to implement a solution in less than an hour.
Since he had not even heard of them, he didn't know what to look for, or that there was an entire class of algorithms and data structures in computer graphics dedicated to that sort of problem.
Don't even get me started with things like dynamic programming, or mathematical logic. Are you seriously going to study something like that for months, if there's no-one pushing you?
I'm of the opposite opinion to be honest. If you need to be pushed by someone else to learn something then why would you do it?
Like what? In other words, what parts of undergrad CS could you not learn on your own from the books given reasonable amount of time, you figure?
The rest of your post makes sense, but you lost me at this sentiment. There is a lot more to computing that information systems and programming. I'm glad your career worked out, but there is certainly much in CS that you will simply never learn in the field.