What would you say if you knew that civil aviation pilots are hired for their ability to fly a plane with one hand and with their eyes closed. Stupid right?
To be a good pilot you should have good vision and ability to use both hands to control a plane. This is obvious, isn’t it?
Then why the hell do companies tie candidate’s hand and close candidate’s eyes during “coding exercises”?
The goal of any interview is to understand how good candidates are in doing the job that they are supposed to do.
- Their ability to understand the requirements and ask right questions if there is something missing in the requirements
- The ability to design the high level solution using their own experience and the open knowledge base
- The actual skills in implementing the solution in any particular programming language and ability to “find” anything that you don’t know yet quickly.
I’m going to open the “secret knowledge” to you. The best developers are the best “googlers”. And that ability is a major part of their success as a developer.
It’s impossible to know/remember everything. What more important is how fast you are in finding the knowledge that you need, re-working that if/when needed and using that in your work.
The right job interview
So what I would suggest to companies and their interviewers is that try to place candidates as close as you can to the real life circumstances and conditions and see how they act trying to implement the solution. And here the most important is how they’re acting and what they’re doing. The final working result (the finished solution) is not so important because they’re limited in time and under pressure of being in an interview.
I had that “right” interview once three years ago.
The interviewer explained my goal to me then he gave me his laptop sat next to me and said: - “Now go ahead and implement the solution. Feel free to use and ask anything you need”. That wasn’t my best performance but I was able to demonstrate the real life work. And yes I got that job.
P.S.: Inspired by another “Hackersomething” programming excercise test that I had to go through recently.