In an age where experience seems to be paramount, does anyone still see great value in having a college (specifically Computer Science) degree? Would those three years be better spent working in a top-shelf software company?

+2  A: 

A couple of months ago I took a job as a software engineer after basically completing the general education portion of a college degree (~2years in the US).

I feel like while I've learned an absolute ton on the job (many times over what I've learned at any of the college level programming courses I've taken), the biggest benefit that more college level programming classes would have given me would be more background in programming and more exposure to things that would improve my ability to think in the proper programming thought paths and would allow me to write better code more easily (at the cost of course of spending a lot of time in said classes writing pretty much useless/contrived code to understand the concepts in the first place).

So while I don't regret taking the job in the least, I'm also going to try to take a programming class or two every semester to try to supplement the stuff I'm learning on the job (as a bonus, my work is willing to pay for said classes).

I may or may not eventually get a degree this way, but I think if I can find the right classes to take the knowledge I gain through them will be beneficial to my work and value as a programmer.

Lawrence Johnston

Yes, I think so. On a couple of levels.

Firstly, from financial/career point of view. The truth is that employers will look for a college degree for most professional development roles. I'm not saying that for, say, a Java development role, someone fresh out of college would be better than someone who had 1/2 years of coding experience, but from an employers point of view it is a safer bet.

Secondly (and this is related to the first point), finishing a college degree course demonstrates that you are able to study/pass exams and learn to a high level. This shows a certain amount of dedication and intelligence.

Finally, doing a college degree should point you towards different aspects of technology, generating both knowledge and interest in areas that you may not even be aware of.

I'm a big fan of self learning (and you generally need to be a self learner in IT), and yes, if you want to be a really good, say, Java developer, in 4 years, then you are better off spending the next 4 years working on Java. But it will not guarantee that you are going to be the best Java developer in 10 years time.

+2  A: 

I think yes, it does matter. Even if you know a lot of programming before you start at college/university, there is still a lot more to learn:

  • How to work with others in groups/teams
  • How to get things done in time
  • How to work on large projects.
  • What companies expect of you
  • How to do other, related tasks (you might not want to be programming for the rest of your life)

In adittion you will probably refine your skills. Being self-learned you will most certainly have misunderstood stuff, or not have understood it entirely. A teacher and textbook can fill in these blanks.

Most universities/colleges will have projects where you will be able to practice and gain experience in a way you can't do at a job. If you are working then you don't have the time to try new ways of working in a team, but a university/college project doesn't have to be completed at the deadline, as long as the report is. This means you and your teammates can experiment with how you work and who does what. It also means you can get pissed-off with your teammates without risking your career.

+2  A: 

A degree does a few things

  • demonstrates that you have a certain level of ability to learn and think. For your first job, a good degree is probably the thing that gets you a seat at the interview table.

  • gives you a comprehensive foundation. In programming, the broader your knowledge, the stronger the developer you will be.

  • if the school is any good it will help teach you to think. Especially if you do a graduate degree. And hopefully that will set you up for self-learning habits for the rest of your life.

  • IT isn't usually an end in itself - its value is in creating tools to accomplish a goal. If you can broaden your education to include area where IT is used (e.g. business), then you will be that much more useful to an employer. You might want to think about your courses in terms of what they will do for you and how they will set you up to take advantage of opportunities that arise, not just in terms of that first job.

John McC
+43  A: 

If you have a respectable company that wants to pay you full-scale competitive wages right now, drop what you're doing and go to work for them. You should not pass up an opportunity to gain real-world experience. If you do not have a dream job waiting for you right now, finish school! A formal CS education has tremendous value. The obvious question underlying yours is "are you trying to find an excuse to quit school?"

Some related advice: As a grissled "experience-based" developer, I know that significant real-world accomplishments in software development matter more than having a specific CS degree. However, you MUST eventually get some kind of college degree. A B.A. in Art Appreciation will do. The accomplishment of the degree speaks more loudly than the specifics of the degree.

Whatever your reasons for choosing a CS degree and working in software, you need to follow your passion and let it guide your decisions.

"Passion" is what makes run run faster than the other guy to catch the pretty girl. "Fear" is makes you run faster than the other guy to avoid being killed and eaten. Either way, you will be running for the rest of your life. Pick the motivation that you will enjoy having as your master for the next 50 years.

