[quote=an][quote=Coronita]
Actually for our interview process, we offer a choice.
1. Take home assignment
or
2. Answer programming questions on an whiteboard in front of engineers[/quote]
You’d be surprise at how many time I get people who say they have 10-15 years of experience who can’t reverse a string. [/quote]
I don’t find that surprising. I can’t say in my 35 years of working as a programmer I’ve ever had to reverse a string.
While I don’t know the details of the questions an asks or the tests Coronita sends home, I’d point out that in general tests and their questions turn out to be horrible predictors of programmer ability. Personally, I try to go with interview questions like, “Tell me about the toughest bug you ever had to solve? How did you go about solving it?” or, “What was the biggest challenge you faced working at your last job?” or “Of all the people you’ve worked with who was the person you learned the most from, and what did you learn?”
If I want to know about thought processes I often simply ask, “When asked to implement a new feature, what process do you like to follow?” (And btw, that last question is a trick question. The candidate who answers with the importance of fully designing before beginning to code is someone who likes to overdesign their stuff.)
Lastly, I like to see if a candidate can tell me a story, or a step by step procedure. They might have already told me a story with my earlier questions. And the reason that I think that’s important is that despite all the people that say “programming is math” I’ve found it is more like writing a novel. You have a story (what the program does) you have characters (objects in code) that must interact (ahh, the code that binds it all together) and good code is a process of constant editing, editing and more editing.
The bottom line to me isn’t whether the candidate has the ability to do some simple coding, (or more often than not, if they’ve reviewed a bunch of questions on sites that list the questions likely found on a programming exam) the question is can they contribute to a project with thousands of lines of code without creating a tangled mess. So, I try to focus my questions on figuring out how they’ll do with that.