views:

1023

answers:

22

If you were going to hire a programmer to work for/with you, what level of CS education would you prefer them to have and why? This assumes all other things are equal which, of course, they never are in real life.

Self taught?
Bachelor's?
Masters?
PHD?

The important part of the answer is the why, not the level. I'm looking for how important people think a Computer Science education really is and if one can go too far.

A little clarification: To make things a little more even, assume you're hiring them without a lot of work experience. Obviously having a higher education is of less value the farther you are from graduation.

+36  A: 

Ongoing.

The people who NEVER stop learning.

Neil N
This sums it up right here. A degree is great but 10 years after the fact what will really matter is whether the person has continued to learn after graduation or not.
rmz
@Neil: Would you rather that, even if it is ongoing highschool?
OscarRyz
@Neil: its very difficult to determine that. Yes its preferred but not really measurable. At least if a person has achieved a Bachelors or Masters one can see that they have the ability to learn and not give up.
mezoid
I disagree, the kind of programmer who loves his craft and is always seeking more knowledge is easy to identify. He will stink of it. There is no need to measure.
Neil N
I totally agree that college isn't a requirement. I was going to college and dropped out not because it was difficult but because it was the same stuff I did in my vocational high school except it cost me way too much money. And if it counts for much one of the best developers I personally know only has his GED and (like myself) never took a programming class. (Oh, I was going to college for electronics engineering. Same thing I did in high school.)
Matthew Whited
+7  A: 

I would say a Bachelors degree is sufficient for most business programming, if you are specializing in some area of programming/computer science then that is when I would start looking for someone with a Masters or PHD in that particular field of comp sci.

Element
+2  A: 

If they are self-taught that tells you right there: They are strongly self-motivated and absolutely love what they do. Also, I would give them a skills test, look at their hobby projects, how involved they are with communities, etc. Personally, I would look at skill before the degree, but if they have a degree that can also show they can commit to long projects and commitments.

I'm young, and my opinion is purely an opinion here, but I thought I'd share. :)

