I’m an undergrad CS major at a state school trying to decide either to enter the software industry or grad school after graduation (I’m a sophomore but I’d like to plan ahead). It seems a master’s degree is helpful to have these days, so I’ll want to eventually go to grad school for a master’s if not a PhD degree even if I decide to start working (maybe I’m wrong; maybe in the software industry, like they say (usually ads), you really don’t need a degree).
I’ve read some comments about PhD students quitting halfway and awarded master’s degrees, therefore I’d like to know what are some of the top CS PhD programs (in the U.S.) that permit that. Because that way if I’m not willing/able to finish my PhD, at least I’ve got a master’s degree to fall back on (maybe even for free because I was in a PhD program?).
P.S. Personally, answers to this question really help me decide how I should spend my next 3 years: either 1. maintaining my 4.0, working with profs, doing research on campus and trying to get published (which I’ve had some experience but am not too enthusiastic about), or 2. caring less about GPA, attending hackathons, working on my side projects like building my site, making my game, or just messing with Linux kernel (which I enjoy). Option 1 helps with grad school admission (watch out Stanford/MIT! lol), whereas option 2 helps with getting me internships/job offers (FB/Google). I only have so much time and would rather focus on one thing and be GREAT at it. Currently I lean towards option 2, because I hear people saying if I’m not really PASSIONATE about research, then I shouldn’t get a PhD; not to mention it’s a huge time/opportunity cost (plus I’ve been a good student for all these years–really want to start making money and have a life). Considering I may eventually need a master’s to remain competitive in the workforce (again correct me if I’m wrong), I’m considering a master’s-PhD-combined program, hence this question (whose answers give me more motivation for option 1). BTW as you can see I’m a pragmatist, so I care more about how much money I make/I how much fun I have from my future job than anything else.
You don’t need to be in a Ph.D. program to get a Masters and you don’t need to have research experience to get a professional (coursework only) Masters degree.
It sounds like you are NOT that enthusiastic about research and so you should go for option 2, get work experience and after working for a while, decide if a Masters degree will help your career. There are plenty of professional programs where having research experience is not necessary (you have to be prepared to self-fund or have your employer fund it).
If you decide after a few years of work that you were interested in research after all, then you can apply to a research-oriented Masters program (also likely self-funded) to get the research experience needed to get into a Ph.D. program.
To get back to your original question. Most Ph.D. programs have exit points where the student can leave with a Masters (either course-work only or with a thesis). This is pretty universal as some students decide that the Ph.D. is not for them after a couple of years, or they are unable to pass qulaifying or comprehensive exams.
It is pretty clear option 2 is your thing. Even if you decide otherwise later, it still will be a reasonable decision to work a bit first, given where you are in your thinking and enthusiasm.
“so I care more about how much money I make/I how much fun I have from my future job than anything else.”
100% option 2.
CS grad school will likely never make you overall more money. You forfeit on average, 5 years of good income and work experience, for a better starting salary in a specialized field.
Most PhD programs will allow you to get a non-terminal master’s degree after completing a certain amount of requirements. There’s no official list, though; you’ll have to individually check the websites of these CS programs (and sometimes ask - because often that information is not directly stated on the website, although if you check the student handbook, it’s probably in there). I’m willing to bet that most top CS programs grant an MA along the way.
However, if you are uncertain about whether you want a PhD, I would advise not entering a program at all. Trust me, it’s worth it to pay for an MS in CS rather than entangle yourself in a PhD program you don’t want to be in. First of all, the non-terminal MS often takes longer to get than a regular terminal one, because the goal is not for you to get a master’s. For example, you might have to complete a master’s thesis in order to earn the MS, but your advisor might encourage you to take longer to write the thesis because they want it to be in publication form before they approve it. (That happened to me; it took me three years to earn my non-terminal MA rather than 2.) Secondly, career development in PhD programs is typically for academic jobs - or, at most, research jobs. They’re not geared towards preparing you to enter the workforce with an MA, so you won’t have as much support from your program to find a job after 2-3 years.
Do option 2. Option 2 is much more likely to help you get a job afterwards, because having some kind of product to show (like an app built from a hackathon or a good site or game) is far more important than your GPA. If you want a master’s later, your employer might even cover it.