University education is not just to get a job. The unfortunate misconception is that that is the only reason you go to school. Or to state it a different way, Universities are not trade schools, never have, nor should never be.They teach fields of study, how the think, review the theories, ideas and practices of a field, give you access to other fields of study so you understand more than just one field.
You learn how to think critically, how to do research, how to present ideas clearly (or at least those are goals). So in the end you come out a better more well rounded person with skills that are applicable in many fields of endevour.
I have noticed a very big difference in self taught and university taught programmers. The difference can be striking with the university taught, having studied multiple languages and problem spaces are more easily able to learn new things and are not trapped in a single language/tool space for solutions.
That is not to say self taught programmers are bad, many are quite capable but would be much better deeper level programmers if they had also sudied, say OOP or OAD and Data Structures and Analysis of algorithms, and some AI and some Business Programming and Some Database design and programming. Usually the biggest deficit I see is the Data Structures and analysis of algorithms part with is much more difficult to pick up DIY unless the programmer is very motivated.
The problem is that many employers are wanting to get programmers on the cheap (offshore presure) and don't and can't see the value of real engineering that goes into programming. To them is all code and one program is like the next. Not so my friend.