Programming Interviews Turn Normal People into A-Holes
Subtitle: Yet Another Tech Interviewing Post
There are hundreds and hundreds of blogs about how programming interviews suck, how they ask trivia questions or try to ask questions that only fresh graduates would know well (sort binary trees is the classical example).
All these theories are correct, but I have one more:
Interviewing Turns Normal People into Grade-A AssHoles
To illustrate, some stories
Story 1:
The interview was going great. The candidate was confident, so the interviewer kept firing question after question. It was all going great... except it wasn't. Later on, the candidate complained the interviewers were too aggressive and refused the job offer.
Story 2:
The candidate was doing great, till he made a very trivial mistake- something so tiny it shouldn't even have mattered. But the questioners did not let go and turned on him subtly. It all went downhill from there.
Story 3:
The hiring manager brought in two brilliant engineers to help with the interview. It soon turned into a trivia contest based on what the engineers had been working on that day. And the manager thought– you know this shit because you just looked at it like 5 minutes ago. But the engineers keep hitting on the trivia till the interviewee was an emotional wreck.
At the end of the interview, the manager realised he would have failed the interview himself – even though he didn't know half this shit.
All the stories above are mine. I was the "aggressive" interviewer in the first example. When I got the feedback, I was horrified– I didn't realise I was scaring the candidate. I decided to be more careful in the future.
In the 2nd story, I was the one trying to convince the team we shouldn't reject the candidate for one small mistake, but everyone was against me and he was rejected. "We are paying so much money, we don't want an idiot coming in, LOL".
It was the 3rd example above that really hit me(I was the hiring manager)– a real WTF moment. I realised that good engineers (and good people) had turned into these assholes who had no sympathy for the candidate. I even told them– I would have failed this interview. Why are you asking all this trivia? But it was like, "No, this is what we need this microsecond".
And of course, 3 months later we needed something else so we started asking for that. And then something else. And so nobody was hired because we could never whack the right mole
I couldn't realise why my otherwise so smart colleagues were acting so weird until I realised: Interviewing was turning normal people into assholes
There were multiple reasons:
- People didn't think (or feel) about how they were coming across
- They didn't interview much, so didn't think about the process, just went with how they felt at the moment
- They just didn't care– "more fish in the ocean" "not my problem" "we have to keep the quality up" etc etc
The Idiotic "Most People Cannot Program" Myth
There is this idiotic myth online that the majority of programmers cannot program. That everyone else looking for a job is an idiot, and our job is to expose them, to teach them a lesson, to humiliate them till they quit.
Most programmers feel they are Gandalf holding back the darkness
rather than just random people who happened to be on the other side of the interviewing table this time.
Some solutions
1. Try to remember the other person is terrified, most likely working at less than 50% of their normal strength.
Interviewing is a terribly stressful situation, don't be an asshole.
One more story: I was applying for a data engineer type job (So extracting / cleaning data so the data scientists could then analyse it). The job involved SQL so I spent a lot of time revising for the interview. I even took some online tests to ensure I could handle any question thrown at me. I was super confident of my sql skills.
The interviewer asked me a very basic question– something small like how to create a table(or something silly like that). And I froze. I couldn't remember at all.
If he had helped me along, or given me a few minutes to collect myself, I might have remembered. Instead, he just sharply asked me to stop and move on. For the rest of the (very short) interview, I could see the contempt on his face. I bet he went on Hacker News to boast that day:
Man this asshole didn't even know how to create a table. Quality of programmers is really going down. How do these people ever get a job?
I was shattered and felt stupid the whole way home. But it did give me perspective on how interviewers treat people, and how a small mistake can ruin your day.
2. Your job isn't to act as some Gandalf Gateway ™️ stopping poor programmers from ruining the programming industry.
Your job is to find the best candidate for the job. If you think everyone else is an idiot, I invite you to spend less time on Reddit/Hacker News and get a life.
3. Try to give realistic questions– realistic for your job spec
Don't give trivia, don't expect the person to know all the ins and out of a library. Never ask for anything that can be googled.
Try to interview for general ability and not what you are using today.
4. Decide beforehand what questions you will ask
Because I find that not given any instructions, people will resort to asking trivia or whatever shit library they are working on.
"I was working on XYZ today so I will spend the next 2 hours asking you all the trivia about XYZ because that shit is fresh in my mind. And if you don't know this shit, clearly you can't work here. Loser"
What worked for me
Actually talk about their fucking resume
With so much time spent on Leet interview questions, no one bothers with the simplest thing: Just spend some time going over their experience. What did they accomplish in whatever team they were in? What was their contribution? You can easily filter out people who just coasted along vs those who accomplished something.
Give a simple open book test
I found giving the candidates a simple (and yes it must be simple) problem they solve in real time works wonders. I let them Google as much as they want, I'm not hiring them for their memory.
Questions I've used are: Use Python to extract the output of a Linux command (say top) then run regexes to get (for example) the top CPU program.
I'm even willing to help them with hints if they get stuck at a point. Because I want them to relax and think clearly.
You can see how comfortable they are with coding, and how fast they can search for solutions online (and if they have ever used the library, as people will know what to search for, or what terms to google for).
Even the most simple test will allow you to see who is comfortable with programming and has done this sort of stuff before.
If nothing else
If none of the advice works for you: Just try being more compassionate and leave your inner asshole at the door.
Required Reading: https://en.wikipedia.org/wiki/The_No_Asshole_Rule