A Thought for Technical Interviews
I would like to share a thought from it.
The interview in its entirety consisted of two individuals presenting me with an intermediate-difficulty problem and having me work through it. The problem was by no means beyond me-- given an hour to sit down and work on it, I could easily solve it.
And an hour is what I got.
HOWEVER:
It's not so much that I needed about an hour as that I needed individual periods of 10 minutes or so to sit silently and think about how I would approach certain algorithmic aspects of the problem as they came up.
Instead, what I had was a laptop in front of me and an individual sitting at my left shoulder and another at my right shoulder, and anytime 30 seconds or so would pass, one of them would prompt me with a remark along the lines of "So what are you thinking?" or "So how are you approaching this?" or "So why don't you start with..."
This ruined any chance I had of completing this problem. I never had enough time to gather a cohesive approach to the problem because the interviewers constantly obligated me into diverting my attention to what they were saying or suggesting or asking.
Imagine if, as we were working at our jobs, every time we hit on a challenging aspect, someone sat next to you and asked you what you were thinking every 30 seconds. How well do you think you would perform?
Interviews executed in such a manner are in no way indicative of a candidate's skill.
Please, give an engineer some time to decide how he should approach a problem. Some of us think very fast and design optimal solutions on the fly. Most of us don't and have to do some trial-and-error to come up with great software. Stop mistaking the latter category for incompetence.