Scott Fletcher
The problem with this approach is expected compensation. My cousin took the route of working for a company instead of finishing his degree, and found that he was getting $10-$15k less than his contemporaries until he got the right degree.
@mmr, The same would be true where I work. It would also affect all future career development opportunities.
Bob Cross
you mean like Frankie Fear in Rocky?
+29  A: 

In my opinion, a degree will only continue to increase in relevancy as time and complexity progresses.

It doesn't always need to be about knowledge at the college level, because there is no doubt that a person will have to restructure the way they think depending on the company they join.

But! A degree is proof that somebody can lay on a table that says, "I can, and will, commit to something challenging." A person has to sit there and question the commitment of somebody without a degree. Even a genius lacks in other areas outside of their domain. I would want somebody to experience and understand more than just programming. There are other skills taught in college that I'm sure a person doesn't focus on when they self-teach them self.

Academic diversity: communication, writing, further study in science, design, leadership. It all molds a person into more than just a programming machine. Eventually, you might want to move up the food chain.

All in all... Some things are much more important to certain people. Those people are going to be the ones analyzing why a person skipped getting a degree. But if they don't, and they offer you a job, supplement your work while you continue your education. ;)

David McGraw
This is typically the reason set I've heard.
Paul Nathan
+2  A: 

Whether you need a degree depends entirely on your own experience and the sorts of companies you want to work for. For example, if you have very little experience — say you started learning to code in college — and you want to get just an average industry job, a degree is pretty much a requirement.

On the other hand, if you've been programming for a decade by the time you're ready to go to college, you've actually done some professional-level coding, and you understand things like computer architecture and compilers already, a degree is much less necessary. At that point the more experience you have the less a degree matters.

Personally, I don't need to finish my degree. If I ever decide to look for a new job, my résumé has plenty of industry experience working on well-known products for well-known companies — enough that, frankly, anyone who felt my lack of degree was a sticking point would look pretty foolish.

I know plenty of people in similar positions in our industry. But like I said, if you're just starting out and you don't have a similar kind of background already, you'll be a lot better off at least going partway through school and doing a couple of internships with recognized leaders in your area of interest.

Chris Hanson
+5  A: 

In general, those who have college degrees think they are valuable, and those who don't, don't. So you need to think about who you will want to hire you.

My personal advice would be to pursue a degree. I meet a lot of people who wish they'd gotten one; I don't think I've met anyone who wishes they hadn't. Or think of it this way: ten years from now, will it be better to have 10 years of experience, or 7 years of experience and a degree?

Kristopher Johnson
You haven't spent much time reading hacker news then. :-P
Jason Baker
If you have more than 20 years of experience programming, who the hell is going to care if you have a degree?
Alberto Gutierrez
Why would you do this for 20 years and not try to expand your horizons? The person with 22 years and a degree would have the advantage.
I know several people that view their degree as a waste of time, especially if they were paying for it out of their own pocket.
Matthew Whited
+6  A: 

Yes, it does matter. If for no other reason, it will help you land that spot in a top-shelf company. There are exceptions of course... Jamie Zawinski and Bill Gates comes to mind.

Some specifics:

  • There's a lot of computer science you just won't pick up on.
  • It's a good place to do projects.
  • Dropping out gives the impression (fairly or unfairly) that you can't finish a hard task.
  • In a lot of the world, having that piece of paper is the entry way to a lot of opportunities. It may not be fair but that's the way it is.

I myself dropped out to take advantage of a really spectacular opportunity, but I went back back to school afterwards and absolutely don't regret it.


Mark Harrison
+1 for point 4 being sadly present more often than expected. In some companies, the first part of getting a job is getting through HR, which often starts by scanning for papers... THEN it's added to the pile for the interviews by the proper service. Not always, but as I said, happen more often than expected.
I have no problem telling people I dropped out of college. The college course work I was doing was the same as what I did for free in high-school (vocational)... yet cost me personally several thousand dollars a year.
Matthew Whited
+2  A: 

A degree basically gives you two things: a credential, and (hopefully) some new knowledge.

As far as the credential goes, being able to put a college degree on your resume will make a lot of people take you more seriously. Some employers will put your resume straight into the recycle bin if you don't have a degree on there. Often the degree doesn't even have to be remotely related to the job you're applying for, it just has to be there. A degree from a prestigious school is often a plus, but again, just having a degree is the big leap from not having one.

