I do a good number of in-person technical interviews for new developers. I like to ask technical questions where I ask people to either code something up or develop an algorithm to solve a task.
I feel my current repertoire is uninspired.
In my opinion, the ideal interview question has these qualities:
- Multiple solutions, where some are obviously better than others, and some that involve subtle trade-offs (discussing tradeoffs is a good way to gauge someone's experience, in my opinion).
- Novelty - asking the "insert this element into a linked list" question is only good for weeding out people who never did their homework.
- Elegant - I like questions where the core problem isn't hidden in a lot of details. Everyone should be able to understand the problem, even if everyone can't solve it on the whiteboard. Elegant questions are difficult without involving undue amounts of "domain knowledge" or getting too narrow.
Have you been on either side of an interview where someone (maybe you!) asked a particularly good programming or algorithms question?