Hacker News new | ask | show | jobs
Why (Not) Do a PhD in Computer Science? (blog.skanev.org)
46 points by s_kanev 4846 days ago
10 comments

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.

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.

This is important to me. It is the reason that most of the jobs I am interested in require a PhD. Outside of the start-up and web space, there are actually a lot of industrial research jobs that will not even give your resume the time of day without a PhD because you are expected to produce technical literature and patents. I thought it was kind of funny in the article how they still mentioned the "I want to be a professor" reason. No interest in that rat race.
Don't those kinds of industrial research jobs also usually require the kind of publication track record that you have to acquire in academia to survice?

Do industrial research labs really employ freshly minted PhDs - who probably haven't acquired the most important skill in modern research: the politics of attracting funding/backing?

> Don't those kinds of industrial research jobs also usually require the kind of publication track record that you have to acquire in academia to survice?

Yes.

> Do industrial research labs really employ freshly minted PhDs - who probably haven't acquired the most important skill in modern research: the politics of attracting funding/backing?

Yes. How do you expect freshly minted PhDs to learn the art of attracting funding and backing?

The black arts of attracting funding seems to be what junior academics spent considerable amounts of time doing when I worked in academia - mind you that is going back a bit so wouldn't surprise me if things have changed a lot.
Keep in mind parent was talking about industrial labs, where funding is obviously a bit different. I don't really know much about academia beyond what I hear from peers.
It is actually very common to go to a research facility after a PhD. Anyone with a doctorate from a reputable program will have a list of publications that demonstrate a clearly defined interest and quite possibly even grants. For those that aren't at the level of a research scientist, there are often post-doctoral fellowships. If the companies are large enough, grants are less of an issue because there is a built-in R&D budget. There is less of the panhandling you see in academia.
I did know some colleagues who went to work for large corporates in research labs - but they seemed pretty rare in the UK. Most stayed in academia or left to work in finance - and some even left to found startups (like me!).

Out of interest, what are some examples of the "research facilities" you are talking about?

IBM T.J. Watson, IBM Dublin, Oracle Labs, Google Mountain View, PARC Inc.,... there are some other ones that are more specific to HPC.
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.

That being said: it's all about curiosity and people. So if you're curious and have the time / money... go for a PhD!

I know of three PhD's in comp sci that went straight into Goldman Sachs (and one hedge fund) where they immediately started earning far more than those of us that left Uni with our Bachelors.

They work in high frequency trading mainly using Java.

Interesting. I wouldn't have though Java was suitable for HFT due to garbage collection pauses playing havoc with your system determinism and performance reliability.

I supported a derivatives trading system written in java that was canned due to performance issues, and where I am now we had java FIX protocol gateways that we've replaced with C++ components, again for performance reasons.

I'm not saying java has performance problems in general, I do understand that for many applications it's a good and performant option, but when you're dealing with sub-millisecond response times it has issues. If anyone is using Java for applications like this, I'd love to know how they get round these issues.

Nah...there's tons of workarounds these days which make things way faster / less latent. Couple quick examples:

* look at memory mapped data in java (basically using sun.misc.Unsafe lets you deal with things like malloc and free)

* look at increasing use of primitives and collections that utilize primitives appropriately

* properly profile / size your eden space

yada yada ... i think a lot of HN people have generally just wrote off java as not as fast as C, not as productive as python/ruby, and not as exciting as lisp, haskell, FOTM. Java's a fine tool like anything else...just need to use it appropriately.

Check out LMAX. They've built an exchange that runs on Java. Their engineers are constantly talking/blogging about getting Java to perform well. "Mechanical Sympathy" is the buzzword they've coined.
> garbage collection pauses

AFAIK, mark-and-sweep GC was removed from the JVM years ago (except on Android, where Dalvik used it until 2.something). I can't help with the rest of your post though.

I'm surprised they'd do it all in one language. High level decisionmaking in a high level language, simple low level execution in a low level language.
Plenty of word class trading systems are running Java.
True. My point was a bit more subtle: those of my (former) co-workers with PhD's in physics or maths were extra extra smart and really great programmers... But they didn't start their PhD wanting to go into finance! You start because you want and love to do real research. As a bonus there are skills that can (also) make you big money. But there are quicker ways to the Goldman Buffet.
Just like I didn't start my Computer Science degree thinking I would end up working with large ecommerce platforms that power some of the worlds most recognisable brands websites.

But here I am.

Most PhD people I've met (selection bias) don't do work that's too closely related to their degree (just like I don't, Enterprise Java dev != comp sci). They do all make a lot of money though.

Were they actually using anything specific from their PhD? The research they did was directly relevant to some part of the HFT application?
No. That's got nothing to do with anything though. My wife has a degree in maths and works as a project manager at a big consultancy, I have a degree in comp sci and write Java all day. How many people really work in areas closely aligned with what they studied? I've used to no discrete math or graphs where I work...