As far as actually learning something this is going to depend a lot on where you go and how you approach your studies. If you go someplace that recruits good students and has high expectations, you'll learn more than someplace that caters to the lowest common denominator. If your goal in going to college is to learn as much as possible, and you choose classes and approach each class with that in mind, you can come out with a heck of a lot more knowledge than you went in with. On the other hand, if you don't make learning new stuff a priority, you'll come out of college with a credential and little else to show for it. I'm not just talking about students to major in booze and broads here, students who try to game the system to get the best grades possible in hopes of impressing future employers (which usually doesn't work, since employers don't care much about your grades) can end up with almost no new knowledge to show for their time at university while someone who picks challenging classes and spends their time thinking bout how to learn stuff rather than being grade obsessed will learn quite a bit.

While a CS degree will teach you quite a bit about programming if you approach it right, a lot of the other things that you can learn in college can be just as valuable, if not more so, than programming skills. Joel Spolsky says the most valuable course he took at Yale was one that they wouldn't even let him count towards his CS degree, but it taught him how to write and write well. Writing well is one of the most important skills you can learn in college, and it's what separates the coding drones from the programmers who really make an impact. Universities will try to teach you how to write in English 101 type classes, but I think the best way to learn to write well isn't in a composition class, it's to take a class in a subject area you really love that requires a LOT of writing. Writing on something you're passionate about, and having it critiqued by someone who knows what they're doing, is the best way to develop really good writing skills.

College probably won't teach you more programming skills than a three or four year stint at a good company, but if you approach it the right way, I think it will make you a better programmer than spending that time banging away at business logic.

Chris Upchurch
+3  A: 

Absolutely it matters. I won't even consider hiring someone without a degree from an accrediteted 4-year university (no online schools).

1) It shows discipline. Sure, college is easy, but it does show a level of discipline for someone to commit to something for 4 years and finish successfully.

2) College teaches you how to do research, how to solve problems, etc. The american high school system is a joke in comparison.

3) I want my developers to be more then programmers. I want them to develop into leaders. Can you really expect someone without a college degree to move up?

And listen, you may not want to always be a developer. You may get sick of it after a few years (as many do). Hell, development might eventually go the way of manufacturing in America. A degree will allow you to take other career paths far more easily.

Your comments come across as being judgmental nearly to the point of bigotry. I feel sorry for the remarkably talented and enthusiastic programmers you've undoubtedly overlooked due to your policy. Consequently, I strongly recommend against anyone following your advice.
I know that, Stephen. I'm fortunate that I had the opportunity to climb up to team lead at my first programming job before I ever got my degree.However, Jim's comment that people without a degree are undisciplined and simply cannot be leaders is not only false, its revolting.
@Stephen Darlington: I don't think the term "Princess" is appropriate, and I flagged it as such.
Paul Biggar
I'd say that I appreciate the honesty of the answer. I don't see where there is the implication that those without degrees are undisciplined. There is the point of those with a degree having evidence to support a "I am disciplined" claim, but that doesn't imply those without a degree are anything from my view.
JB King
I more or less agree with 1...but not all colleges are a cakewalk. 2 is pretty true. 3 is dead wrong, however. Some of the best, strongest, proactive progammers I know did not finish college. One example: he didn't finish college, but has started 2 successful software companies based on the software that he has written largly by himself, writes a highly technical blog about how to improve code, is very financially successful, and is very proactively involved in his community. This guy isn't a leader?
Anyway, I understand the reasoning: on average, programmers who have 4 year degrees are probably going to be more successful than those that do not...but it's not an absolute, by a long shot.
Although I agree with most of your points, I wouldn't discount online programs just because they are online. You have to look at the school offering the online program and the program itself. Many online programs are *more* difficult than their classroom counterparts due to accreditation requirements. It can also help prepare students for telecommuting and working with others in different time zones and even cultures. Something that has become more and more common in our line of work. Both my undergraduate and master degrees were done in person so no bias.
You made some good points, but 40% of what you said, while maybe not meaning to, seems pedantic and unnecessarily critical. To name a couple Drexel and Carnegie Mellon offer online Master's programs and a lot of Universities offer hybrid programs where you show up on site for exams and watch the lectures when you can.I also think a degree is what you make out of it; much more than "just a piece of paper;" you can sleep your way through, or pay attention and get some great information.
Check out what percentage of tech CEOs have advanced degrees and then talk to me again about the link between college degrees and leadership. This is just groundless prejudice. The first point was valid, the second point ignores that tough problems do the same, and the third point displays ignorance at best. I have not met many great leaders in my life that would agree with Jim.
@Justin Way to dig up an old question here. What percentage of tech CEOs have a college degree? Just about all of them in fact. And yes, I know you are going to bring up Zuck and Gates, but they got *into* Harvard and dropped out to follow their dream.
@Jim - Ok, how about I bring up Steve Jobs and Larry Ellison? Without further debate, isn't that enough to show that we CAN "really expect someone without a college degree to move up". I took Engineering myself but some of the best entrepreneurs I know got 2-year tech training instead or even just dropped out. The only person I know personally that sold their share of their company for over $400 million was self-taught. And it sounds like you would have passed by Gates anyway because he was not the kind of person that could "commit to something for 4 years and finish successfully".
@Justin You're talking apples and oranges here bud. Picking out extreme examples of brilliant entrepreneurs as if that's the role model to follow for 99% of the software jobs out there. You could do the same in any field, how about the investment world for instance. Sure, there are a lot of brilliant fund managers out there that never went to college, but would you recommend to a kid (remember, the context of this question) to skip college and go try and get a job at an investment bank. No of course not, that's laughable advice.
@Jim - First, I am not interested in a war there buddy. Have it your way. Second, my advice was not to skip school (I did not even answer the OP question). I simply disagree with your assertion that greatness and academic affinity are somehow a package deal. You are not interested in conflicting evidence so let's just drop it. Keep on keeping on. The rest of us will hire and fund the best of the best wherever we find them and you can compete with us in the real world. We will see how it works out in the end. Funny you should mention finance. As an ex-stockbroker, I disagree there too.

