3 ms·
First up, it's very hard to judge someone's experience from their resume. E.g. they might have participated in a project that seemed very difficult, but maybe
by code_sardaukar 10y ago
First up, it's very hard to judge someone's experience from their resume. E.g. they might have participated in a project that seemed very difficult, but maybe their own personal contribution to the project was a net negative.
I know this is not PC, but coding is not a craft where once you reach a certain level, the rest is polish and experience. Good programming requires a certain virtuosity that not all programmers have (not implying this is genetic, please don't assume I am). People who lack this may produce ok code 90% of the time, but will invariably reach a point where the problem is too hard for them, and they come up with a bad solution.
This applies to working at a big tech company, where all sorts of interesting problems crop up. At an ordinary company or startup, I accept that this might not be so important and maybe these companies are copying the tech company's interviewing style for no good reason. Again, this may not be PC, but people at big tech companies get paid more (even given the location) so I think it's fair to assume their skillset is rarer.
When I interview candidates, I try to mix hard challenges with general coding, design and communications skills. My problems don't usually have a trick that you need to see, and sometimes, like fizzbuzz, they intentionally don't have a clean solution. But my problems are algorithmic in nature. You can see there are some interesting data structures lurking in the background even if they aren't directly applicable.
My reasoning in using these questions is that if a person can't solve a difficult, messy, but well defined problem, then when they encounter such a problem they will be stuck. I know there is a kind of dogma on HN that says that complex problems tend to be a result of programmers not doing the straightforward thing, but my experience is that 10% of the time the straightforward solutions don't work and you need something complex. That is, the flipside of "don't write clever code" is "be clever enough to write the code that is needed". If this sounds arrogant, please bear in mind that it's not usually considered arrogant to say that social skills are important and vary across individuals, so why should coding ability be different?