Most people I know treat a 4 year degree as some form of blue collar work placement program. There is no consideration for education, but instead just minimum required criteria to qualify for a job exactly matching the educational major. No wonder so many people are disappointed and that they lack passion and competence for their work.
This is why I tell people if they really want to learn to program learn on their own. Get a degree in the humanities (English, Art History, Literature, History) to learn composition and more formally correct communication. If they really want to learn computer science theory do it as a masters. I get the feeling most people don't really want to learn to program as instead they want to jump straight into higher paid employment.