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.
Question not clear (Score:3)
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
Re:Question not clear (Score:1)
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.
Too much education (Score:3)
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?
--
Studies show (Score:3)
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.
--
All My friends Have Graduate Degrees, And... (Score:3)
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.
Pros and cons of a Ph.D. (Score:4)
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:
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.
A *serious* reply. (Score:1)
Re:Too much education (Score:3)
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.
im in that same position now... (Score:1)
Re:im in that same position now... (Score:1)
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.
Depends on how good you are.. (Score:1)
Re:Pros and cons of a Ph.D. (Score:1)
Re:Studies show (Score:2)
...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.
--
Re:Pros and cons of a Ph.D. (Score:2)
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.
"Career Guide for Engineers & Computer Scientists" (Score:2)
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*
Re:A *serious* reply. (Score:2)
In my experience... (Score:3)
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.
Re:Question not clear (Score:1)
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 experience getting an advanced CS degree (1987) (Score:2)
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.
---
Re:In my experience... (Score:1)
Actually, it sounds more like insecurity about your own educational background than "experience", and no, I don't have a Ph.D.
Re:Too much education (Score:2)
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.
Ph.D can certainly be a hindrance (Score:1)
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.
Re:Ph.D can certainly be a hindrance (Score:2)
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.
Other Degrees (Score:1)
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.
Re:Ph.D can certainly be a hindrance (Score:1)
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.
Re:In my experience... (Score:1)
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?
If you want to be a college prof... (Score:1)