David Anderson
hmm I will disagree - 4 years of comp sci degree shows huge motivation and dedication.
gnomixa
"but if they have a degree that can also show they can commit to long projects and commitments."
David Anderson
It can also show they they show up to class and someone else footed the bills. (Oh, I even helped one of my friends with his networking and VHDL classes... and I don't have a degree.)
Matthew Whited
It depends on the person, I have seen many great people who were self taught and many who were just plain awful.
HLGEM
+4  A: 

Sometimes being overqualified has its drawbacks too..

Don't Let Architecture Astronauts Scare You

When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don't know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don't actually mean anything at all.

Gulzar
I agree, however I've seen architecture astronauts ( or as I prefer to call them, abstraction astronauts) in both the under and over qualified. So I dont think this flaw is unique to any one level of education.
Neil N
+1  A: 

I don't really care much about a university title: if the job applicant has one, it's fine, but I consider it more important that someone is into programming with his "heart and soul" - if a self-taught programmer can convince me that he's got the required skills, loves what he's doing and is eager to learn more, than I'll happily hire him rather than someone with a PhD who does not have this "fire".

ISW
+1  A: 

I don't think any level is particularly the best. The keys are more in knowing that they do know what to do in the real world which isn't necessarily as good as academia. I think most developers are self-taught to some extent regardless of their education level. While I am a Bachelor's holder, it wouldn't surprise me to see awesome developers in any of the educational levels.

JB King
+2  A: 

I have interviewed (and hired) college drop outs who are "smarter", and by that I mean have a better understanding of CS basics than Masters folks. While having a Bachelors/Masters degree helps in the absence of any other discerning criteria, it all comes down to the phone interview. Once a person performs well on that, it doesn't matter what degree he(she) has or doesn't have.

Adnan
+1  A: 

Bachelors is an excellent foundation. From that point, the programmer should show a strong eagerness to learn and improve him(her)self. This may be taking additional classes, certifications, or extensive practice in personal time.

BenMaddox
+1  A: 

For our specific needs at present, a PhD is pretty handy, since we have a lot of specialized really hard problems. But a Bachelors ("or equivalent") is a reasonable starting point.

At the very least, it shows somebody can start a 4-year project and slog through.

For the "or equivalent" there should be a pretty strong story regarding why they didn't go the normal educational route, but you certainly wouldn't want to overlook a legendary programmer like JWZ.

Mark Harrison
+2  A: 

I personally think an undergraduate (Bachelor's degree) is almost mandatory. Anything above that is arguably worse than useless, it's counterproductive. That's not always the case. Certain specialist areas might benefit from a post-grad degree (although moreso in another field than CS if you ask me) otherwise post-grad CS degrees just prepare you do be an academic and researcher (imho).

I wrote more on about the whys of this in Am I too young to be worrying right now?

cletus
So a Bachelor's is mandatory, but 1-2 more years in school for a Master's is "worse than useless"? The shift seems a bit sudden to me...
Justin Ardini
+3  A: 

I personally like to hire people who are better than me at programming.

This doesn't have much to do with a degree though, as I've hired people who have BSC's or not much formal qualifications.

I find that years of proven experience is a useful guide, sadly this doesn't help you much. I also prefer to hire more senior developers then junior ones, as they have learnt from lots of mistakes already.

I would say a Bachelors is useful if you're starting, but after 5 or so years it's irrelevant. I would also say a PhD is possibly too much, but then again you can't really generalize as I've worked with a PhD before who was an amazing DBA.

It also depends to a huge extent on which job you're applying for. If you're writing Ajax with JQuery I would expect you to keep up with the bleeding edge of things. If you're maintaining a VB6 legacy app, it's far less important.

Bravax
+1 for the PhD comment. Not all PhDs are terrible programmers (some are even the world's best) but many (esp. non-CS PhDs) have around 5 years less real world experience programming in a real language than someone of equivalent age.
Jared Updike
+7  A: 

Relevant work experience is definitely more important than a degree. One thing a degree does tell you, though, is that a person is willing to stick with something and pursue it to completion. The type and difficulty of the degree can be used to estimate this 'perseverance' factor.

Pete
perseverance is definitely a valid point in favor of degree holders. Although I know of at least 2 friends who dropped out because they could not afford to go to college any more.
Adnan
+13  A: 

In general I'd go for the bachelor's in CS. Any completed bachelor's degree tells me at minimum the candidate can finish small projects on deadline. And a decent degree from a decent program will give us a lot of common background knowledge that we can build on.

I'd be less interested in the MS. The kind of candidate I'm most excited about enjoyed the CS degree but now wants to get out and build things instead of getting more school and another credential. (Shout-out to George B and Clayton M.)

In my view the MS is the worst of all degrees because so many people get master's degrees faute de mieux. (This criticism applies only to CS bachelor's plus CS master's; if somebody gets an undergrad degree in, say, physics, and then adds a master's in CS, that could be a good fit for a programming job.)

I would be very unlikely to hire a Phd for a programming job, for the reasons stated. PhDs are great for other things. :-)

Norman Ramsey
I don't think that's really fair. Many people get their master's for a more thorough understanding of the theory behind the field or an in-depth study of certain specialties. Not everyone wants to get their PhD and teach, but it seems like you'd penalize someone for just wanting to learn more.
Matt
I have taught master's students. Many people do indeed get their master's for a more thorough understanding of the theory behind the field or an in-depth study of certain specialties. Many *more* get their master's because they want another shiny credential, or because they think it will bring them more money, or simply because have no idea what else to do with themselves. Most of the best young engineers I have known---the ones who are eager to make an impact---go to *work* after getting a bachelor's degree, because they want to start making a difference.
Norman Ramsey
A: 

Little off topic but relevant. I don't particularly recommend courses in any particular modern framework language such as doing the .NET certification. The .NET certifications teach you very much about the framework often things you may seldom (never) use. I think it is much better to learn fundamentals and know how to find things in the framework or programming language when you need them.

It really is something you need a passion for and some intelligence. I learn more on the job or programming at home for "fun" than I learnt anywhere else. Not that formal education doesn't have it uses at the start, it certainly teaches you good practice.

PeteT
+1  A: 

I prefer programmers who not only understand the Computer Science but understand the domain in which the software will be used. This is because most "Users" who don't understand programming can't write a System Requirements document to save their lives.

The best programmer I ever worked with had Bachelors degrees in both CompSci and ChemEng.

Technical Bard
+2  A: 

Between a self-taught, BS, a MS, and a PhD in CS, all having stepped fresh out of school with no industry experience, I'd pick the BS. A MS or PhD looking toward industry should have grabbed an internship along the way, in my opinion. A self-taught without industry experience is a hobbyist, and thus won't have the theoretical foundation to grow on.

Paul Nathan
+2  A: 

In my experience and opinion, BS and self-taught with some experience are equals. MS might be a good bet if you need to do something more advanced than basic business programming.

Credentials are not everything. Thorough interview with coding and design tasks is essential.

abababa22
Agreed, I've known people who show up at a job with degrees and certs up the wazoo, only to realize they cant code a lick. Some kid with a HS diploma and self taught can make deliverables happen.
Neil N
+1  A: 

Two general rules (both have plenty of exceptions)

I would look for two things: Do they have a computer science degree? Where did they graduate from?

Having the CS degree helps. I know more because of it and I think many other CS grads would agree.

Second, I would look at what school they graduated from. In my experience, there's a reason Ivy League schools have a good name. The students that come from there are smarter, more talented and more motivated than students from other schools.

This isn't always true of course. There are plenty of exceptions to both of these rules. The second rule doesn't even apply to me. I'm a community college student after all.

Brian Bolton
+1  A: 

Oh, boy.

Theory is all good and well. It has its value. But knowledge gained through experience means far more to me than book-larnin'.

Read about tornadoes all you want. But the experience of surviving an F5 tornado tearing the earth apart around you will stick with you for the rest of your life. It will fundamentally change the way you think about how to behave when the warning sirens sound, and how to survive a tornado.

Reading it out of a book? Not so much. Maybe a little, but definitely not in the same way.

Similarly, you can read about algorithms and data types and programming paradigms until your head slams against the desk from sheer exhaustion. Best practices, unit testing, frameworks, standards, blah blah blah. Until you put it into practice and see it work or fail disastrously, it doesn't have the same impact on you, and you won't be able to speak about it with any kind of authority. You'll just be quoting someone else.

Give me the guy who can look me in the eye and know what the hell he's talking about over the guy who's spouting theory any given day of the week. On the other hand, it helps if he understands the underlying theory, but I'm far more impressed if he's survived the F5 tornado ripping through his company and knows what to do about it and can help us prepare for it in the future.

Mike Hofer
+1  A: 

Well, being a PhD and an ex-professor (over 20 years ago), I don't know how to answer your question.

I do know that I have never gotten a programming job through an HR department, and I don't look very impressive to an average interviewer. They seem to want somebody bright-eyed and bushy-tailed, with the right check-marks on their resume, and saying all the right things.

Every job I've gotten has been because someone needed to get something done, and they wanted somebody who could do it.

That said, attitude is everything.

Mike Dunlavey
+1  A: 

For business programming I would rate the self-taught with one-two years of professional experience and the person with the Bachelors at roughly the the same level. I would be much less inclined to hire hire someone with a Masters in CS or a phD for a business programming position, Those are nice for specialized scientific applications or the people who create thereplacement for the C# language but not run of the mill business programming. If someone has a Masters or phd with no work experience, I would probably toss the resume. Why should I pay a premium salary for an entry level worker? If you want a Master's get experience first, then go for an MBA if you want to do business programming.

HLGEM
A: 

Peter Norvig: "One of the best programmers I ever hired had only a High School degree; he's produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub."

Peter is referring to Jamie Zawinski here, and he is the best example of a good programmer without a college degree. I think good programmers pretty much develop their own skills coding themselves off school hours.

OTZ