In my experience, a lot of interviewers ask some pretty esoteric computer science or language errata questions in order to hire someone who will write what are essentially CRUD wrappers with a pretty GUI.
Even if you scoff and rattle on about all the awesome hard problems you face, firstly, only a couple of people in any team actually need to solve those things, and secondly, you're probably lying and write everything on top of some already asymptotically slower abstraction already.
At one company, we churned through several dozen candidates for a position that was incredibly dull because they couldn't recursively divide and conquer a hypothetical infinite data set or use dynamic programming to optimally subdivide a two dimensional space. None of these things were relevant to the endless property plumbing we did all day. It just made us feel smart and distracted us from the dismal day-to-day that was wasting our advanced degrees.
The window dressing justification was that a smart person gets more done, 10x programmers and all that, but smart people also quit when they're bored, and smart people make boring jobs more complex than they need to be to stop from getting bored.
Anyways, after that debacle and now that I've moved to a smaller company, I started giving out a programming test that mimics what we do. If the candidate hands in something that is clean, complete, and doesn't have a dumb design, I'm totally for them.
So far it has still been difficult to find people, but the ones who pass seem a lot more capable than those we found using the pointless trivia method.
CRUD wrappers with a pretty GUI are actually really hard to do well. Think of all unusable and unstable CRUD apps you've used. I wouldn't drill someone on dynamic programming for that kind of job, but I would want them to be smart enough and dedicated enough to do it well. In my experience that's rare.
Even if you scoff and rattle on about all the awesome hard problems you face, firstly, only a couple of people in any team actually need to solve those things, and secondly, you're probably lying and write everything on top of some already asymptotically slower abstraction already.
At one company, we churned through several dozen candidates for a position that was incredibly dull because they couldn't recursively divide and conquer a hypothetical infinite data set or use dynamic programming to optimally subdivide a two dimensional space. None of these things were relevant to the endless property plumbing we did all day. It just made us feel smart and distracted us from the dismal day-to-day that was wasting our advanced degrees.
The window dressing justification was that a smart person gets more done, 10x programmers and all that, but smart people also quit when they're bored, and smart people make boring jobs more complex than they need to be to stop from getting bored.
Anyways, after that debacle and now that I've moved to a smaller company, I started giving out a programming test that mimics what we do. If the candidate hands in something that is clean, complete, and doesn't have a dumb design, I'm totally for them.
So far it has still been difficult to find people, but the ones who pass seem a lot more capable than those we found using the pointless trivia method.