I understand the hatred towards coding tests during interviews, but I can't say that I would ever not do them. There are too many "framework developers" out there who do not understand the basics and it is way faster to do a relatively simple exercise instead of going through and asking questions about a bunch of boring stuff.
I will also say that most interviewees actually enjoy the coding exercise we give and they are almost guaranteed to learn something new (which is part of why we do it). They usually tell us it is one of the best interviews they have attended. We do not do insane brain-melting algorithm *cough* googlefacebookamazonetc *cough* exercises or silly fizzbuzz logic that will never be used, but a basic realistic "this is the backend feature we need, requiring X data from Y service" that would be actually used by the company. This lets us understand:
- How the prospect thinks at a high level
- If the prospect knows how to research and utilize third-party services
- If the prospect knows how to break up code logically
- If the prospect pays attention to requests (we tell them what they will need to have set up for the exercise)
- How the prospect communicates - the issue will be somewhat vague requiring questions from the prospect to accomplish the task
Our coding task is usually accomplished within 45-ish minutes, and we know very early on if things are going sideways. Depending on how receptive the prospect is, we will usually try to finish as much of the task as possible, even employing some hand-holding or providing links to documentation, and provide constructive feedback to the interviewee about some articles or sites to visit to increase their abilities. We would even welcome them to re-apply in another six months or so if the position is re-opens.
Doing a coding exercise has helped us weed out a lot of good-on-paper developers, and we hope that it opens their eyes or wake up to see they need to keep learning. Granted, it can be very frustrating as the interviewer to do so many interviews and give a thumbs-down.