I'm just showing you how it's possible to do a PhD then get a good paying job at the end. This removed the worry of missing out on 5 years of salary.

I'm just curious as to why an employer is keen to have people with PhDs - simple credentialing to make selection easier?
Maybe that's one reason. I think there are other reasons too.

Why do people want degree graduates? Because it shows they can finish things, because it shows they are smart? because it shows they have drive? Many reason are given for hiring grads.

Somebody with a PhD in comp sci would have pretty much proven they are good with very difficult problems and have the drive to see things through to completion.

What qualities do you think it takes to finish a PhD? Some employers seek out those qualities and a PhD is a good indication that you have those qualities.

and in doing so sold their souls to the devil.
Why wouldn't you for a few years with an exceptionally good salary and immense technical challenges to overcome?
It doesn't have to be just about curiosity. It can be about wanting to make a useful or even important contribution to society.
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.
A CS PhD student doesn't generally take out any student loans; at most universities, students are funded by research and/or teaching assistant appointments and internal/external fellowships.
1. Professional degree does not need scare quotes.

2. US professional degrees have dropout rates of 3%, approximately. The Ph.D. with lowest dropout rate, engineering, has a 35% dropout rate. Pretty much everyone who can be admitted to a Ph.D., funded is a guaranteed admit to a pro programme that will on average make them more money.

One should do a Ph.D. if one will not regret it even if one never holds a faculty position, i.e. it's more consumption than investment, or if one got into a TOP programme in one's chosen field. Economics seems to be in the process of collapsing from top 5/6 to top 2, CS has been 4 for a long time, but the principle is the same everywhere.

> Professional degree does not need scare quotes.

That wasn't meant to attract undue attention to it, only because the term has no universal definition.

Apart from economic issues I agree with your points. If someone expects the Ph.D. to pay off in straight economic terms, different story.

> ... guaranteed admit to a pro programme that will on average make them more money.

By "pro" did you mean Ph.D.? If so, not any more, not necessarily. The economics are changing, and the combination of rising costs and the fact that a Ph.D. candidate is out of the job market longer, conspire together to make it a less attractive option. There are cases where a Ph.D. graduate makes less money than a professional degree in the same field.

I'm not disagreeing (and I'm not sure I understood you), only saying things are changing and the claim isn't true across the board.

My lack of communication skills strike again. Pro programme meant professional degree programme. Doing a Ph.D. for the money is a terrible idea. Anyone who can get into a Ph.D. programme can do another 2/3/4 years of undergrad (MBA/JD/MD) and even ignoring the time spent getting ones degrees all of those will have better pecuniary outcomes than getting a Ph.D. for the kind of person who can get into a programme and especially for the kind of person who can actually graduate with a Ph.D.
Quick nit-promote (nit-picking in order to agree even more), elite professional programs generally have attrition rates even lower than 3%. Columbia law school has an attrition rate of .3%. Yale and Stanford law schools have no attrition. [1]

http://taxprof.typepad.com/taxprof_blog/2008/04/law-school-r...

[1] just noticed that these are 1L attrition rates. So actual rates may be a bit higher.

"I do it because I'm intellectually curious (aka I like new stuff)"

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)

"a PhD teaches you how to ask the right questions"

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.

"Take this argument too far and you find yourself in theoretical math,"

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)

"a lot of smart people tend to do research and PhDs. "

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.

"I do it because of vanity"

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).

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...

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.

All in all, I think I prefer to get a "regular job", and toy on the side.

Only do a PhD if it can get you the time to pursue topics you are truly passionately interested in. It sounds like you shouldn't pursue one, which is fine.
I'm not sure whether you mean mainland Europe but in the UK, it is not necessary to have a masters degree to do a PhD. It is probably advisable but not a prerequisite.

Like you however, after I did my masters and spent 6 months on my own research project, I realised that a PhD would not be for me and went into industry.

... 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.

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.

Sorry. I'd like courses to produce valuable, employable engineers - my experience is that they do not.

... because you will learn more by working in the wild, including why many real-world builders have a vague disdain of academia - especially in the genuinely difficult fields.

Maybe it differs away from architecture - but my experience of grads, even Oxbridge PhDs is that I will build 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.

Sorry. I'd like courses to produce valuable, employable builders - my experience is that they do not.

Some of the best software engineers I've ever worked with have PhD's (selection bias).

Just like mine, your experience is not necessarily indicative of the world at large. There's a reason google love hiring PhD's, there's a reason why a well known startup in London (dealing with high performance java tooling) prefer PhD candidate, there's a reason Jane Street is full of PhD's and there's a reason why half the hedge funds in London are full of math and comp sci PhD's

Take your Node and RoR skills home kid.

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).

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.

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.
Fix your site; it doesn't load at all with JS disabled.