Three things you must keep in mind before a technical interview

We all have to pass the dreaded technical interview to even have a shot at a job offer from our desired employer unless of course you’re acqui-hired by the company you’ve always dreamed of working for. Unless you’re in that 1%, it doesn’t matter if you’re self-taught, just graduated with a cs degree, recently completed a boot camp or are checking-in with the job market after a few years of gainful employment, we all have to pass the technical interview to get a job.

In another post I’ll go over more of the technical information that you need to know to pass the interview. In this post, I’d like to go over the mindset you will need to have in order to:

  1. crush the interview, and
  2. not get utterly depressed and demoralized by the mental and emotional grind of the process.

TL;DR

  1. The technical interview process is usually not an accurate assessment of your programming skills or of your ability to perform well in the job.
  2. The technical interview process is entirely learnable and technical interviewing is a skill in itself.
  3. Almost everyone gets rejected by some company. You are not a failure as a programmer even if you get rejected from multiple companies.

The white board or coding challenge, as an interview question, is designed to weed out really bad developers at the cost of possibly missing out on some good or even fantastic developers.

For all but a small minority of people, performance on interviews is pretty inconsistent from interview to interview. There’s not a lot of data out there in the public domain about this but interviewing.io, a software recruiting platform, did have a relevant blog post about this exact topic titled, After a lot more data, technical interview performance really is kind of arbitrary. They are in a unique position to be able to do this analysis because they were able to capture an individual interviewer’s performance score with multiple companies. Each interviewer received a grade of 1, poor, to 4, amazing, after the interview from the company they were interviewing with on their technical ability.

After analyzing over 1,000 interviews, they found that only about 20% of people are consistent in their performance on interviews. They are either consistently bad, good or excellent. That leaves 80% of interviewers with performance all over the place. Interestingly, there are lots of interviewers who scored at least one poor score and also one amazing score. Hmm, go figure!

Ok, but those people who scored 4’s consistantly, were probably the mythical 10x programmers who were great in the roles they were hired for, right?

Maybe, but Google did an internal study about job performance correlation with interview scores and found no relationship.

“Years ago, we did a study to determine whether anyone at Google is particularly good at hiring. We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship. It’s a complete random mess, except for one guy who was highly predictive because he only interviewed people for a very specialized area, where he happened to be the world’s leading expert.”

So somehow this highly variable process that doesn’t really correlate to on the job performance is used by most technical companies as a way to do hiring. Do not despair if you end up failing a technical interview or even a few technical interviews, this is a process and it’s also highly learnable. As mentioned earlier, 80% of people are inconsistent with how well they interview, so there’s a lot of room to develop better consistency. Students from top computer science programs are even lucky enough to have classes entirely devoted to learning how to do well on technical interviews.

Here’s a past Stanford course and also a past MIT course.

If you didn’t go to Stanford or MIT do not worry, there are a lot of really good resources available for a small price or free online.

Some books that are highly recommended are:

Some online tools to help you practice coding challenges:

Unfortunately, this does put people with life obligations compared to those without at a disadvantage. If you have kids to feed or a job to pay the bills, it does become harder to train since you have to use your time wisely.

Shameless Plug Alert
I run a service called Daily JavaScript, which aims to solve the challenge of using your time wisely to train for technical interviews. You could also use the service to become better at coding JavaScript.

After practicing, one last thing to keep in mind is that the tech job market is a numbers game. You will most likely fail some technical interviews, but that doesn’t mean that you are doomed for failure. Lots of really good developers have been rejected before finding success. Some famous examples are Brian Acton, founder of WhatsApp, and Max Howell, developer of Homebrew.

You can find some more rejection “rags to riches” type stories at rejected.us.

If you found this article interesting or would love to become a better programmer, consider signing up at Daily JavaScript to get daily javascript challenges, code snippets and articles.