Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm 21 years old and a first year master's computer science student. Whether or not to continue with my PhD has been plaguing me for the past few months. I can't stop thinking about it and am extremely torn on the issue. I have read http://www.cs.unc.edu/~azuma/hitch4.html and many, many other masters vs phd articles on the web. Unfortunately, I have not yet come to a conclusion.

I was hoping that I could post my ideas about the issue on here in hopes to 1) get some extra insight on the issue and 2) make sure that I am correct in my assumptions. Hopefully people who have experience in the respective fields can tell me if I am wrong so I don't make my decision based on false ideas.

Okay, to get this topic out of the way - money. Money isn't the most important thing to me, but it is still important. It's always been a goal of mine to make 6 figures, but I realize that will probably take me a long time with either path. According to most online salary calculating sites, the average starting salary for a software engineer is ~60-70k. The PhD program here is 5 years, so that's about 300k I am missing out on by not going into the workforce with a masters. I have only ever had ~1k at one time in my life so 300k is something I don't think I can accurately imagine. I know that I wouldn't have all of that at once obviously, but knowing I would be earning that is kinda crazy to me. I feel like I would be living quite comfortably by the time I'm 30 years old (but risk being too content too soon). I would definitely love to have at least a few years of my 20s to spend with that kind of money before I have a family to spend it all on. I haven't grown up very financially stable so it would be so nice to just spend some money…get a nice car, buy a new guitar or two, eat some good food, and just be financially comfortable. I have always felt like I deserved to make good money in my life, even as a kid growing up, and I just want to have it be a reality. I know that either path I take will make good money by the time I'm ~40-45 years old, but I guess I'm just sick of not making money and am getting impatient about it.

However, a big idea pushing me towards a PhD is that I feel the masters path would give me a feeling of selling out if I have the capability to solve real questions in the computer science world. (pretty straight-forward - not much to elaborate on, but this is a big deal)

Now onto other aspects of the decision.

I originally got into computer science because of programming. I started in high school and knew very soon that it was what I wanted to do for a career. I feel like getting a masters and being a software engineer in the industry gives me much more time to program in my career. In research, I feel like I would spend more time reading, writing, trying to get grant money, etc than I would coding.

A guy I work with in the lab just recently published a paper. He showed it to me and I was shocked by it. The first two pages was littered with equations and formulas. Then the next page or so was followed by more equations and formulas that he derived from the previous ones. That was his work - breaking down and creating all of these formulas for robotic arm movement. And whenever I read computer science papers, they all seem to follow this pattern. I always pictured myself coding all day long…not proving equations and things of that nature. I know that's only one part of computer science research, but that part bores me.

A couple cons on each side -

Phd - I don't really enjoy writing or feel like I'm that great at technical writing. Whenever I'm in groups to make something, I'm always the one who does the large majority of the work and then give it to my team members to write up a report. Presenting is different though - I don't mind presenting at all as long as I have a good grasp on what I am presenting. But writing papers seems like such a chore to me. And because of this, the "publish or perish" phrase really turns me off from research. Another bad thing - I feel like if I am doing research, most of it would be done alone. I work best in small groups. I like to have at least one person to bounce ideas off of when I am brainstorming. The idea of being a part of some small elite group to build things sounds ideal to me. So being able to work in small groups for the majority of my career is a definite plus. I don't feel like I can get this doing research.

Masters - I read a lot online that most people come in as engineers and eventually move into management positions. As of now, I don't see myself wanting to be a part of management. Lets say my company wanted to make some new product or system - I would get much more pride, enjoyment, and overall satisfaction to say "I made this" rather than "I managed a group of people that made this." I want to be a big part of the development process. I want to make things.

I think it would be great to be more specialized than other people. I would rather know everything about something than something about everything. I always have been that way - was a great pitcher during my baseball years, but not so good at everything else, great at certain classes in school, but not so good at others, etc. To think that my career would be the same way sounds okay to me. Getting a PhD would point me in this direction. It would be great to be some guy who is someone that people look towards and come to ask for help because of being such an important contributor to a very specific field, such as artificial neural networks or robotic haptic perception. From what I gather about the software industry, being specialized can be a very bad thing because of the speed of the new technology.

When it comes to being employed, I have pretty conservative views. I don't want to change companies every 5 years. Maybe this is something everyone wishes, but I would love to just be an important person in one company for 10+ (maybe 20-25+ if I'm lucky!) years if the working conditions were acceptable. I feel like that is more possible as a PhD though, being a professor or researcher. The more I read about people in the software industry, the more it seems like most software engineers bounce from company to company at rapid paces. Some even work like a hired gun from project to project which is NOT what I want AT ALL. But finding a place to make great and important software would be great if that actually happens in the real world.

I'm a very competitive person. I thrive on competition. I don't really know why, but I have always been that way even as a kid growing up. Competition always gave me a reason to practice that little extra every night, always push my limits, etc. It seems to me like there is no competition in the research world. It seems like everyone is very relaxed as long as research is being conducted. The only competition is if someone is researching the same thing as you and its whoever can finish and publish first (but everyone seems to careful to check that circumstance). The only noticeable competition to me is just with yourself and your own discipline. I like the idea that in the industry, there is real competition between companies to put out the best product or be put out of business. I feel like this would constantly be pushing me to be better at what I do.

One thing that is really pushing me towards a PhD is the lifetime of the things you make. I feel like if you make something truly innovative in the industry…just some really great new application or system…there is a shelf-life of about 5-10 years before someone just does it faster and more efficiently. But with research work, you could create an idea or algorithm that last decades. For instance, the A* search algorithm was described in 1968 and is still widely used today. That is amazing to me. In the words of Palahniuk, "The goal isn't to live forever, its to create something that will."

