One challenge with the PhD->CS Industry sidestep is that PhD candidates are extremely picky about the kind of jobs they're willing to accept, and many companies are suspicious of the value/cost ratio of a fresh PhD.
If you're a graduating PhD headed into academia, you will be the boss of your group, with almost nothing above you in the org chart telling you what to do. So it is natural for a PhD headed into industry to start from a place of expecting the same---from their perspective.
But from the perspective of industry, the PhD's value isn't judged the same way. They've just spent six years doing research, not shipping code. Their management experience is managing students and classrooms, not employees.
So this mismatch results in a perception of "I'm being undervalued!" from the perspective of the PhD and "He's overvaluing himself" from the perspective of the company.
If the student and company don't have high social IQ to navigate this situation, I can see how it would result in no offers being made.
Source: I've made hiring decisions about PhDs when I worked in industry, and now I'm a graduating PhD student going back into industry, so I can see it from both sides.
> If you're a graduating PhD headed into academia, you will be the boss of your group, with almost nothing above you in the org chart telling you what to do.
Uhhh... what? Where did you get your PhD, and what did you do after? Most graduating PhDs end up in a research group as postdocs, with everything above them in the org chart. Even if you get a tenure track job right after graduating, you'll still have to answer to a lot of people.
This is dependent on what field you're in and where you graduate from, of course. CS is less heavy on postdocs [1] and I'm biased by only having had the experience of top-tier schools.
As a tenure track professor, you don't really answer to many people. You have to beg for money (grants), constantly prove yourself (publications), and always be recruiting (students). Of course you also have to teach classes, do community service, and participate in department politics and initiatives. I'm not counting these as "answering to people," however, because none of them involve someone telling you to do something. They're all activities you must decide to do yourself, and then it's completely up to you how to do them. Is this what you meant by answering to lots of people, or something else?
The relevant academic joke is: "It's the best job ever! You can do whatever you want with your 80 hour weeks!"
[1] In CS, from my experience, postdocing is usually a 1-year "reset your brain" time before taking an academic job. I know in other fields it's often a mandatory many-year grunt-work experience.
> Is this what you meant by answering to lots of people, or something else?
Yes, this is what I meant. I dropped out of my PhD (CS as well), but when I was a student my advisor (who was still an assistant professor at the time) was spending most of his waking hours in department meetings, writing grants, finding a way to make $RANDOM_OLD_PROFESSOR happy, and so on. To me it seemed very much like he had 10 million voices telling him what to do (of course he got to choose what he would actually do and what he wouldn't, but it didn't feel to me like he was much more "free" than he would have been in an industry job).
I'm a PhD in industry, and interview many candidates. Their attitudes and expectations are irrelevant to me. I only try to answer one question when interviewing: can they actually program a computer to do something non-trivial?
I've seen a lot of PhDs whose answer is "no." They didn't build that skill, and they do poorly in interviews. They may have weaker skill than they did before they started their research. All the other knowledge they have is irrelevant if they can't express it in code for a computer to run.
It's not like there aren't a lot of CS PhDs in industry, they're usually just quiet about it.
BEGIN_QUOTE
"...It’s worth noting that he has a CS PhD but his research was in biomechanical simulation.
He then applied to a bunch of Product Management jobs without any industry experience. Nothing about him suggests he’d be a better candidate for an entry level spot than the typical BS-CS. The bit about 47k users is not really all that relevant to anyone hiring for a PM position in the Valley. He’s definitely nowhere near a live candidate for anything past an entry level position.
Regarding programming jobs, he’s definitely not all that interesting a candidate on either the data science or systems front. He should have been able to get a job somewhere but that would strictly be off potential as opposed to anything relevant.
I’m not entirely clear on what he expected, given the skills he focused on during his PhD.
For context: I also went to Stanford, did some biomechanics research and then had to do a fair bit of resume rehab to be employable. Spent big portions of the last 5+ years actively hiring engineers for various places I’ve worked. I’m surprised it took him a year, but was less surprised when I read about the jobs he went after..."
END_QUOTE
I guess the root of the problem is a mismatch in expectations. The PhD thinks his PhD puts him a notch above people with merely a Master's, therefore he must be ready for management. The industry sees him as someone with talent, but fresh out of university, with no industry experience. First get some experience on how projects are run before you expect to manage them.
Yeah that pretty much sums it up. Having a PhD doesn't magically make you more eligible. You have to demonstrate how you make a value-addition to the team.
There is such thing as being over-qualified for many jobs. Just because you have the degree doesn't mean you are skilled enough to warrant the type of pay someone with a PhD would demand.
Social skills or management skills could be lacking, past work experience could be lacking, the person might not be good at finding the jobs which are obviously out there because programming skills are very desirable right now.
When applying for a job sometimes you have to sell yourself and make the company know that you can provide value and won't slack off after being hired. This isn't always easy, just a degree doesn't mean jack shit.
The education system is partially to blame. Spending almost 20 years at a desk being "taught" (pushed through) doesn't seem like the most effective way to prepare someone for life. People need experience and variety. Social skills, organization, self-motivation, and loyalty are all skills that are extremely important but are hard to learn in the current educational environment, at least in my experience.
Plus, simple like-ability is a huge factor. At least in organizations where the people you would be working with or directly for are involved in the selection process.
"Do I want to spend all day with this person?" is a completely valid question when interviewing the person who will be at the desk next to yours all day, every day.
That isn't to say that people with PhD's are any more or less likely than anyone else :D just that there are numerous non-education related factors that can factor heavily in hiring decisions.
As someone who hires quite a few programmers, I think part of the problem is that there are skills that are considered basic requirements for industry jobs that PhD students aren't likely to get as part of their studies.
TL;DR Software engineering is a distinct skill set from computer science and it's very possible to excel in CS while largely ignoring the former discipline.
For example, writing code in a team rather than on your own or in a very small group. This involves learning the importance of small changesets, coding conventions and readable/understandable code, among other things.
Also, coding in the industry involves a lot of learning to use tools and techniques that others have developed and far less developing those things on your own. A ton of the code that gets written in the industry is glue code between well-known solutions or boilerplate for a well-known framework.
None of this is to say that a PhD can't learn those things or even hasn't learned those things by the time they interview, but I can confirm from our interview process that there are a lot of them that haven't and I'd rather hire a fresh CS grad who will be cheaper and likely be more humble rather than struggling to convince a PhD that those things are important.
It's not even "over qualified". Part of being a PhD is (generally) picking some narrow, well defined niche in the field and devoting yourself to it for a couple of years. Unfortunately, that can leave you woefully under qualified at anything in the field other than that niche.
Everything about this article seems hand-wavy and just...wrong. I don't mean to paint with a wide brush but as someone in "the industry"(and in SV) I have to guess that there is something else at play here if someone with a Stanford CS PhD really had this much trouble finding a job in 2014.
Very few folks in the industry want to hire a PhD because they are a) expensive b) often know-it-alls with little practical experience churning out boilerplate code which is the majority of positions.
Now, you can hate on my comment without realizing that I respect the work and knowledge represented by such an achievement, but this is just real-talk from 15 years in the trenches. I have no college degree and am probably more marketable simply due to my wide experience in various industries and projects. That is sad but true and maybe indicative of the funked up system we inhabit.
Everything you said is very true from what I've seen.
I would suggest against a PhD in CS right now unless you know exactly where you want to work and that they require that kind of degree, or if you want to be a teacher then a PhD is very valuable. I need stuff that works and fast, not to re-invent the wheel by using outdated techniques your professors taught you.
A masters degree is probably the best higher education in this field. For programming it's all about ability, work-ethic, and long term relationships with the company, because you are an investment as an employee.
I do consulting and have never had anyone ask me about a degree (I have a degree in a completely unrelated field), I don't even give out a resume and would not hesitate to tell a potential client to piss off just because of the huge amount of work available for someone who can create value for a company.
>I need stuff that works and fast, not to re-invent the wheel by using outdated techniques your professors taught you.
It seems you have a very wrong idea of what PhD training is. It isn't about any outdated techniques, unless you call science outdated.
PhDs is about doing research and writing scientific articles and presentations documenting that research. Everything else is a side effect.
Except you've been studying this very narrow topic for 6 years and spending all your time on it. Any technique you're using is most likely very specialised to that topic or something you learnt in either masters or undergrad.
Whereas someone in the industry has been developing their generalist skills and keeping up with current technology.
"Except you've been studying this very narrow topic for 6 years and spending all your time on it. Any technique you're using is most likely very specialised to that topic or something you learnt in either masters or undergrad.
Whereas someone in the industry has been developing their generalist skills and keeping up with current technology."
True. Although if you can complete a phd at Stanford you almost certainly have the ability and drive to get to senior developer level within a year or two in industry. But when it comes down to it most companies don't hire for who you will be or who you can become but for your current skills and abilities.
Which is ok, but don't then turn around and complain about a skills shortage. And don't complain that employees have very little loyalty. And don't complain when you have to pay $150-$300/hr for experienced developers with expertise in your specific stack.
I don't really think working in the industry makes you a generalist. If you have been working on the same product for a couple of years, your experience is limited mostly to that field, that technology, that problem etc. Of course, the benefit of not being in a PhD program is that you are free to hop around and work on a different thing every year.
I've got to agree with you. I have a PhD from an British university, and recently moved back to the US. I haven't scored an industry job yet, rather I'm working as a postdoc in SoCal. But anyway, I've been trying very hard to engage with industry by attending programming meetups and demonstrating my skills to people who could be involved in hiring. Most of what I've talked to people about has gone over well. Sure it is a different path to go from a PhD to industry than to go in from undergraduate, but you will have developed thinking skills during it that will be valuable to any company. As far as showing that you are up to snuff on "best practices", a good set of github projects will go a long way if you have developed the right connections.
I have met a lot of PhDs in computational fields with mediocre coding skills, but if you are in the position of being up with the times it's just a matter of marketing yourself properly. Not easy, but as I like to say, if you can code well your not in danger of starving anytime soon in this day and age.
Here's my advice. As a PhD you have access to certain positions that are unavailable to the rest of us. But you're also cut off from the majority of positions in the industry for better or worse. You've got to market yourself on your quality, find a place you can stay with for a while, and build a legacy you can take to your next place.
For folks like me, we hop between jobs every 1-3 years because I can come in, understand the rather mundane issues facing a codebase and rectify them relatively quickly from my extensive real-world experience before moving on to the next spot with a modest-to-sometimes-significant bump in pay. But I can never get access to the sorts of positions you will have access to.
Because you don't need PhD for those jobs. But as a PhD you would be asking a higher salary than a BS(CS). So its simply more efficient for the company to hire an experienced BS(CS).
But with a PhD, you can target jobs that the employer feels are too complex and demanding for a simple BS
I remember reading Chand's blog post when it was first written and found it unbelievable. First of all, it doesn't even _try_ to find evidence of a so-called "PhD-Industry Gap" beyond his own personal experience. This rehash, written a few days later, doesn't try either. Is there any actual evidence for the claim that industry doesn't want CS PhDs?
As someone with a CS PhD from a top school, my own anecdotal evidence is that there are lots of companies, both established and startup, who are interested in such people for programming positions. I'm with the professors and industry veterans who found Chand's story incredible. Either he was extremely unlucky or, more likely, there was something else going on with him personally that turned off these companies.
The truth is, to learn any information about the usefullness of a PhD you need a proper study following the life of a group of people with CS PhDs, and a control group without CS PhDs.
And then, what is "usefullness" anyway? net worth? happiness?
My theory is that, like most professions, you are born a PhD. If you are not one, then don't waste time getting it. You'll be miserable.
I don't think anecdotal evidence or non-controlled studies are useless, but they do have their limitations. In this case, though, the original article is laughably bad. To quote:
"As a scientist, I had already been gathering data about that question. Each time I was rejected from a job, I asked the companies for reasons."
From this "data" the conclusion was made that there exists some sort of "Ph.D.-industry gap".
Sadly there is hardly any correlation between your PhD skills and interview skills...once you get to the interview, all the previous stuff is out. Only how you handle the interview matters. Not saying this is optimal, but thats the brutal truth.
So if you go in thinking you will impress anyone with your credentials, you will be humbled. Learning to interview in relevance to today's practices is often skipped over - and people are stunned that their brilliance was not recognized. If you spend 10+ years getting a top class education, might as well spend an extra 6 months understanding the interview stuff too.
It's breathtaking how out of touch academia is with the real world job market. No one is going to hire a Phd just to code. By getting a Phd you've basically narrowed your potential job space down to literally a few dozen spots.
Phds tend to overvalue their education and generally are not willing to start at the bottom (everyone starts there like it or not) before they prove themselves shipping actual software to production.
It's not a one-way mismatch. The so-called real world is also out of touch with academia: just witness countless upon countless of ill-chosen technologies and techniques in use.
I think the problem with getting a PhD is that a) You spend so much time in school that you'd expect a high position job the moment you apply and b) No employer is going to give it to you because education != industry. Also in Chand John's personal case, I get the feeling from reading his essay that he's a little bit too arrogant and that this might have turned employers away. For example:
"Imagine you’re a brand-new Porsche in 2011. You’re sitting in a dealership, being test-driven by many enamored consumers but never purchased. Later you hear that the 2011 Toyota Camry outsold the Lexus 1.5 to 1, the Cadillac 2 to 1, and the Porsche 10 to 1. You ask yourself: Was it worth being an impressive, expensive car, if no one ever buys you?
That ironic situation is very real for many Ph.D.’s. I faced it myself after getting my master’s and doctorate in computer science from Stanford University, where I built software that revolutionized the study of human movement, became an early expert and core developer of software featured in Scientific American, and was one of four Ph.D.’s chosen from Stanford’s engineering school for a research award.
...
It was like being a chameleon and trying to get jobs where you had to be red, blue, or black. Yes, you’re capable of becoming any of those colors, but companies would rather hire animals that already were those specific colors. My unusual Ph.D.—in contrast to my professors’ beliefs—severely limited my career options in industry, despite my software background and my Stanford computer-science degrees (which are widely considered synonymous with wild success in Silicon Valley’s tech scene).
...
So we have today’s employment climate. At one end, companies hire whoever can get the job done, like consumers buying reliable, affordable sedans. At the other end, universities, including deeply industry-savvy ones like Stanford, pump out Ph.D.’s who, like luxury cars, are too specialized and expensive for most employers."
Imagine you're preparing for an interview with a guy who's applying for a product management job and compares himself with a Porsche. You go to LinkedIn and click the 'personal website' link.
I have a CS masters from Stanford. I work for Google, and other top tech companies frequently make it clear they'd be happy to have me too. I don't think finding out I had a PhD would cause any of them to change their minds.
PhD student here. A legitimate, but seemingly snarky question: is your job at Google something exciting, challenging, or is it more or less standard engineering?
(From your reply I assume that you're a recent hire at Google with not much prior work experience; I can easily imagine people with several years of expertise can do exciting stuff at Google.)
Being in my first year on my PhD, I have friends that have been recently accepted to companies such as Google or Microsoft. Unfortunately, their work there does not sound exciting to a person that has fun working on an intellectual challenge (which I believe many PhDs do, but not only PhDs -- for instance, people loving programming contests do so too).
To give a few examples:
* I've heard of a guy that was one of the smartest when it came to the programming contests; he ended up working for Google on the frontend of their site, I think.
* One of my friends got hired by Microsoft; his work is mostly developing code for Skype text servers. Soon he and his group will be given the task of porting it from C++ (a non-MS technology) into C#/Azure. That also doesn't sound very exciting.
* Another of my friends got hired by Google into a Site Reliability Engineer position. That might be challenging (and very stressful), but I expect more time-critical fixes than intellectual challanges.
---
That's pretty much my reason for doing a PhD -- low pay, but challenging.
Everything below is my own personal opinion and doesn't represent Google, etc.
I've been at Google for 2.5 years and am the tech lead of a small team. My prior work experience was internships and a startup (which I sold after about a year on it in grad school and another year on it full time).
I've done a combination of boring plumbing stuff, moderately interesting plumbing stuff, very interesting mathy stuff (figuring out how to make place ratings better), applied ML stuff (for local review spam and quality), and crowdsourcing optimization stuff (making the humans who do manual things to maps data more efficient). I'd say the interestingness of my projects has probably been above average, but not exceptionally so.
" One of my friends got hired by Microsoft; his work is mostly developing code for Skype text servers. Soon he and his group will be given the task of porting it from C++ (a non-MS technology) into C#/Azure. That also doesn't sound very exciting."
"That's pretty much my reason for doing a PhD -- low pay, but challenging.*"
Be prepared to have your bubble burst, badly. Industry is hardly ever like what you'd find "exciting", and even when it is, the odds aren't likely that it'll be given to a "PHD" student, but rather the company favorite. i.e. The person that plays politics better than you.
I left a PhD program to go into industry. I get to work on way more fascinating things in industry than I ever would have in academia. I also get to work on lots of different interesting things, rather than focusing entirely in one narrow field. Generally, my advice to PhD students considering working in industry is “if you’ve identified one specific problem that you want to devote years to, then academia may be for you. If you want to have a constant flow of challenging problems and don’t particularly care about sticking to one narrow field, industry may be a better fit for you.”
My experience is that the incentives in industry are aligned so that it’s nearly impossible to succeed without having broad interests that allow you to have impact on multiple projects. Incentives in academia are aligned so that it’s nearly impossible to succeed without being able to focus almost single-mindedly on one specific area and churn out the publications; there isn’t much time for exploration until you get tenure, at least.
Surely you realize you more or less agree with me!
I also think that most industry jobs are not "exciting", and so people that desire stimulating intellectual work have better options inside academia, even if for just a limited time (if they do not go further after the PhD).
If you're willing to accept low pay, then I think that definitely helps to find a job that meets your demands. I've also regularly chosen the lowest pay out of a number of job offers I received, because that job was more attractive for other reasons.
Would you recommend pursuing a PhD for someone looking down path? I understand that you're saying it doesn't hurt to have a PhD, but can you say that it helps in finding and maintaining a job?
Everything below is my own personal opinion and doesn't represent Google, etc.
Hard to say, since I don't have one. It probably helps if you want to join a researchy team at Google, but if you just want to be a SWE then I doubt it makes much difference (though I can't speak for HR of course). In terms of maintaining a job, that's all about what you do at the job...once you're in, your degree probably doesn't matter at all.
Moving from academics to industry can be difficult. My experience: several of my applications were rejected even though I considered me as a perfect match. I analyzed my resume and suspected, there was too much academical stuff in it. I deleted most of my research work from the resume and kept only "down-to-earth-stuff". Same strategy in the interviews. And voila, within no time got a bunch of offers for really great industry jobs.
His article starts with "Imagine you are a brand new Porsche". When I interview a person who thinks of himself as a brand new Porsche, no matter how much I try to compensate for my knee-jerk reaction, i most likely raise the bar significantly. If you come in with an attitude like that, you will have to really cruise through the interview.
Well, it's more like "Imagine that you just finished working your ass off for a half decade, and are finally looking to reap the rewards." It's a normal human response to want to see a quick reward after having spent so much time in research.
see "Imagine that you just finished working your ass off for a half decade, and are finally looking to reap the rewards." suggests "I worked hard" vs "imagine you are a porsche" exhibits "I am just way way better than the rest of you".
The first statement is just about the guy himself and what he did. It does not present a comparison. The second one comes off as arrogant
When I see a resume that reads like a CV, heavy on publications, light on experience, as an interviewer it gives me pause, because it will be harder for the candidate to demonstrate the skill set that I need to see.
tl:dr version - companies hire software developers to solve business problems, not to write software. Most of the time, good enough is all is takes. You do not need PhDs working on your corp software to get good enough.
I think that one of the main point here may be being lost.
Most of the arguments I read here argue the point from the programmer's perspective.
What is the employer's perspective? They hold most of, if not, all the cards? And the story is about employers not acting to tap a resource (this PhD) that clearly should be valuable to them.
Businesses hire programmers to write software to solve business problems. In most cases, these business problems are operational in nature - managing information to run a process.
Writing software for software's sake is not the primary objective of most businesses.
This means that most businesses are more than happy with good enough.
Systems do not have to be especially robust, they just have to be good enough to run business operations.
In the case of companies like Google (whose primary business objective is to sell ads so as to make money), the software is complicated because they way they sell ads is complicated. The software has to be robust because it is used by many users simultaneously, is run on multiple machines at the same time (for many definitions of machine from Google Glass to phones to desktops to tablets to Nest thermostats) and needs to be integrated across all of this in a way that makes the whole much greater than the sum of its parts by many many software developers (PhD. or not).
This need for a complex set of systems to function in a fast and reliable way is the reason that coding quality is a key issue at play.
Software is the primary asset for these orgs that allows them to make money and they manage it carefully and spend big money on it.
In hospitals, it is staff, equipment and drugs - that is where the money goes.
In schools, it is meant to be teachers (and kids) but we have that one wrong.
For most other businesses, there is some other asset that is key to success and the money will always go there, not to software. Businesses typically make the decision to have just good enough for software to run ops especially if this software is running on in house systems for use by staff.
If you're a graduating PhD headed into academia, you will be the boss of your group, with almost nothing above you in the org chart telling you what to do. So it is natural for a PhD headed into industry to start from a place of expecting the same---from their perspective.
But from the perspective of industry, the PhD's value isn't judged the same way. They've just spent six years doing research, not shipping code. Their management experience is managing students and classrooms, not employees.
So this mismatch results in a perception of "I'm being undervalued!" from the perspective of the PhD and "He's overvaluing himself" from the perspective of the company.
If the student and company don't have high social IQ to navigate this situation, I can see how it would result in no offers being made.
Source: I've made hiring decisions about PhDs when I worked in industry, and now I'm a graduating PhD student going back into industry, so I can see it from both sides.