I like the reasons described in the post. I would like to add one more that was really important for me when deciding to do a PhD in CS - learning to write papers.<p>While it may seem like a burden for some people, I think that describing your research in a very limited space (something like 8 pages) teaches you very valuable skills. You should also write it in a way that most of the readers will understand your ideas easily, considering the fact that the readers and even conference/journal reviewers often have very different backgrounds. I have seen papers with very good results being rejected because of bad explanations and also not so impressive papers that get accepted because they are very nicely written.
Never do a PhD for the money. Ever. It's not worth it, compared to using your skills to get a good education BSc / MSc and then start your career. You miss so many years of good income, plus income growth and will always stand out as the theoretical type.<p>That being said: it's all about curiosity and people. So if you're curious and have the time / money... go for a PhD!
You need to be aware that PhDs often make less or the same income as a "professional" degree holder does (for a higher student loan burden). That means if you feel that the experience will be personally enriching, the fact that it might not be financially enriching may not matter.
"I do it because I'm intellectually curious (aka I like new stuff)"<p>I hear that a lot, and I hear the argument that industry doesn't give you that type of opportunity, but I firmly disagree: in many places, people with bachelors or masters degrees are put in research positions in setups that resemble the Bell Labs of lore. And while most software shops aren't doing new things, a growing number of large firms are exploring new frontiers. (and even some finance firms, god forbid)<p>"a PhD teaches you how to ask the right questions"<p>What you need is a mentor, and a surprising number of people who decided not to do a PhD have the right mindset and actually help train people.<p>"Take this argument too far and you find yourself in theoretical math,"<p>Many of the people at the forefront of industry work find themselves delving in theoretical math (as a really oft-cited example, functional programming drawing from category theory)<p>"a lot of smart people tend to do research and PhDs. "<p>A lot of smart people decide that the PhD is heavily bureaucratic and that it would be easier to do more intellectually stimulating work in industry.<p>"I do it because of vanity"<p>Fair enough :)
I've been recently faced with the same choice. I'm finishing my master's degree (in Europe, where a master is a prerequisite for a PhD).<p>There were a combination of things that decided me. One is that a PhD is not that much of an asset in the workplace. Especially considering the consequent time investment. Another is that you have to deal with all the BS of academia: doing research that doesn't interest you with your promoter, writing papers with little to no interesting content, etc...<p>Academia also has that "symptom of immaturity, the dread of doing what has been done before". There are many topics, often well studied which could use a clarification/simplification of the theory. Or you could make a tool for a particular domain that doesn't suck.<p>All in all, I think I prefer to get a "regular job", and toy on the side.
... because you will learn more by working in the wild, including why many real-world engineers have a vague disdain of academia - especially in the genuinely difficult fields.<p>Maybe it differs away from software engineering - but my experience of grads, even Oxbridge PhDs is that I will code circles around them with what I learned off my own back in my spare time... and mainly because I learned it off my own back - or in many cases reinvented solutions without any hints or assistance.<p>Sorry. I'd like courses to produce valuable, employable engineers - my experience is that they do not.
I like some of the reasons the OP has listed (great skill set, intellectually curious) and because of those I was planning on doing a PhD after I finish my BSc (4th year now).<p>However, after careful consideration, I realized that:
1. I am not entirely sure if my enthusiasm will be enough to push me through a PhD
2. You can obtain a great skill set, meet loads of smart people and work on intellectually stimulating problems in industry, too.<p>That's why I plan to work for some time and then re-evaluate my situation and maybe apply for a PhD, who knows.
Ok..I did it in the early 90s. In my case, It was nothing but a slave labor. What I meant is, while I was doing the same kind of work that I currently do for corporations, I got paid a pittance while the school and the project sponsor gained much. Having said that, I would do it all over again. I really enjoyed the campus life 5 more years! :)
If I could get into a PhD program in trusted computing/tamper resistance (which basically consists of...Cambridge University; nowhere else is doing worthwhile academic work), I'd seriously consider it, but since I dropped out of undergrad, not so much risk of that.