my $0.02

I think a degree is valuable in and of it's self. I have heard there are jobs that require a degree but don't even bother with the subject. They thought is that no degree covers what they want and if you can get a degree they can teach you that. As an example a group I'm involved in at my university is doing high assurance software and security stuff has a liaison with the NSA, she has a degree in music.

+17  A: 

As an engineer and manager who reads resumes, interviews, and hires other engineers, I would say a degree definitely matters. All of the best engineers I've worked with have one (often a MS or PhD as well) and are also self-learners.

There are exceptions, of course. Specifically, if you are extremely motivated and have the ability to commit to learning computer science theory on your own, or if you just want a job and don't care to do anything really deep or interesting, then you can skip the the degree. I think you need it for anything bordering on research. Most of the other benefits of a degree (demonstrating competence, working in teams, etc) can be gained on the right job, but unless you really know where your career is going to take you and are confident that you won't need a degree, I highly recommend getting one.

Josh Segall
+1  A: 

Sadly it does matter to Hiring managers if you have a degree. In the long run it is smart and get things done that matter.

I was not in a position to go to college without working full time, so I worked fulltime and went to school part time. I got my degree in 2007; however I have been a working professional for 8 years and keep moving up the ‘ladder’.

What has given me the most success is the fact that I am a self learner and willing to put in extra time to learn something. Not waiting around for somebody to show me how to solve a problem, but going to Google and now stackoverflow to learn solutions to problems and then implement them.

Coaching is an underrated aspect of being a professional. Always be able to understand that other people can teach you something.

The degree is like a badge, it will get your foot in the door, but it won’t keep open it for you. You have to be willing to work hard, and separate yourself from your peers.

David Basarab

Unless given the opportunity to work with the likes of Doug Lea or Josh Bloch, I would stick to getting a degree. On a second thought, since work and school aren't mutually exclusive, I would work for them and then take classes in the evening. Yes, getting a degree is that important.

+1  A: 

here's the technical promotion ladder at one large engineering company.

The way promotions work here is that you prove that you are currently performing at the next level in all categories, and after you prove you're currently performing the next level up, they promote you to that level.

Note that you won't get hired without a college degree, and you won't get to Senior Engineer without a masters degree. You would have to be bloody brilliant to get an exception to this. Everything is so goddam processed. For example, my assignment for the last year has had me roughly performing at L3, but I have 1 year experience. I had a heck of a time convincing HR that I deserved a promotion.

You might have better luck at small companies, and maybe once you're over the hump no degree will be less of a problem, but you will never make as much as your educated colleagues at a large, highly processed company.

