I came upon a comment on another forum today and one user responding to another suggested that a CS degree is really only good for one through two years at the most, and after that its as if you never had it. Is this really true? is this what employers think?

When I did CS I never learned anything new, we learned fundamentals like data structures, algorithms, time complexity, OS fundamentals, language characteristics. Most of this stuff has been around for the past 20 years or so.


Whoever made that statement made a very dumb statement. It sounds like an excuse for not getting a degree, or a jealous statement.

It is NOT what employers think. We look for CS degrees to know that the person has a solid background in computing, theory, applied science, etc. One does NOT typically get the same experience on the job that they would get in a 4 year CS program. Sure they may become a good programmer on their own, without a degree, but there are things that an undergrad must be exposed to that it would be rare to encounter on the job. Formal data structures, theory, compiler design, AI, software engineering.

The compiler construction class I took in 1993 still applies today, we are still using many of the same books, though revised.

The average "business" programmer has no formal training in CS. They came from other backgrounds when they found they could not make a living in their original field. I have had to teach so many Java/.NET "programmers" about basic data structures, I know very well.


I think someone who believes that a CS degree or MS degree "expires" is showing their lack of experience in hiring and working with people in the field. As a manager the difference between people who have a CS degree (and similarly people who have an MS degree) is clear. As you point out those with these degrees tend to have a deeper understanding of the fundamentals and this carries over into whatever platform or language they are working with.


I agree with @Nissan Fan, but you have to remember the information you pick up with a CS degree can be invaluable. You learn things like what linked lists are, how hash tables work, what a state machine is. The list goes on. Watch people try to solve hard problems who have no idea what those are and see how difficult it is for them. The piece of paper may only help you for a couple of years, but the knowledge you gain from it will last much much longer. Your knowledge of CS and how to apply will help you move up the ranks as a programmer.


Long enough to get you in the door for an entry-level position. After that, work experience and a strong track record are what will keep you progressing in the industry.


For me I've gone about it the other way. I was a self taught programmer for 10 years and am now half way through a Computer Science MSc. I am finding it really useful in filling in various theoretical gaps and suspect that what I'm learning now will be useful for years to come.


As a recruiting manager, it's irrelevant. I would neither look for notice the lack of it on your CV.

Saying that, I can't speak for US attitudes compared to UK/Switzerland

After reading other answers... the knowledge you gain from a CS degree would be picked up by keen and clever folk anyway. A CS degree does not guarantee the knowledge one would expect.


I think it's a common misconception that, with the rapid pace of technological advancement, a CS degree becomes obsolete quickly.

Of course those of us with the degree know better.


It's really important that you have the degree as most companies here in the UK will demand it when recruiting software engineers. Experience starts to outweigh the degree though - the importance of the degree becomes smaller as you gain experience over time but it is still that tick in the box that will help your CV avoid the bin.

A CS degree is also important to prove you have at least some grounding in the fundamentals.


The answer is of course, it depends.

Some places only hire degreed programmers, for those places the degree is always important.

Other places put more value on experience and the degree makes the biggest difference at the entry level.

All things being equal a degreed person will usually out point a non-degreed person in the filtering the HR does before the managers see the resumes. In the current economy with thousands of applicants for every job, this can be the difference betweeen whether your application is considered or not. If you apply directly with the hiring manager (Ie you are someone they know) , this is not a slikely to happen but HR exists to filter resumes to a "reasonable" number for the hiring manager to consider and they like degrees.

I suspect that most of the programmers in places where the work is highly theorectical (vice the average business app) are degreed. There are some programming niches where all that theory you learned is invaluable and required for success. Even in business programming it can help you be a better programmer. Understanding the theory behind what you do will help you work at a more advanced level. (Sadly a college degree is not a guarantee that you actually understood what you were taught.)


There is often a gross confusion in what a US degree provides. An ABET certified degree should teach you the fundamentals of computers. They have not changed since the 50s/60s/70s. Most of the 'technologies' come and go - the fundamentals are...fundamental. A Bachelor's does not orient on technologies.


The degree gonna give you the basics and how you have to think but the technologies evolve ... so you have to do "maintenance" to your degree by reading and keeping up with the technologies.


The basic priniciples learned in a CS degree last a lifetime. Almost every innovation in computing is based on what came before, and the same basic problems get repeated at ever more abstract levels cyclically.

Better yet, having a college education has given the student a chance for risk free learning. Self learning would work too. But critical to learning is having the chance to make mistakes without massive ramifications. Getting some number of hours in learning what not to do makes you a better programmer for a lifetime.

However - the technology learned in a software course in a university has a 1-5 year shelf life, depending on your speciality. C/C++ are in use and probably aren't going anywhere in some industries, but Java and web apps are reinventing itself every 2 years.

My father used to say "in any field, the college degree opens the doors for you, from there it's all about what you do on the job". He's right, but also the things you learned in college should help you do well in your job. Which helps you get the next job, which then helps you get the next job - and so on.


How long is a house foundation good? You no longer see it after the house is built...

PS: I hope you noticed the irony =)


The opinion of the employer is going to vary, but I agree that the fundamentals that you mentioned are still relevant. Those things may not directly be applicable day to day, but they are important in the long run.

It's true that after your first job, your work experience will start to matter more than your CS degree, but many employers do prefer that candidates have a degree in CS or other engineering field (most notably Google).


I don't have a CS degree, but instead an Engineering Mathematics degree, and got a programming job anyway.


I agree with many of you there is plenty of "technical" value in the degree, but I would also say that the degree identifies a bit of character as well. Things like commitment and work ethic. I'm not saying people without the degree don't have these types of characteristics, but a degree is a good indicator.

One other thing that the degree implies is that the individual has a more well rounded background and is likely to be able to apply other skills to their job.


Through the last 20 years I've read in a few places (unfortunately, I can't locate one right now) which put the "half-life" of an engineering degree at five years. IOW, five years after you graduate half of what you learned while getting your degree is out of date.

Another point of view: Once you have that degree, you won't be automatically rejected for jobs where they require a degree. E.g.: Many years back I tried to get a good friend a programming job at the place I was working at the time. Said friend had dropped out of college to co-found a company several years before and had been working as a developer ever since. Based on what I saw of the group in which I worked, she was better and more knowledgeable than any of the programmers in the team. However, my boss wouldn't even interview, saying something like "Well, she has some good experience, but we don't hire people without degrees."


I so disagree with that sentiment. I graduated in '97 and got hired into jobs in '04, '05, and '07, where in all 3 cases my degree was part of what was required from the hiring manager/HR view to get the job. If anyone wants to claim that I should have gone back to school just after 2000, I think I'd want to have a serious discussion about whether or not all the stuff I had just learned on the job made a difference in trying to move onto a new position.

IME, the degree is good for LIFE though one may need to get the skills retested to verify there hasn't been a lapse in proficiency.


It's vacuum sealed for freshness. Unopened, it has a shelf-life of several years. Once opened it's quite susceptible to mold and excess moisture. I wouldn't expect an open one to last more than a few days.