4 ms·
Most of the alternate approaches have their own severe failings: Ask pertinent questions - a lot of candidates are bad at immediate summation and dissemination
by mden 6y ago
Most of the alternate approaches have their own severe failings:
Ask pertinent questions - a lot of candidates are bad at immediate summation and dissemination of information. There are many good engineers who have not learned how to sell their work, themselves, or in general communicate to the intent of a question. This is an invaluable skill, largely orthogonal to writing code, but it's a skill that's often learned with experience. Learning to ask level appropriate questions is hard and evaluating answers consistently (if not objectively) even harder. It is also largely insufficient in gauging programming ability. I've had co-workers who can talk about advanced architecture-y topics seemingly competently but struggle to write even relatively simple code.
Probationary period - I've never seen this implemented (excluding internships which sort of fall into this category) and it certainly sounds like a nice option to have available but I would bet many candidates would be afraid of a short probationary period (say 3 mo) especially if they have to move their family for the job. Being a professional and being told you are on a probationary period is stressful. At many large companies it can easily take more than 6wks to get up to any sort of productivity.
Walk through existing projects - most people (vast majority) do not have any sizable or clean or even "interesting" side project they would want to walk an interviewer through. Unless you worked on open-source for your previous employer (again minority of people) or on your spare time, this is not something you can get a strong signal out of.
Ask them to build something - err, I don't see how this is that different than a coding challenge. And again, not everyone has personal projects ready to be shown to an interviewer. For example, the game I'm coding some nights after work does not look anything like code I write for my employer; there are no tests, there's a lot of experimental and often dead code, functions are not neatly factored and thought out with an eye for collaboration, etc. I would not want to be judged by this code for an interview.
Pair programming - this sounds like a coding challenge but with a more empathetic interviewer. I don't think this is an alternative, just a mild augmentation of a coding challenge.
Focus on ability to learn - companies do this but it's usually considered supplementary to coding ability. Some companies explain their product and try to see if the candidate understands where the value of the product exists or at least where some of the challenges are. This could be spun out into a product type interview or a system design interview depending on intent.
Alternatives to white-boarding or do-at-home project interviews:
- Provide a small existing but functional code base and ask the candidate to implement additional functionality. Downside is this takes a lot more effort to prepare and are limiting the candidate in regards to language they want to use.
- Provide multiple options for a coding project or question and let the candidate choose which one they want to solve. This would hopefully reduce some of the luck factor of getting a question you know how to solve.
- I can't think of any others, but I'm sure they exist
One of the big desirable goals of interviews are evaluating candidates in a consistent manner. All interviewers have biases and these biases vary between the interviewers. Trying to account for that is, I believe, important but also very hard. Using the proposed alternatives would make it even much harder.