8 ms·
I've interviewed a lot of Ph.D. candidates for software engineering jobs at startups, and have only ever encountered two problems: (1) lack of ability to code,
by xianshou 13y ago
I've interviewed a lot of Ph.D. candidates for software engineering jobs at startups, and have only ever encountered two problems: (1) lack of ability to code, and (2) mismatched expectations.
Poor coding skill accounts for perhaps 80% of the industry no-hires. Well...that's not exactly fair. Poor coding skill under pressure. Most Ph.D. candidates are either out of practice or used to taking a long time to think about and solve a coding problem. That's great for academic software, but misaligns with both rapid development and (importantly for the candidates) the style of interviews. Most Ph.D.s wither under the expectation of producing a feature very quickly.
Some Ph.D. engineers can code extremely well. If they don't end up at the company, it's because the following dialogue happened, implicitly or explicitly:
PhD - Look, I'm great.
Company - Yes, you are. How about $X?
PhD - Given my specialized skill, I was expecting more like $1.5X.
Company - Well, $.8X is what we pay the new grads, so $X is what we'll pay you.
In other words, their ability is clear, but their market value isn't enhanced very much by their specialization, when most companies are looking for the skills that developers get during their bachelor's or master's.
- anologwintermut 13y ago1.25x, let alone 1.5x for a PhD to write code seems a little high. Typically a PhD doesn't make you a better software engineer, so why pay more (other than its expected)? $1.5x for a PhD to solve hard problems your company needs solutions to and can't hand to a random new hire, on the other hand, is reasonable. Perhaps they think they are getting hired to do the later and you are hiring them to do the former ?
- sliverstorm 13y agoSimple suggestion: Perhaps they heard that PhD's make 1.5X, and haven't yet realized that the PhD's making 1.5X are solving the hard problems, not working as code monkeys? Thus they assume that the degree simply merits 1.5X for the same work.
- anologwintermut 13y agoPossible, but I'd imagine unlikely. Why would a PhD apply for a code monkey job? Most don't do so intentionally, certainly they didn't get a PhD to become a code monkey. So if they are willingly doing so, they probably exhausted all alternative career options or think they have. In which case, while they may ask for more money, I don't think they would actually turn down the job if denied.
- sliverstorm 13y agocertainly they didn't get a PhD to become a code monkey Well, what did they get it to become? I bet most of them don't even know. I know I contemplated a graduate degree, and if I had done it, it would have been for love of the material and love of learning, not because I knew precisely what I was going to do with it.
- eli_gottlieb 13y agoWell the whole problem with "knowing what you'll do with a PhD" is, if we knew how research was going to turn out, we wouldn't have to do it. A PhD is training to probe into the unknown, which means that the economic yields of research are, by definition, unknown, which means finding jobs for researchers at for-profit businesses is hard.
- sliverstorm 13y agoI get that. Which is exactly why it is feasible to me that a PhD might wind up applying for code monkey jobs.
- foobarbazqux 13y agoSince it's a hard problem, it sounds like someone should write their PhD thesis on finding jobs for researchers at for-profit businesses.
- selimthegrim 13y ago
- timr 13y ago"Typically a PhD doesn't make you a better software engineer, so why pay more (other than its expected)?" I don't know if a PhD makes you a better writer of code, but it definitely makes you more determined, focused and unflappable person. (That's pretty much all it does, actually. Everything else is a stereotype.) These are all qualities that are worth buying in an actual engineer.
- msutherl 13y agoThe problem here is that PhD's should not be applying for developer jobs. It's like a fluid mechanics expert applying for a job as a plumber.
- bluekeybox 13y agoWrong analogy. Your analogy compares demands of a specialized non-intellectual profession (plumbing) that does not value general problem solving with abilities of someone who is purportedly good in general problem-solving in addition to possessing industry-specific expert knowledge (your fluid mechanics expert). While here we are talking about a profession (software engineering) that does value general problem-solving ability except it also requires additional industry-specific expert knowledge.
- protomyth 13y ago"specialized non-intellectual profession (plumbing) that does not value general problem solving" Haven't worked with any plumber I take it? A plumber does quite a bit of general problem solving.
- eru 13y agoYes. So the distinction is more like abstract problem solving.
- wavefunction 13y agoYour description of plumbing is so off that I don't know where to begin. I assume you have a similar conception about other "working class" professions? My brother was "just" a welder and could look at the blueprints produced and approved by experienced architects and engineers and tell them exactly why their designs would fail under load and how to fix them on the fly without massive cost overruns. I urge you to reconsider your preconceptions about people working in "non-intellectual" professions.
- bluekeybox 13y ago
- beambot 13y agoTwo questions: (1) From your observations, what is the rate of poor coding skills among PhD vs non-PhDs? (ie. the PhD may still be a partial signal for better (or worse?) ability.) (2) A PhD has 4-6 years of experience over a "new grad"... so 0.8X vs 1.0X seems off to me too. Most companies I've spoken w/ allow each year of a PhD to account for 0.5-1.0 years of industry experience depending on the individual's skillsets and the job's responsibilities.
- phamilton 13y agoFog Creek values a PhD at 1 year of experience. http://www.joelonsoftware.com/articles/Ladder.html http://www.joelonsoftware.com/articles/Ladder.html
- beambot 13y agoWhich makes sense in their domain. If you look at the skills they actually care about: software development/programming, user interface design, managing software teams, software testing using scripting/programming tools, marketing software, selling software, system administration. A PhD would (likely) only have done development-programming and testing -- and only (at best) about half-time, since so much of their other responsibilities are coursework, writing, teaching, etc.
- seanmcdirmid 13y agoFog Creek will never be google, either.
- morgante 13y agoNor will the vast majority of companies writing software. Hence why PhDs can't get jobs. There are way more of them than companies that actually need their expertise.
- seanmcdirmid 13y agoI haven't known any CS phD with job finding issues, beyond the standard..."would I be bored to death doing this job or not."
- henrik_w 13y agoYou mentioned "poor coding skill under pressure". Did you assess that during interviews? Because in my experience, the pressure during an interview is not at all like the pressure while developing software. At an interview, you may have to come up with a solution in, say, half an hour. At work, you can usually sleep on a problem, and come back with a solution the next day, even if you are under pressure to ship a new feature. In other words, nothing like the pressure during an interview.
- eru 13y agoOn the other hand, interview problems are often way easier.
- quanticle 13y agoNot necessarily easier, but definitely less ambiguous. To be honest, in terms of absolute difficulty, I'd say that interview problems have I had to implement quicksort. Only in interview problems have I had to create a new data structure to fit a problem. On the other hand, I've always been able to suss out the requirements for the solution in one or two questions in interviews. In real life, figuring out what the solution should even look like is often a process that takes at least a week.
- walshemj 13y agoPressure is not doing fizbuzz at an interview its when the billing system you are in charge of has its first 5 mill month and the CTO nudges you and says "this had better be right other wise we are both out of a job"
- ijk 13y agoSince, by definition, a PhD has faced down a committee that has the power to say "this had better be right otherwise you've wasted the past five years of your life", and has likely been on grant projects where their funding is similarly on the line, that suggests you should probably try to hire more PhDs, not fewer.
- hclee 13y agoSame thing goes here in hardware industry. Having Ph.D. does not indicate how good they are. It really depends on individuals and their mindsets. Ph.D. with specialized major anyway have learn things over at new workplace. So whoever catch up fast and do hard with 'i will contribute this' attitude makes better results. Someone may argue about this but people with less advanced degree tend to obey more to management.
- jerryhuang100 13y agoThat PhD-Industry Gap is more about the hiring managers' disconnects between Science and technical techniques such as ability to code etc. It's just as ridiculous to request a linguistic scientist to be fluent in multiple foreign languages. I guess even Jeff Dean might have problem dealing with today's coding interview questions of regular software engineering jobs (or not, according to Jeff Dean facts). Those kind of hiring managers just do not have visions and would just miss the potentials of solving pioneering questions such as BigTable and MapReduce.
- morgante 13y agoAccurate, except it's not hiring managers who are making that miscalculation. By and large, hiring managers will see a PhD and be like "yay, give them an interview." Its the interview with an engineer where things break apart, because the engineer expects a PhD to be solving things the same way he would despite coming from totally different backgrounds. (This is born out in the OP's experience, as he got many interviews but few offers.) For once, hiring managers aren't to blame.
- yalogin 13y agoWell the other side of the equation also must be true. You should not be interviewing a PhD candidate unless you think you need one for that job. Else if you are interviewing a PhD even though a regular programmer would do, its not fair to the candidate. There in lies the main problem. The expectations are high for both parties involved. Also by definition they are already way too specialized and steering away from that specialization would be tough for a PhD as well.
- VLM 13y ago"You should not be interviewing a PhD candidate unless you think you need one for that job." Consider we produce twice as many PHDs as the business sector requires. This is probably accurate. From a humane perspective, what should we do with half the grads, soylent green seems a little harsh... The social perspective is they should just sit on an ice floe as it floats away in the ocean, which seems wrong. We're moving toward a class based neo-feudalist system. The first time around with feudalism, the bottom of the barrel of knights and barons and such got wiped out in more or less continuous low-level warfare. In our new neofeudal era we don't have a solution for the bottom of the barrel of our various classes of titled nobility, leading to all kinds of angst. To mix some metaphors it seems a waste of talent and economic costs to euthanize the bottom half of the modern Baronry after all that education and accomplishment. Although it would screw around with modern feudalistic class based ideas, maybe we should be able to arbitrarily officially reject titles of nobility. Better to have a lower 50%-ile PHD writing CRUD apps as a code monkey than turn them into hamburger.
- timr 13y ago"Poor coding skill accounts for perhaps 80% of the industry no-hires. Well...that's not exactly fair. Poor coding skill under pressure." I have a PhD, and by now I think it's safe to say that I'm a productive programmer, but it was hard to get (back) into the industry. I've experienced the bias against PhD-holding coders firsthand. The interesting thing is that I've now also been on the interviewer side of this equation more than a few times, and I know that a lot of programmers have a huge inferiority complex that really gets revved up when they hear that a candidate has a PhD. I've seen the hiring bar shift dramatically higher for a candidate simply because interviewers on the loop knew about the advanced degree. Given that most companies have virtually no interviewer training, and even fewer checks or balances on the attitudes and predispositions of their interviewers, I suspect that this latter problem is a far more parsimonious explanation for the hiring gap for PhDs than is the presumption that >80% of doctoral graduates can't write code.
- eruditely 13y agoMaybe you really are that bad, but if you honestly aren't then how horrible
- deleted 13y ago[deleted]
- IanCal 13y ago> I suspect that this latter problem is a far more parsimonious explanation for the hiring gap for PhDs than is the presumption that >80% of doctoral graduates can't write code. Combined with the terrible quality of candidates I've had apply, ">80% can't code" is probably valid over a random sample. If you add in some confirmation bias you'd probably explain a lot. However, I'd also add that I'm not shocked at the idea there are a lot of people who are great at academic research but terrible production coders.
- timr 13y ago"Combined with the terrible quality of candidates I've had apply, '>80% can't code' is probably valid over a random sample." The average applicant can't code, but that's true across the board. Yet there's a strong and systematic bias against people specifically with doctoral degrees. There's something else going on, and IMO, it isn't explained by chance. "I'm not shocked at the idea there are a lot of people who are great at academic research but terrible production coders." Why? Isn't this just a gentle way of saying that you have a bias? There's no fundamental reason that you should expect that a PhD (especially in CS) would be less able to write code than any other randomly selected applicant. More likely is that most interviewers don't have any idea what goes on inside a PhD program, and bring some very weird, negative ideas to the interview room about what the degree implies.
- lifeisstillgood 13y agoI am fed up to the back teeth with "speed" as a positive metric for coding. > used to taking a long time to think about and solve a coding problem. that's a good thing. A good friend of mine is a phd and lead programmer on a radio telescope project. my solution to a problem he described was quick to code and hellish to run, his involved maths I did not understand took five lines and ran super fast. he chose an algorithm that fit the problem domain better - because of more extensive training than I got. Algorithms count massively. Google is built on an algorithm that fits the problem domain better. finding and applying better algorithms to give "unfair" competitive advantage is a very good thing so I want to see a slow code movement like a slow food movement - Producing higher quality software delivers more business value in the medium term than lower quality - Iterating to a solution is often slower than applying the best algorithm directly - it takes time to understand and evolve a story - rewrites are a good thing. most books and film scripts are rewritten a lot - daily status meetings encourage trying to do something each day instead of taking a week to make something fantastic
- jerguismi 13y agoI see no problem here. If algorithms count massively, then those slow skillful algorithm coders can start their own companies, and because algorithms count massively surely soon the market will be full of companies that require algorithmic skills and don't value speedy hacks. But just surprisingly, the market looks like it is full of those crappy startups, which value speed over quality, and don't do rewrites. Wonder why that is so.
- peterkelly 13y agoActually algorithms are kind of important. How do you think it is that google is able to return your search results in a fraction of a second? And how is a game able to represent and efficiently display a massive 3D world?
- jerguismi 13y agoI didn't claim that algorithms are not important. If you look at the market, there is a lot of demand for certain types of employees, while there is less demand for others. I think that the market represents pretty well what people actually demand. The comment I replied to implies that demand is specified by the companies, not by customers. I guess you get that kind of attitude in university jobs, where money comes from goverment grants etc, not from customers.
- eob 13y agoAs someone who interviewed PhDs in a prior life, and is now getting a PhD, this is an excellent summary of the situation in the CS realm. I would add, though, that a lot of people in industry mistakenly believe that what the PhD provides is specialization. It is true that you end up with a specialized skill, but you also end up with the ability to ask important questions, cut through all the things you could do and decide what you should do, experience managing long-term projects, proposing work, managing people (undergrads, usually), and mentoring, just to name a few. So to industry folks out there who get occupationally sucpicious when interviewing a PhD ("just to make sure, are you comfortable not continuing your current research?") try asking a few questions like, "besides your research topic, what do you think you've gotten out of the last 6 years that will help you at this job". Yeah that's a softball question for an interview, but it will help them show you all the other things besides some obscure academic topic that they've learned.
- tlogan 13y agoThe main problem with Ph.D. degrees (from US and world) is that they sometimes really poorly equip you for a job in our field. I don't think coding is really what is missing - it is just misalignment (lagging?) of the curriculum and projects with fast changing pace of the industry. They are a little behind...