- "Interview Programming Problems Done Right" http://news.ycombinator.com/item?id=3431107
- "Why 37signals Doesn't Hire Programmers Based on Brainteasers" http://news.ycombinator.com/item?id=3428984
- "Interview Programming Problems Done Right" http://news.ycombinator.com/item?id=3431107
Anyway, there's a lot of crap being said, for example:
- Whiteboard programming is going to favor people good on a whiteboard.
- You should be looking at sample work and not programming under pressure.
- Programming puzzles are a poor signal for good engineering.
- Whiteboards suck, but be honest: writing a 3-10 line program on one isn't that difficult.
- Sample work does not show the working. The thought process is important to see.
- Ask problems. Don't ask puzzles. Every day programming is problem solving, not code golf.
In fact, by Google standards (see bio), they would have been shockingly trivial - even banned - questions. Even if you're Google (which I'm not any more), 99.97% of your employees are not writing the core search algorithm. Why the hell would you ask questions as if you were? (Aside - I believe this leaning towards CS-style code puzzles directly results in a heavy leaning towards selecting CS-style employees, and explains a lot of Google's issues with shipping real world quality products at the moment)
The heart of the matter is this: don't ask questions you never expect a candidate to ever encounter in their work. Interview them for the job they're being offered.
And then - because a whiteboard exercise can never tell you everything - I ask about everything of interest on your resume. It better be accurate, and I will find out if you're taking personal credit for what are group achievements.
So there's nothing I've said above which would help you prepare for an interview with me, other than a) learning to code, and b) ensuring your resume is accurate :) That's the idea - if the only preparation you can do is essentially to be a better programmer, then I'm fairly confident I'm asking the right questions.