Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
2  
Have you studied Lisp? I feel like a very flexible programmer for having done it myself. –  Joel J. Adamson Sep 16 '10 at 16:43
add comment

closed as off-topic by MichaelT, gnat, Giorgio, GlenH7, thorsten müller Jan 20 at 13:47

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, gnat, Giorgio, GlenH7, thorsten müller
If this question can be reworded to fit the rules in the help center, please edit the question.

8 Answers

up vote 16 down vote accepted

What the university should teach you are basic skills, a good broad overview, and the ability to learn. No one coming from any school will be fit for the workplace, but most of the time has a great tool set to work from - obviously this depends on the school and the workplace.

One of the fascinating things about our profession: we will never stop learning - at least if you don't want to.

Usually people directly from university I worked with did not have the insight you seem to express here and were kind of know-it-alls.

Many programmers don't use the 'right' algorithm - the fastest or most robust one for the problem at hand - but are more pragmatic. They learned about project management, and worst, about politics. Things rarely taught in universities.

Just keep humble and teachable and you will be flying in a short time.

share|improve this answer
add comment

I did not think that the college I attended prepared me sufficiently for a job in programming, however it did provide me with a good foundation. Most of what I do now is self-taught but the basic knowledge I learned in school combined with the resources it gave me was enough to give me a good starting point.

share|improve this answer
add comment

Programming skills taught at most universities are most certainly not sufficient from the industry's point of view. But should they be? I don't think so. I see university more as a place to gather knowledge, not skills. There are lower level degrees to teach you more about the actual programming. What separates people with higher education from others is the deeper understanding of the theoretical aspects of the domain. Of course one could ask shouldn't the education aim to provide the society with professionals with skills they are going to need when working. But I think whatever you teach and however you do it, in any case most of the skills must be learned at the workplace. And since there are so many programming languages and environments out there, I don't think picking one to teach would be very useful anyway.

As I have recently graduated and have been working as a programmer for some years, I understand your insecurity about your skills. But you don't need to worry. In my experience employers are not expecting you to be an expert programmer when you graduate. What they expect is you to have the necessary basic knowledge, which will help you in learning the skills you are actually going to need.

share|improve this answer
1  
This actually makes me angry... There is no reason for the university if not to teach actual skills along with knowledge. You can get knowledge just about anywhere, but it's much harder to get skills. I can't see any other justification for taking on so much debt from school loans if it doesn't realistically prepare you for your industry. –  Fosco Sep 16 '10 at 16:01
3  
@Fosco I disagree. There are lots of self-educated programmers but very few who have a solid theoretical background. And of course university can teach some skills, but it is not the main purpose. If skills are what you want, I don't think academic education is the best choice. –  Carlos Sep 16 '10 at 17:06
    
@Fosco, the #1 skill you get at university is how to learn and find your way through the various sources of knowledge you may come across. It should also give you a broad overview of the field so that you can know where to look and have an understanding of the bigger picture. Of course, it's good to show on top of that some practical experience (which you can also gain during your time at uni, perhaps by contributing to an open-source project, for example). What students do outside helps make the difference (those who expect to be spoon-fed skills/knowledge will be less valuable to employers). –  Bruno Sep 16 '10 at 17:27
    
@Carlos +1 University can teach some skills, but it is not the main purpose. –  Karthik Sreenivasan Jan 24 '12 at 4:13
add comment

I'm going to turn this around and say if all you learned at your university was programming/computer skills, you would not be prepared to work in industry. Just like passing a certification test is not enough.

At a university there is a weeding-out process of getting rid of those without enough apptitude and effort (Unfortunately, you could add money as well.). We'd like to think they are there to teach, but that's not always the case.

There is something to say about someone who has achieved a degree. It shows a level of dedication. Please don't confuse not having a degree and can't get a degree. Most computer professionals could probably go back to school and be a great student if given the money and time. Most don't see the point. That's why they have entrance requirements and don't just take everyone's money and water-down the department.

You should be proud of what you've taught yourself. As Mark Twain said, "Never let school get in the way of your education." Another student may have as good or better grades than you, but they will probably not get better recommendations or be as qualified.

share|improve this answer
add comment

Fact

The IT industry changes every 6 months or less with due to advent of new technologies but this changes from company to company based on their adaptability and requirements.

Education – Job Transition

From my personal experience, I was taught .Net 2003 during my graduation but when I finally got a job, I was working with .Net 2005 and within a year we were migrated to .Net 2008.

Bottom line

Universities try really hard to keep pace with the changing IT scenario but they give a good foundation after which we must self-study to stay up-to-date with the industry.

share|improve this answer
add comment

Learn at Uni, practice on your own and bounce your code off of a professor or two. Never a bad thing to be on their good side.

In short, Uni is not designed to prepare you for work.

share|improve this answer
add comment

I'm yet to meet a university graduate who was ready to write production code. I'm sure there are some but in 16 years in the industry I haven't met them. Where they do exist I suspect it was something that came from coding in their spare time rather than anything they were taught.

For me the main thing that should happen to change this is that you should pick a single language at the end of your first year (having been exposed to several during that year), and from then on at least 80% of the code you write should be in that language. Then, over the course of the next two years the expected standard of code would rise with students expected not only to solve the problems set but solve them in a way that showed increasingly mature use of the language.

Yes, university is a great time to get a breadth of skills and exposure to a lot of stuff but all too often this results in incredibly shallow knowledge and little ability to utilise a language in anger.

For me the best way to change that is to focus more time on problem solving coding, and less on the unproductive bit that comes at the beginning of a new language (but is ultimately very easy).

share|improve this answer
add comment

You only learn the basics at the university and those are not enough when you're already working. You'll get more skills at work.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.