Ask Slashdot: Worth Going For a Graduate Degree In the Middle of Your Career?
spiffmastercow writes "After nearly a decade of professional software development, my desire to work on something more interesting than business applications has pushed me toward looking into going back to school. I'd like to go into a graduate program for Computer Science, but I need to weigh my options very carefully. Is a Ph.D. a near-guarantee of a spot in a skunkworks type of job (Microsoft Research and the like)? Is a M.S. just as good for this? How does the 'letter of recommendation' requirement work if you haven't kept in touch with your professors?"
If that comes in the form of a graduate degree, so be it.
As long as you keep learning
This sig is intentionally blank
A PhD doesn't really guarantee you anything. It can also be detrimental depending on what you want to do as some companies consider it too much or too expensive. You'll be better off starting in a Masters program and then deciding if you you really see a need or feel the desire to go for the PhD. A PhD is a LOT of work and time.
Really unless you plan to go into academia or hard core research I'd steer clear.
I don't care what you say, all I need is my Wumpabet soup.
So letters of recommendation don't usually mean a whole lot for a senior student. If technically competent people have given you good recommendations that's fine, but usually you find a supervisor first, then apply.
A PhD in comp sci isn't a guarantee to anything, it's usually not worth it financially (an MSc usually is), and spending 4 years, or more, of your life on 20k a year with the theoretical payout at the end of it is a bad plan. Academia is usually based on years since you completed your PhD, so even though you could talk your way into some credit as a programmer (a programmer is not a scientist by the way), so that's more likely to be more harm than good. Research is usually very front loaded in a career, you produce the good stuff before you're 40, you supervise other people doing good stuff until you're 50, and then you teach and sit on committees and supervise people who may or may not do good stuff. If you're jumping into that process late you have to realize you're going to be treated like you're supposed to be 20 years younger than you are, and well, it's just not easily workable.
In terms of industry an MSc is worth it, a PhD isn't. An MSc shows you have a bit of a step up as a self starter, a bit more advanced knowledge and interest in a specialized area and you can do something interesting that isn't necessarily financially driven which still sounds cool. (My MSc was on GPU ray tracing, which, when I did it, wasn't going anywhere fast but everyone I applied for work with knew what those things were and immediately had a connect as to something 'interesting'). But for a PhD it's not usually worth it, industry experience is more valuable (and lucrative) unless you really need a PhD for a particular job you want, which would only be in academia, it's not worth. Again, keep in mind, a PhD is definitely science, you can get by as a programmer in a BSc and an MSc but if all you are is a programmer you're going to get your arse handed to you when someone asks you to develop a novel model of a problem or a novel solution and they don't really care what language you implement it in, if at all. Where I am we have a couple of PhD's in comp sci who I don't think ever write code, ever, but they're extremely well respected because they do theory of computation and fairly sophisticated mathematics development (which their grad students might implement).
As someone else said, there's no harm in doing a masters, and it's usually upside, so it's worth doing if you're interested, and the requirements are pretty lax to get in. Don't do a coursework masters, do a thesis masters though, coursework masters is like an undergrad with more advanced topics, so you're not getting anything, those are basically there to pad 'years of experience' for foreign students looking to move to your country. A masters you can reasonably accomplish at least part of it part time and keep your job (and income) too. Here the course requirements are 4 courses total, so one or two a term for a year or two, and then a thesis after (which is basically writing a 150 page book on some topic, and having an interesting idea you can demonstrate an example of).
A PhD though... ugh. It's a lot of risk, if you're a stellar programmer already it won't make you better and you're better to just keep making money. It lets you solve more novel problems, but those can be bad precisely because they're novel, which makes them hard to solve if not unsolvable. There's no guarantee for a decent gig at the end of it either, and you might end up stuck in a job that is the same as someone with an MSc, so you've wasted 4 years or more of good earning power on it.
What is it you really want to do? Do you want to do research- develop new algorithms and approaches? Then it can help a bit. But you pretty much need to stop working and go to school to get the real benefit, the real benefit is in doing graduate research with a mentor, making connections, and studying without distractions. It isn't the classes.
If you just want to work on different types of applications- do so. Apply for jobs that do something else. Look at startups, go to local startup events. Search job listings and ignore anything that says J2EE or .NET. If you don't live near a major city, you may need to relocate. But it's easily doable- 11 years in and I haven't touched a business app yet.
I still have more fans than freaks. WTF is wrong with you people?
Many masters are very application-oriented, and there's a chance you will end up feeling like you are doing the same job as before, but at a slightly higher level.
For most "technical" (i.e. sciences) fields, an M.S. means you take two years of classes without failing them, are able to regurgitate it out on exams, and maybe put together a Master's Thesis that's more a Rite of Passage than real work.
PhD's on the other hand, often (once again in sciences) spend the same two years learning the same coursework, and are expected to do 3-4 years of pure research, applying that knowledge, before they graduate. The sole purpose of the second (and larger) half of their tenure being to hone their ability to create rather than apply (I know many M.S. holders will be POd at that statement, but it obviously varies case by case, and I'm giving a broad brush stroke, so don't whine). Many PhD programs also give you an "honorary" masters if you fail to complete the PhD program (either by choice or by lack of research capabilities).
As an aside, many government research labs (some subgroups of which are strictly programming and computational) don't offer full time positions to anyone who doesn't have a PhD, and will only give those with an M.S. a temporary scientist position with the understanding that you are pursuing a PhD.
With that all being said and done, it really depends on what you want to do. PhDs are generally pretty high level. If you want your code to have application to something, you will most likely need a strong science background, whereby you are then using your programming skills to apply algorithms to solve problems. A PhD in CS will more likely be something very high level regarding computer science as a philosophy itself (hence doctorate of philosophy). It's quite a 180 and very likely more of a departure than you wanted to take from your current career.
Finally, as far as letters of rec go, graduate school in general is much more a case-by-case basis, and not only most admissions departments be very accommodating of any questions you might have during a phonecall, but letters of rec from work supervisors will also suffice in many cases.
Whatever you pick though, I wish you the best of luck and think you will have a great time and be happy with either one C:
I only list the drastic differences in a PhD so that you are able to weigh it properly against a Masters (including the fact that it's oftentimes less employable during a down economy, because of how much more companies are "required" to pay PhDs vs. an M.S. holder that can do the same work).
I've worked at MSR as a software developer. I have a M.Sc in CS/EE. To be a researcher there, with very few exceptions, you need a PhD. But that's a requirement, not a guarantee. You also need to either be young and promising (as determined by your publications, and how well they're received by the scientific community), or seasoned and established (as determined again by your track record of publications). "Seasoned and established" is not something you can get in a couple of years. These folks operate at the bleeding edge, you need to spend 2-3 years working really hard just to really understand what they're doing, let alone contribute something significant.
For an engineer, there's no requirement beyond, well, being a great engineer, and B.Sc. Some other companies (notably Google) prefer to hire researchers who are _also_ great engineers. This is rare, but these folks do exist, I know a few personally. PhD requirements do apply to those engineers.
If you're looking to do something researchy for a while, just get a software developer job at a lab (MSR or elsewhere). You likely will be able to publish, if your work is not embarrassing :-) (MSR allows and encourages engineers to do their own research). Let me warn you, though, you will be working with people who have been working in the same field for a decade or more, and as a result acquired the amounts of expertise that you won't have just starting out. A few (or a lot, depending on your IQ) of them will be a lot smarter than you, which can be demoralizing to some folks. And almost all of them will know math really well, which can be a challenge for you 10 years after school, even if you did advanced math there. You will have to understand them, after all, and help them apply what they've thought up. As if this wasn't enough, 9/10ths of what you do will never go anywhere other than to the patent office, which too can be demoralizing for someone who's used to people actually using their products.
On the flipside, you will learn A TON, if you're willing to put in the effort, and the environment is the very definition of low pressure. People are pleasant and super smart, research is interesting, you don't have to pull 12 hour work days, except maybe once a year before a major conference, and since you're a precious commodity, you're given the freedom to choose projects that interest you.
Point is, it's not all as rosy as you imagine it right now, but it's a worthwhile experience nevertheless. Or at least it was for me, YMMV.
PhDs don't get you jobs. I can point you to plenty of PhD students that have come from the university where I work that had trouble finding work. Now to be fair, most deserved it, they weren't very good, just hoop jumpers who kept jumping through enough hoops until they got their degree (it isn't supposed to work that way, but it does).
Get a PhD if you want to do research. Basically if getting a PhD sounds like something you are interested in, then sure, go for it. Education for your own sake is never a bad thing, so long as you can afford it. However don't look at it is a "better job-getter" particularly if you already have work experience since that is what employers tend to weigh most heavily.
The only jobs you get a PhD for are jobs that require it. There are a few, mostly in academia but a few out of it. However other than that, no it doesn't help you get work to a significant degree and can even be a harm in some cases because employers will reason you'll be too expensive for them or too bored with the job and leave.
Goes double if you aren't that interested and are just going to "hoop jump" it like some of our grad students.
I have a PhD in CS from a top-20 US university and now work in an industry research lab. Like most PhD recipients, I started grad school right after college and finished before starting my professional career. I would say getting the PhD is the single best decision I ever made, and looking back at my high school and college trajectory, it now seems like it was an inevitability. I always wanted to work in technology research, hack on software prototypes, work on R&D projects for a large influential company, and make more money. I've gotten all those, and I'm grateful for the opportunities. I make about 25% to 50% more in base salary than my friends who went to the same grad school but graduated with a MS degree. I also have more technical freedom at work because I have the publications and track record to back up what I'm saying. In the couple of times I sent my resume out for a new job (e.g. Google, MSFT, Facebook), I've gotten callbacks within 48 hours.
I do agree with some of the other unwashed heathens here who have only MS degrees that you can indeed get a great job with just a MS degree. But why limit yourself? Also, I agree that not all PhD programs are the same. I've seen some PhDs from 3rd tier universities work as test engineers. So in the end, I would say that you should get a PhD only if you can land at a CS grad school top-20 university. It is not worth your time getting a PhD from a university outside of this group. If you do get in, establish your area of expertise by publishing a lot of papers at top-tier conferences in order to strengthen your case for getting an interview at a lab like MSR. I recommend you do your dissertation in a field that has high value to companies, like machine learning or IR.
By the way, never take out a loan for grad school. If you work as a TA or research assistant, you will get paid while you attend school. The national average seems to be about $25k/year according to all my PhD colleagues.
Here's a cool job: Whole-Body Motion Planning and Locomotion in Rough Terrains. This is to develop control software for the DARPA Humanoid Challenge. University of Texas at Austin (but really on site at NASA Houston)
The ideal candidate should have a PhD in Aerospace Engineering, Electrical Engineering, Computer Science or related fields. Record of implementation and testing experiments on real robotic systems is required. She/he should be highly familiar with robotics theory, including motion planning, kinematics, dynamics, control, and linear dynamical systems. She/he should be proficient in software development including, algorithms, dynamic simulations, object oriented programming, and realtime Linux applications. High expertise in C++ is required. Proficiency in Python and Matlab is also desired. Experience developing software using GIT revision control or a similar tool is required.
Pays $55K.
I have a Ph.D. in CS, and although I am highly respected by my colleagues, and currently involved in interesting projects, it did not help me much when looking for work. During various job interviews I got the impression that years of experience in the software business is considered more valuable than a Ph.D. When I did get hired, the interviewer actually had a Ph.D. himself, so he did see the value. If you look at CS job descriptions, a Ph.D. is almost never a requirement, except for university positions and some research positions, but those are scarce (in the current economy). So, a Ph.D. is no guarantee for an interesting job. There are lots of Ph.D.'s out there doing work that they are overqualified for.
A Ph.D. is really a training program for an academic career, not for a business career. The subject of a Ph.D. is often highly specialised or even obscure. So, unless you happen to know (and if you have a choice for a Ph.D. subject) what research area will become important at the big software companies in three or four years time, the subject of your Ph.D. is irrelevant, or even detrimental, for your career. (That also goes for university careers: its very difficult to fight your way into a different specialisation).
That said, I loved my time as a Ph.D. student and post-doc researcher. You should only do a Ph.D. if you are passionate about a subject. So, if you have the opportunity to do a Ph.D. and you can afford to do it, and you are inspired by the subject and driven enough to finish it, then go for it. But it's not necessarily a good career move.
assignment != equality != identity
I started my PhD at 39, and completed at 46, doing all of the work part-time.
I work in R&D for a very large computer company, and found that a mid-career PhD was very useful.
First and foremost, in my own mind, a PhD put me on an equal footing with the large numbers of PhDs that I work for (and with) on a daily basis. I "found my voice" once I had a PhD.
Second, I happened to select a topic that grew in importance after I completed my dissertation, making me one of the company experts in the field.
What did I learn while doing my PhD? Given the point in my career when I did the PhD work, the coursework provided me with a complete refresher course in CS (especially since my undergrad was Electrical Engineering). I also learned that a PhD doesn't mean you're smart, or make you smarter. A PhD is supposed to teach you to perform independent research. But it's primarily a measure of stubbornness.