After some thought, you come up with what you consider to be a creative approach to interviewing. When candidates appear, you ask them to teach a lesson from the high school curriculum [от 5-6 до 14 лет]… You want to make sure the candidate is well prepared so that you don’t tell them what lesson you want to see before the interview begins. If the candidates understand the topic, you will conclude that they can easily teach something, since they have clearly performed well under pressure on a randomly selected topic.
So you post a job ad and some really great candidates are coming up. However, for the first test of the new approach, you plan to test it on a referral person: a teacher one of your staff has worked with in the past and claims to be the star of the school. You are surprised at your luck and think that it is perfect for testing your new interview method. You contact her to arrange a date for the interview and tell her about your approach to give her a chance to prepare.
Then interview day comes around and your candidate shows up at school. You may feel that she is a little nervous, which is weird because she is an experienced teacher with a flawless resume. You decide not to dwell on it and instead invite a teacher to one of your classes to begin your interview. “I would like you to give a lesson in number theory.” At this moment, her face drops: you did not know that she had not taught in grade 8 for over 10 years. But as a professional she goes to the blackboard and starts the lesson. Explains the factors of numbers and how to determine if a given number is divisible by 2, 5, and 10, but does so with difficulty. When you ask about the GCD and the NOC, she needs an explanation of the abbreviations, and you see this as a bad sign. You explain that you mean “greatest common divisor” and “least common multiple,” but now you can say that her confidence is undermined, and you can also pick up the annoyance in her voice.
At the end of the hour, she made a mistake on the main points of number theory, and that does not at all fill you with the feeling of confidence that she can teach the same lesson in front of a group of naughty eighth graders. The teacher is great at handling other behavioral questions, but you can’t shake the feeling that she might not be the best teacher in this classroom. After some thought, you decide to hire a much less experienced teacher who excelled in the “test lesson”.
While this may seem like a completely contrived example and a bizarre way to interview a teaching candidate, this is the method used when interviewing software engineers. Although I’m not here to feverishly argue that programming interviews don’t work at all (although others have done it), I am firmly convinced that there is no place for them when interviewing seniors.
Why? Simply put, seniors are different from each other, and a typical programming interview puts them at a disadvantage for a number of reasons. So, such interviews:
- Time consuming preparation – Since programming interviews draw questions from the entire field of software development, it is very difficult to prepare for them completely. This problem is exacerbated for seniors in several ways. First of all, by definition, they’ve strayed far from their initial training, which may have been their last encounter with some esoteric aspects of software development, such as dynamic programming, red-black trees, or even recursion. Updating a wide variety of algorithms and data structures in memory can take a significant amount of preparation time. Add to that the fact that the seniors are time constrained (they have urgent tasks and often significant personal responsibilities), and it’s the perfect storm. I know of several cases when seniors were interested in the interview process with the employer and, upon hearing that there was a programming interview, they refused it.
- Make you work differently – Seniors are far from the bare IDEs that are used in programming interviews. Typically, their development environment is well tuned and refined over the years in order to free them from unnecessary labor. To take away the environment at the moment when there are no less significant artificial time limits is to put them at a very disadvantageous position. In addition, they may have spent the past few years working with their own libraries (memory management, error checking, tracing) for their current employer. A programming interview takes them abruptly out of their comfort zone, returning them to the world of standard libraries and simple text editors.
- Don’t check what you want from developers after hiring – Perhaps the most egregious side of applying a programming interview to a senior is this: It only checks a small fraction of what you hire them for. Seniors usually do 3-5 times more (or even more) than a freshly baked graduate. It is obviously unreasonable to expect that the senior will write 3-5 times more code than the graduate: there simply will not be enough time. In fact, you are looking for them to help the Jun and Middle team, mentor such commands, identify system problems, debug the most difficult problems, understand complex systems, and do the intricate work required when programming within those systems. None of these aspects are tested in a programming interview, and this is one of the main reasons why seniors hate them.
- They are a bad signal in themselves. – you understand that you are not hiring seniors for programming, and they also understand this. But when you emphasize the importance of coding interviews in the hiring process, you make the seniors question the role you are hiring them for. “Do they just want me to be a coding monkey? Am I going to waste my talents here? Is it a step forward or a step back? ” The last thing you want is for a talented developer to question their role or your company during the interview process. When coding in an interview becomes a question, that’s exactly what happens.
To summarize all these factors, it shouldn’t come as a surprise that seniors hate coding interviews. If you want to attract the best and reduce friction when interviewing in this very narrow job market, I would suggest that you stop applying coding interviews.
But perhaps you are thinking about how you can find out if candidates can program? If you are suspicious of hiring a developer of this level without realizing his programming skills, I would suggest giving you a very short assignment (which takes no more than an hour or two and is done at home). Most should be able to find a small amount of time to complete such an assignment, especially since it eliminates the preparation work required for a programming interview and can be broken down into time slots that better fit their busy schedule. The assignment also allows them to work in their native IDE (if they so choose) and spend any amount of time re-examining the standard libraries.
An added benefit is the fact that the applicant can devote as little or as much time as possible to this exercise allows you to understand what drives them. Are they attentive to comments? Have they thought about testing? Structuring your code intelligently and clearly? How focused are they on quality of work? In other words, you will know if candidates can program and if they can program well and in more realistic circumstances.
Seniors are the lifeblood of any IT company. They are the most desirable, the most expensive and the hardest to attract. And especially in a historically challenging job market, your hiring process must be tailored to their specific needs, as you need them far more than they need you. They hate coding interviews, and you should hate them too if you want to attract the best.
Have you ever had to participate in such challenging interviews?
As usual, the promo code HABR – will add 10% to the tuition discount shown on the banner.
- Profession Ethical hacker
- Frontend developer
- Profession Web developer
- Python for Web Development Course
- Advanced Course “Machine Learning Pro + Deep Learning”
- Machine Learning Course
- Course “Mathematics and Machine Learning for Data Science”
- Unity Game Developer
- Java developer profession
- C ++ developer
- Data Analytics Course
- DevOps course
- The profession of iOS developer from scratch
- Profession Android developer from scratch