I am student currently attending my fourth year at a Swedish university and will, if all goes well, take my Master's degree in Computer Science in winter of 2011. It is a respectable university, at least here, and am overall satisfied with my choice - both of university and major.
While I've learned much in the courses I've attended, I am a bit concerned if what being taught is sufficient when moving from the safe practice grounds of the university to the volatile battlefields of industry. In truth, I would say more than half of my programming skills and soft- and hardware knowledge have been self-taught on my own spare time - either through projects initiated on my own accord or studying non-mandatory topics of material in conjunction with courses. Indeed, sometimes these "off-topics" have proven more interesting and valuable than the course material itself.
In terms of programming skills, even less have been learned directly through university courses. To my knowledge, I don't know of a single course at my university which covers how to program efficiently. Sure, there are many courses in how to program in a particular language, several in how to write algorithms for solving a particular problem, as well as one in how to program under pressure, but none in how to think about programming and how to approach problems in an efficient manner. Also, I encounter many students who have never concerned themselves with C or C++: languages heavily used in industry.
Even after having written code in one form or another for 15 years, I still feel I have so much left to learn. In truth, the more I learn, the more ignorant I feel. All this leave me with a concern that, had I relied solely on what I've been taught at university, I would not be adequately equipped for facing the working market; and even with my spare time learning I am not sure my skills are adequate.
Is this a common problem? Are programming skills and knowledge taught at university sufficient for industry? What experience have you employers had with new workers fresh from univeristy in terms of their knowledge and skills? Do you feel that they are adequate, or should the universities improve or revise their teachings?
NOTE: I originally asked this question on SO (http://stackoverflow.com/questions/3720486/are-programming-skills-and-computer-knowledge-taught-at-university-sufficient-for), but it was closed as it wasn't suitable for a Q&A website such as that. But I was recommended to post it here instead so I've simply copy-pasted the question.