Developers: What do you consider a 'good' interview question?
I'm curious: what DO you consider a worthwhile interview question that appropriately surfaces your skills and fit for a position?
I'm curious: what DO you consider a worthwhile interview question that appropriately surfaces your skills and fit for a position?
I also think it's perfectly okay to say "I don't know off the top of my head, but I can find out" when asked a question. Or alternately, "I don't know off the top of my head, but based on what I know about other things, I would start here..."
I usually asked one open question, like "describe a really hard bug you found", and one technical question. The technical questions ranged by candidate, and the sorts of questions others had already asked (most candidates get ~5 interviewers).
The technical questions usually fell into 2 categories:
Algorithms/etc: These should be solvable by the average engineer, but hard to solve optimally. Questions with both brute force and dynamic programming solutions were my favorites. I had a couple of questions where there were O(N^3), O(N^2), O(N*log(N)), and O(N) answers.
System design questions: How would you build ... Google News (I was the TL at one time)? Or I would give them a specific problem, often involving distributed computing. Often candidates would have to come up with alternate solutions when things like speed of light get in the way of the problem requirements. Being able to negotiate problem definition is a great skill in an engineer. Some candidates really just tried to pound the square peg into the round hole for an hour.
I liked one question I had a few months ago. Not verbatim: What do your computer processor and a turing machine have in common?
I think it's highly dependent on the position though. Another one I had was the all permutations of a string using dynamic programming.
Your list of basics that shows something beyond reciting how to do something in a framework will filter out most of your candidates who need a bit more polish.
We're looking for a more junior level developer. We want to gauge their skills, but don't want to make any questions that are too domain-specific. I like the problems from places like Project Euler or codewars.com, but some coworkers feel they are too difficult. Solving a variation of FizzBuzz, allowing any reasonable language, even pseudo-code, shouldn't be beyond my expectations, right?
When we interview some database people, we would ask them to whiteboard a database for a fake golf tournament we were having. What this did was force the interviewee to ask questions if they don't know golf (such as how many rounds are played, how many players, how does scoring work...etc) which tells us two things: Can they get info from a customer (internal or external) and how do they do hierarchies in data models.
Say you are at a restaurant in the city, and your friend asks how many people are on Facebook at any given moment in the city. How would you answer this without writing any code, on the spot at the restaurant?
Beyond that, I suggest asking to see screenshots and Github source code of previous projects.