Over anything, I just want to do something that matters. I want my work to help and progress society. Seriously, if I'm stuck programming GUIs for the next 40 years…I might shoot myself in the face. But then again, I hate the idea that less than 1% of the population will come into contact with my work and even less understand its importance.

So if anything I have said is false then please inform me. If you think I come off as a masters or PhD, inform me. If you want to give me some extra insight or add on to any point I made, please do. Thank you so much to anyone for any help.

share
62  
Judging by the length of your post, which I haven't read, you are a natural fit for a PhD. –  Pavel Shved Aug 21 '11 at 15:20
1  
lolz@Pavel Shved –  explorest Aug 21 '11 at 15:29
1  
I'm just gonna throw it out there ... if you think you'll like making a nice programmer salary while in your 20's before the family - DO IT!! –  qes Aug 21 '11 at 16:38
5  
BTW, if you buy a nice car, some guitars, et cetera, you won't feel "financially comfortable" in the least! That's when you start the consumption trap, where the rate at which you get more things is what gives you the comfort. Save your money now and get used to a lower-cost life style, and you will feel actual financial comfort. –  Macneil Aug 21 '11 at 17:53
1  
making decent money != ( financially stable or confortable ) if ( spending the majority of it ) then broke or paycheck to paycheck; –  Jarrod Roberson Jun 21 '12 at 19:48
show 1 more comment

locked by World Engineer Nov 24 '13 at 15:21

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not a real question by JohnFx, ChrisF Aug 21 '11 at 18:15

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

2 Answers

up vote 23 down vote accepted

The choice is simple:

  • If you want to do computer science research, get a PhD.
  • If you want to learn advanced topics to be a better programmer, get a Masters.

Now, there are some misconceptions you have about PhD programs. Given your long entry, let me reply with bullet points:

  • You will be financially supported in a PhD program in the United States. This include tuition and money for rent, food, and a car. The pay, however, is mostly subsistence level.

    • Once you do have a PhD, you will be able to command a higher salary. Job openings for Google and Apple mention PhDs as "preferred," even when it's not a research position. [This could be that graduate school is the new bachelors, the signal that you are capable of completing significant and intense work.]
  • Yes, as a researcher you will be chasing money, writing papers, and reading related works. The amount that you code, however, entirely depends on the kind of school or company you end up at. In programs with few or no PhD students, you will be coding almost everything yourself. In lower-ranked or not-ranked PhD programs, you will be doing a large share of the coding. In top tier institutions, however, your students will be independent enough that you will not need to program at all. It all depends on what aspect of programming that you like. If it's creating and thinking creatively and problem finding that you love, you will get plenty of that conducting research.

  • How good or bad you are at technical writing now doesn't matter. Why? Because you will improve. Your advisor will whip you into shape. You'll also be reading books like George Gopen's The Sense of Structure: Writing from the Reader's Perspective.

  • I've never heard of any researcher being "too specialized" that their skills became completely obsolete due to technological change. A PhD knows enough of the fundamentals that they can forge new paths in the latest areas, always.

  • The research world is highly competitive! This is usually a downside of research, having to deal with rejection upon rejection, as reviewers miss all of the points of your brilliance, sometimes to hyper-macho degrees. You think it's a plus, however.

  • You may or may not hit a "home run" with your PhD. Yes, you may do something that changes the world, but most likely you will make something that shows you are competent at research.

Overall, you seem like the type who wants to run on all of your cylinders, at full capacity, covering all of your skills. When you are a researcher, you are your own boss and you decide what is worthy of study. That is academic freedom.

However, there is so much doubt in your message, I don't think you'd have the motivation to pull through the darker times of a six+ year program. Just to be sure, why don't you go for a Master's Thesis option and find an advisor. If you find you like research, then you will have just the right things to say when you are writing your personal statement for applying to a PhD program.

share
4  
+1 for a balanced, almost non-biased answer, and for the Master's thesis option. –  Job Aug 21 '11 at 17:53
1  
Heh, thanks... People can always click on my profile to see where my bias lies. ;-) –  Macneil Aug 21 '11 at 18:04
    
Thanks for the useful reply before the question got closed! Accepting it because it was helpful, long, and you actually took the time to read it. –  Sterling Aug 22 '11 at 15:38
1  
Glad I could help! I wanted to get the answer in early because I thought it would be closed as "too localized." But, I'm always surprised what gets closed and why on here. –  Macneil Aug 24 '11 at 22:01
1  
I'm reading this at a time where I Need to make a proper decision :) This definitely helps!!! –  abhiii5459 Aug 17 '12 at 7:26
show 1 more comment

Here is the algorithm. You can turn this into a markov chain and calculate your odds.

IF (I.CantStandVisualBasicSyntax) THEN
    BecomeASurfer()    
END IF

IF (I.LikeProgramming AND I.WantMoneyBefore30) THEN
    PursueMasters()
ELSE IF (I.LikeProgramming AND I.CanWaitForMoney) THEN
    IF RAND(0, 1.0) < 0.1 THEN
        // Very Unlikely
        PursuePHD()
    ELSE
        PursueMasters()
    END IF
ELSE IF (I.LikeResearch) THEN
    // Unreachable code
    IF (I.CanWaitForMoney) THEN
        PursuePhd()
    ELSE IF (RAND(0, 1.0) < 0.1) THEN
        // Very unlikely
        PursuePhd()
    ELSE
        PursueMasters()
    End IF
Else
    BecomeASurfer()
End IF
share
8  
+1 for captivating my attention for the duration of that algorithm. On a side note, the BecomeASurfer() method is cutting edge, high performance, and efficient data return. –  user29981 Aug 21 '11 at 16:16
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.