Dustin Getz

Another perspective:

Even if you're a rockstar, the employer doesn't owe you a job. The employer's incentive is to shift through hundreds of resumes to find the best ones (or top 70% where I work ;P), as fast as possible. If you don't have a degree, you'll get filtered out with the rest of the losers, its just not efficient for an employer to even look at your resume if you don't have a degree.

There's a 35yo intern here, he's almost done with his BA CS, he's more competent than most L1 engineers here, and he makes about half what an incompetent college rookie makes.

Dustin Getz
+1  A: 

I depends on what you want to do and what you can do already and who has offered you what. But, the answer is: Yes. Yes.


A lot of good comments. Also, a degree is proof that you're willing to do something you may not like to get what you want; that you're willing to put in the time to reach your goals.

Travis Heseman
+1  A: 

Personnaly I would step forward and say "Yes, it's worthy to get a university degree."

I speak of my own experience when I say I have a college degree in management programming and a couple of years of experience behind me already. But when I got to accept real big challenges, I knew I had a lot of work to do before I can reach the project's objective.

I have worked with such companies as Alcoa Canada, and when was time to bring the features and its complexities to big projects, people with university degrees were a bit before me, understanding differently the different aspects of the problem.

University will bring you to a second degree of abstraction and development or analysis approach regardless, most of the time, the technology you will use. This will bring you a better understanding of the frameworks concepts, idioms and design patterns, for instance. At the end, your analysis knowledge and abstraction capabilities will strongly help you get better faster when you're on lands working on big, but big projects.

To continue with my idea of my own experience, I plan to go get my software engineering bachelor degree at the university. This will allow me to combine my masterings with some of the automation to grow capable of leading process systems management and development from the ground up.

Well, the best I can say now is make sure to make up your own mind and get to know exactly what YOU want to do, not what others want you to. :-)

Will Marcouiller

Let's talk about paychecks.

BigCorps (the last honest and well earning ones there are) have a slightly bigger start wages for people with degrees. By policy.

It's the kind of money you will do by working there 2 years without a degree and going up the pay raises ladder year after year.

So, if the point is money: you study 4 years to get the benefits you'd get in 2 years work. And you pay a lot for that, instead of earning: not good.

Disclaimer: that's what's supposed to happen in a normal economy, at this time and place anything and everything can happen, and is happening, in the name of the magical economical downturn.
The pay ladder could be broken, missing, dead, shot at gunpoint by a roaming psycopath or be the victim of fundamentalists and swine flu.

On the other side, a degree could land you a dream job, for a corporation that take no dropouts by policy, like Google.

And in the long time you could be elected leader of a team faster than others without a degree.
(Leading people you never met before, people with a degree, without having a degree yourself can be troublesome, your authority will be questioned and you will probably have to prove you know what you're doing, this will waste time and time isn't something your employers like to lose)

Or you could try an academic career, which means you really must like to brag with long winded writings about youaccomplishments as a researcher in an unexplored field to gain financing and make people much older feel they are much more brilliant than you. What's to like about it is that, at a certain point, you could attain a guru status that permits you to go missing from your job position for years (claiming personal research interests or international lectures) and resume it almost at will.

In essence: there are pros and cons, and I admit pros are more hypothetical than cons.

Then I must say, the level of exposure to weird languages and ways of thinking a college can give you is invaluable, and makes you a better, more versatile programmer. But it really isn't a difference any of your employers is bound to recognize.
It's more something you will notice, those (not so frequent) times you get more results with less effort than other unskilled workers. But unskilled workes are more dedicated than you, feel guilt for their lack of education, (that's what they are made into feeling) and work more, longer hours, with no payed overtime, to cover their lack of formal indoctrination.


school is total waste of time if you already have the knowledge, better make some useful open source project or join one ;}


I agree that having experience is critical. However, we must not overlook the importance of a degree. A degree is the only way to entrench necessary skills and competencies to combat the cut-throat competition amongst IT professionals. Most of the time, a Computer Science degree can be the stepping stone for your career in the IT industry, which eventually will lead you to a high paying job, and ultimately make you an experienced professional.


I read about this accredited online high school that helps students obtain a diploma or GED so they can further their education. It is about time someone stepped up to help out these individuals who want to seek a more fulfilling and better paying career.

Joseph Hogan Wilks