Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Education

Advanced Degrees for Software Developers? 27

DagnyJ asks: "I am an Undergraduate planning to pursue a Graduate Degree in Software Engineering and Design. The question is whether to get a Ph.D. or a masters degree. When pursuing a career in this industry, is a Ph.D. going to make much of a difference in opportunities over a Master's degree, or would it be better to get out of school fast and get some real experience?" It's an ever popular question for college undergrads in their senior year. With the change in economic climate, maybe staying in school for a few more years might not be a bad idea.
This discussion has been archived. No new comments can be posted.

Advanced Degrees for Software Developers?

Comments Filter:
  • by Dancin_Santa ( 265275 ) <DancinSanta@gmail.com> on Wednesday April 11, 2001 @12:29PM (#297663) Journal
    What do you want to do as a Computer Science graduate?

    Do you want to code and hack? Get a job right away.

    Do you want to do research? Check out PARC [xerox.com]'s employment page.

    An advanced degree will not get you any further than a bachelors in JoeSchmo Bank. But you won't even get talked to without one if you want to work in a research center (HP, PARC, MS Research).

    Dancin Santa
  • Maybe PARC needs some Y2K specialists...

    Document Hardware Laboratory
    Physicist or Electrical Engineer

    (Posted 4/4/1001)

    Join a dynamic, inter-disciplinary research team
    working on breakthrough applications of MEMS,
    micro-fluidics, ultrasonics, microwaves, and
    electrically addressable paper-like substrates.
    The candidate will be responsible for modeling,
    experimental studies and hardware prototyping
    that will serve as the basis for new business
    opportunities. Our lab includes a wide range of
    hardware/software activities for new products,
    ventures and licensing. Hands-on experience in
    some subset of the following areas is highly
    desirable: MEMS, precision instrumentation, thin-
    film technologies, display technologies, imaging,
    printing, optics or micro-fluidics. The position
    requires a Ph.D. in physics, electrical
    engineering or a related subject. Successful
    candidates should be highly creative and self-
    motivated with excellent communication and
    problem solving skills.

    How to apply:

    (Please identify this position in the subject
    line when submitting your resume)

    To apply please submit your resume via email to dhljobs@parc.xerox.com.
  • by Hilary Rosen ( 415151 ) on Wednesday April 11, 2001 @12:33PM (#297665) Homepage Journal
    Way way back in the early 1980s my family took a vacation on the Shetland Islands, north of Scotland. One day my father got talking to an old crofter. After a while the crofter turned to me and asked how old I was and what my trade was. I told him I was 13 and that I was still in school. He said "What do you you want to be in school for, at your age?".

    I have a masters degree (Mathematics). For as much as it was a fun way to spend the time, it has had no bearing on my career whatsoever. In fact, apart from getting me in the door at a few short-sighted companies, my undergraduate degree was pretty worthless, too.

    My advice: go get a job. What do you want to be in school for, at your age?
    --
  • by yamla ( 136560 ) <chris@@@hypocrite...org> on Wednesday April 11, 2001 @01:09PM (#297666)
    Last time I checked, the studies show that the average salary for a person with an MSc (in Computing Science) is worth about $10 000 a year more than a person with only a BSc (in Computing Science), all other things being equal. A PhD adds virtually nothing to the average starting salary, however.

    My best advice to you is this. Only go for a PhD if you feel you can make a meaningful contribution to the field. Do not expect more money or more opportunities. Sure, you could perhaps find better opportunities with a PhD but the odds aren't for it. Instead, you'd be better off making money with an MSc and building up your experience that way.

    --

  • by human bean ( 222811 ) on Wednesday April 11, 2001 @01:25PM (#297667)
    ...I hire them every so often. It's funny to read their resumes and watch them squirm whilst sitting in front of the desk ;)

    Honestly, get real-world experience just as soon as you can. You should have started before you got into college. Finish the masters if you feel like hanging around, but I have seen it make little difference in the actual job market. Get the PhD., though if you are rich and can afford a research job.

    That being said, you MUST get the experience. Even in a pure research environment it helps to understand what outside factors and demands exist.

  • by geophile ( 16995 ) <jao@NOspAM.geophile.com> on Wednesday April 11, 2001 @02:05PM (#297668) Homepage
    I have a comp sci Ph.D. and 13 years of experience building software products, so I know what I'm talking about on this topic from both sides: trying to escape academe, and interviewing job candidates in the same position.

    An advanced degree is an indulgence if you want to work as a software engineer. Do it if you want to, but don't expect it to improve your salary. The only thing that counts is years "in the real world", i.e. writing code for a customer or product. I mean that literally. If someone is trying to hire a software engineer with five years of experience, then six years in grad school and one year of experience will usually not get past a screening of the resume.

    A Ph.D. can actually be a hindrance. If you get one, many potential employers will view you with suspicion for a number of reasons. The attitudes I've seen are that if you have a Ph.D. you must:

    • think you're too good to write code, fix bugs, write release notes, etc.
    • be lousy at writing code.
    • be incapable of writing efficient code.
    • be more concerned with cool ideas and theory than shipping a product.
    • have outrageous salary demands.
    • have a problem dealing with holders of mere B.Sc. and M.Sc. degrees.
    I have never seen these sorts of concerns applied to candidates with an M.Sc. degree.

    I'm definitely not saying that you shouldn't get an advanced degree. I really enjoyed it, and I think the quality of my work (including code) greatly benefits from my education. My point is that potential employers may not see it this way.

    I'm also not saying that you should go get a programming job right out of high school. Learning the basics of complexity theory, data structures and algorithms, compilers, databases, numerical analysis -- typical undergraduate courses -- is really important if you're going to be a serious software engineer.

  • This /second/ post will hopefully be more helpful. :) I would do a cost/benefit analysis and see if the PV of all salary cash-flows equals or exceeds the PV of all tuition cash-flows. If it does (having used a generous rate-of-return), then go for it. For the most part, PhD's are useful mostly for teaching; therefore, experience and training will do you more good in the long-run. But who knows? Sometimes it comes down to a gut feeling.
  • by Socializing Agent ( 262655 ) on Wednesday April 11, 2001 @02:27PM (#297670)
    I have a masters degree (Mathematics). For as much as it was a fun way to spend the time, it has had no bearing on my career whatsoever. In fact, apart from getting me in the door at a few short-sighted companies, my undergraduate degree was pretty worthless, too.

    I don't think you can make that comparison. A masters' in maths is basically the consolation prize for quitting (or failing out of) a Ph.D. Sure, you're not using it, because a masters' in maths is designed to equip you to do maths research. On the other hand, a traditional masters' in CS can take one of two paths: as prepatory for research or as prepatory for industry.

    Add to this the fact that many schools are also offering the a terminal CS masters' (sometimes called a MCS instead of an MS), and a masters' in CS is a clear advantage. Fact is that many students never learn design skills or many critical big-picture CS skills, and a masters' can provide valuable training as well as providing experience working on a large project.

    It really depends on what kind of software development you want to do. Do you want to crank out perl scripts for some dot-con, or do you want to work on large, critical systems? I'd say that in the case of the former, you're wasting your time in college. If it's the latter, though, then find a grad program with a strong engineering and methodologies emphasis as well as strong fundamentals and do the MS. It'll only take you a year-and-a-half if you're supporting yourself, but you ought to try to get a research job if they offer you support.

  • I'm a senior graduating this year from college and I faced the same problem as you. From what I've found from doing some research and talking to people (and actually working out in the field) that it's better to go get a job now since a lot of places don't hire people with advanced degrees because they think they'll expect too high of a salary. I've worked with people with Ph.D.'s and also with people who were self taught. Some of the people that were self taught were better programmers than the ones with advanced degrees. I'm not saying this applies to all cases, but it is possible :) So go get a job and get some experience!
  • In many scientific/scientific fields, (eg, physics), I have heard from my professors that the Master's degree is regarded as something of a consolation prize (as mentioned by a previous poster). However, in the more technical fields, it is still considered to be a useful piece of paper.

    Because CS has a lot of technical elements to it, a Master's degeee should be fine if all you want to do is work in industry. However, if you see yourself as doing research in the future, you might to seriously consider getting the doctorate. One question to consider is whether you would like to get the doctorate now, while you are fresh out of, and probably somewhat sick of, school, or do you think you could go back to school later on and get the degree? I have heard some people have a hard time going back.

    Another item to ponder is how much do you like computer science. Gettting a doctorate is not an easy task. Seriously think if you want to jump through all of the hoops to get one.
  • by Anonymous Coward
    I'm in a good CS grad program right now. There seem to be 3 types of grad student that I typically see. Someone wanting to get an MSc and leave. That's a good move, helps your salary when you go into industry. Then there are 2 types of PhD student. To generalize, some are shot hot, can program well and basically know what they are at. They also tend to be doing systems research or scary theory stuff. The rest... well they are crap. Can't code, don't know much theory and waffle a lot. I don't know how the selections are made, but there are plenty of these type of people around, and they are not gonna make it. They also tend to be in areas that lend themselves to waffle, like software engineering, HCI, and so on. Lot harder to bullshit a potential systems advisor. "So what have you built recently..."
  • I'm curious about the ethics involved if one decided to omit some education from their CV. That is, what if you got the Ph.D. and didn't report it on your resume?
  • > A PhD adds virtually nothing to the average starting salary, however.

    ...and delays the time of start by 3-7 years, too.

    > Only go for a PhD if you feel you can make a meaningful contribution to the field.

    SE might be an exception, but in most fields the PhD is a research degree. Unless DagnyJ's "pursuing a career in this industry" means getting a research position, his/her potential employers won't see much value-addedness in a PhD.

    OTOH, getting a PhD might lead to a job that's more fun than some of the grunge-grind jobs that lots of people in IT are stuck with.

    --
  • You know very well what the ethics are.

    If you're really asking about practical matters: what would you say you were doing for all that time? Actually, you could probably make up some incredibly boring plausible thing and get away with it. Providing, of course, it weren't the first or second most recent thing on your resume.

  • See the Career Guide for Engineers and Computer Scientists [greenspun.com], by Philip Greenspun [greenspun.com]. Not exactly serious commentary, but funny.

    I seem to remember him having a rant on there about the diminishing value of a graduate+ education, but I can't seem to find it now, and the content I'm thinking of seems to have been folded into the page above. *shrug*

  • According to Fred Brooks (yes, that Fred Brooks), you shouldn't do it for the money. You'll spend more in tuition and lost income for the years you're in graduate school than you'll regain in increased salary. His suggestion was to get a PhD in Comp Sci if you can't bear the idea of not getting a PhD in Comp Sci. IOW, do it if you love it and are willing to take the hit in lifetime income.
  • if I see the resume of a CS with a PhD and only a handful of years of experience, I tend to think "He's just had time to get all full of himself and think he's god's gift." My experience bears me out on that one. I wouldn't hire you, on the expectation that you would expect to get considerably more money for those three letters, when I feel that if anything they would be a detriment to me having you on the team. (All recent PhD grads are now welcome to direct themselves to /dev/null. I'm entitled to my opinion, which comes only from my experience. I'm sure there are some wonderfully humble new PhDs out there that I just haven't met yet.)

    If you come to me as a PhD with 20years of industry experience I'll see you as a wizened (wisened?) veteran who care share some real insight with myself and my team. Then again I might see any guy with 20yrs experience that way, the PhD would be extra in that case.

    As for masters? I was at a college recently, doing some recruiting. When I saw bachelors kids I tended to think "Ok, entry level, we'll start him off as a junior programmer and give him the scut work." Masters students tended to make me think "Ok, here's a candidate to go right into our core team and be given some responsibility." Why the difference? In our case it's primarily about design skills. If you know how to code, I'll have you write code. If you know how to design a system, I'll have you doing that. In general I found that the masters guys had more experience to backup their claims of knowledge. The BS ones said "I have experience in Z" when they meant "I've downloaded the free Z compiler." Masters students who said that meant "I had an internship at Oracle where I implemented the following project in Z."

    Just my experience. There have been entry level kids come in and wow me with their experience (although not many, there's less of you out there than you think). And there have been masters holders who don't know which end of the monitor is up. Make of it what you will.

    An interesting question would be, what about somebody who gets a BS but has the experience of an MS? My answer would be "I'm not sure that's possible. If you really have equivalent experience, then why don't you have the degree to back it up? It's more likely the case that you think the cases are similar, but they're not.

    In the interests of full disclosure : I have a bachelor's in CS. I spent 3 years at a small company as the only (hence, "lead") programmer, then 2 at the company that bought them where I became the team lead by nature of my expertise on that system. I had about 8-10 years experience in the field before circumstances turned me into the manager I am today.

  • Agreed. While a MS degree will put you in a better position a few years down the line (you will have an easier time interviewing for "management"-type positions if that interests you) starting out an MS or PhD will do you very little good if you just want a "regular" job where you code, or take care of networks.

    Now, if you want to teach, or do heavy research oriented stuff, get your MS, work for a couple years, and start on your PhD.

    Honestly though, I think spending the time, effort, and money to get a PhD is going to be a waste on your part if all you want to do is just work someplace as a coder or IT guy. I've been working at engineering firms for 12 years now, and I've never worked with anyone who has a PhD in a technology field. I know that the times that I've been involved in hiring, the companies I've worked for have all but immediately written off the handful of candidates with PhDs because they seemed overqualified (at least on paper) for this lowly position, so let's not waste our time when we have so many other candidates to choose from.

    My advice (especially if you don't have a lot of work experience), get out of school with your BS and start working. Figure out what you want to do (code, teach, research...) and then if it seems important to you, get your company to pay for you to get your MS at nite. Or if you know you really don't want to do this coding thing and want to teach, quit work and go to school fulltime and grab your MS and PhD.

    Of course, that's just me, in the end you're going to do whatever makes sense for you...

  • My advice may be a bit old, since I went to grad school in 1987, but when I was going to grad school in CS, pretty much everyone there originally entered because they were going for their Ph.D. The school didn't accept very many Masters-only students simply because their philosophy was 'if they're going to aim low, they can aim low somewhere else'.

    Granted, about half or maybe more of said students ended up taking the Masters consolation prize and leaving (your author among them), but out of 100 grad students or so, maybe 5 of them entered with the intention of just getting a Masters. This was just my experience, YMMV, Insert Disclaimer Here, etc.

    ---
  • I wouldn't hire you, on the expectation that you would expect to get considerably more money for those three letters, when I feel that if anything they would be a detriment to me having you on the team. (All recent PhD grads are now welcome to direct themselves to /dev/null. I'm entitled to my opinion, which comes only from my experience.

    Actually, it sounds more like insecurity about your own educational background than "experience", and no, I don't have a Ph.D.


  • I went back to get my MS after coding for a few years. I think that my work experience gave me a better idea of what I wanted to get from my MS. I used my class projects as a chance to gain hands-on experience on stuff that my job would never touch on. That experience helped me find a cooler job after I graduated. Plus, with some work experience, I could distinquish what class material was BS and what might be actually useful in "industry". ;-)

    Another huge benefit is networking with other grad students! Many of the students in my MS program were part-time students because they also had day jobs. If you've worked with them on class projects, they know you're smart and can work well together (if applicable ;-)

    One problem though is job inertia. If you've been working for a few years, it's difficult to give up that paycheck and return to living as a student again! Night classes can help, but you'll take much longer time to graduate. Plus you'll have NO free time with a day job and night classes! Instead, I quit my job and finish my MS with a double work load. :-)
  • I liked your list of attitudes. I'll add one more. "Employer wonders if Ph.D applicant really wants the position we are trying to fill."

    As a manager, I occasionally see Ph.D applicants for software positions. My fear is that if I hire a Ph.D, they will assume that their degree makes them my boss, instead of the other way around. The person I hire might simply ignore their job and try to do mine instead. If they start to schmooze with senior management (instead of doing the job for which they were hired), they will either (a) convince the top brass that they should be running I.T. or (b) manufacture some other "more challenging" job in the organization for themselves. This leaves me with at best a refill of a vacant position; at worst a total loss, since the person and position might get re-assigned. With an MS degree, this problem is reduced and with a BS it is eliminated.

    I have plenty of confidence in my skill and experience, it's just that I once worked in higher education. I saw some wacky behavior from people who thought the Ph.D was a replacement for experience.

    As you say, learning the basics is really important. However, everyone has to decide for themselves, just how much education is enough. In the long run, a person's willingness to keep up with technology will determine their career success more than anything that happens in college.

  • Wow, you're really insecure and bigoted. In your worldview, all PhDs are underqualified, conceited, and out for your job. This based on a small sample you once saw at some college.

    Either a PhD applying for one of your jobs really matches your expectations, in which case you shouldn't hire them, and if you do, it should quickly become clear how incompetent and conceited they are. Or he/she really is competent and interested in doing a good job instead of covering his ass, (which seems to be your main concern), and he/she probably does deserve to have your job.

    You basically admit to discrimination (emphasis added): "My fear is that if I hire a PhD ... With an MS degree, this problem is reduced and with a BS it is eliminated."

    Or maybe your posting is a troll. OK, well you got me.

  • I agree with many of the other posters: get a job now.

    If you really want to stay in school, and you are reasonably intelligent, and you want a good (i.e. satisfying) job later, get an advanced degree in something else.

    Good candidates are: communications, english, business management. If those ick you out, find something not CS related that you're really interested in.

    People who can bridge two or more disciplines by far have the most interesting jobs.
  • "Wow, you're really insecure and bigoted. In your worldview, all PhDs are underqualified, conceited..." Your first sentence is an opinion, the second is bordering on libel. Who is the troll now???

    I really want to ignore your second paragraph, but I just can't. "...Or he/she really is competent and interested in doing a good job instead of covering his ass, (which seems to be your main concern), and he/she probably does deserve to have your job." I could interpret that as meaning you think the Ph.D is entitled to my job, merely by proving they are competent and interested in doing the job I hire them for. Hmmmm.

    FYI, my main concern is this: I don't want to invest the time and effort to hire someone if I just end up doing their job for them while they ignore the actual job and pursue some other job they feel entitled to. I'm not especially concerned about a person grabbing my job or becoming my boss, because ignoring the job I hire them for is going to trigger negative evaluations and so forth. Long before that happens, such a person would be confronted with their own job performance, compared line by line with their job description. The real concern is that this entire exercise can be a real time-waster for all parties involved. By the way, a Ph.D is not truly required for this to be a problem, but I saw it happen, twice actually. I was not directly involved in either case, but it was like watching someone else's car accident. It makes you think a little more about your own driving habits.

    I don't assume "all PhDs are underqualified, conceited, etc." (although your post might make me reconsider :-)

    I do not have a "No Ph.D's allowed policy", but everyone recalls their past experiences when they make decisions. Having said that, each person has to be considered as an individual.

    This may come as a shock to you, but the resume screening process consists of reading documents and making assumptions about the people who wrote them. After all, a resume by itself proves nothing! I see certain things, I make certain assumptions. The interview process is where I give people a chance to prove or disprove the assumptions. I am fully prepared for the possibility of a Ph.D applicant who has great answers for my questions and disproves any assumptions I might have. Asking the right questions is how I explore the assumptions. Keeping an open mind and being prepared to abandon one's assumptions is part of the game plan.

    One of my best hiring experiences was a person with an MSCS degree. The person did the job I hired them for, earned a promotion, and ultimately went to the pharmaceutical industry for better pay. In the end, it was a mutually beneficial experience. In the world of management, that's as good as it gets.

    In my opinion, you are incredibly naieve if you don't think employers make assumptions about Ph.Ds, just as they make assumptions about high school dropouts. In some cases, the Ph.D degree creates the assumption of knowledge and credibility -- that's great. All I'm saying is that not all the Ph.D assumptions are positive. One of the other posts has a little more detail on the concept of not-so-great assumptions about Ph.Ds.

    All rhetoric aside, employer assumptions about Ph.Ds demanding a premium salary (or quickly changing jobs in pursuit of it) is probably the biggest obstacle of all.

  • You said: "An interesting question would be, what about somebody who gets a BS but has the experience of an MS?"

    What about the college dropout with 20 years experience developing on a wide range of systems, including 10 years running a software business with several employees? I'm thinking of selling off my business and "getting a regular job" for a change of pace.

    Should I go back and get my degree? I was a physics major, a CS degree would be cakewalk now.

    Most CS grads that I hired were useless to a small business that didn't have the time and money to train them how to do real-world work. I suppose with my experience I'd be expected to manage a team, but frankly I just like to design and code. Is there a place in a fortune 500 for me, or am I relegated to a startup?
  • ... then you will want to get a PhD. Some people find that life attractive - living in a college town, teaching, doing research, supervising graduate students of ones' own, etc. To do it, a PhD is usually necessary.

2.4 statute miles of surgical tubing at Yale U. = 1 I.V.League

Working...