You want to ace that technical interview, but you feel like technical interviewers do not realize search engines exist. After spending hours studying, you wonder why the interview process is the way it is. Why is it so difficult? Writing code on a whiteboard does not make any sense. That is why we have computers, right? Why do you need to write answers on a whiteboard when you have access to all of the world’s information in your pocket? Why are technical interviews designed this way?
Never stop dreaming!
Why Technical Interviews Are Hard
You go through your first technical interview and you are frustrated. It is unfair. It does not accurately test who you are. You could have easily searched for the answers to the questions they asked if they had only let you have access to your computer. You would be an awesome employee; the interview just was not fair. You are the best candidate out there, how could they have not seen that? While that might be true, most company technical interviews are not about finding the best candidates. The process is mainly designed to weed out the worst candidates. False negatives do happen, and since you are a good candidate, you can always apply again and get accepted next time. Do not give up.
Implement the find function for a binary search tree? I do that all the time! Here you go...
What is a technical interview?
The interview will show you are the best person for the job by testing your skills in five areas:
- Analytical skills - your impressive ability to see problems from different points of view and solve complex problems
- Culture and personality - whether your amazing personality is a good fit into the company’s beliefs, values, and needs
- Experience - your impressive resume detailing all the projects you have been responsible for in the past
- Programming - your eloquent ability to turn your imagination into reality
- Technical knowledge - your expansive knowledge of computer science and technical tools
You walk into the interview and you see a few interviewers and a whiteboard in front of you. You are nervous. The interviewers are judging you. But do not worry, you are a good candidate. You wonder why technical interviews are done this way at all. It does not represent how you will actually do the job, right?
Hmm... Someone should make a white board that compiles code...
Why is it done this way?
Your whiteboard does not have a compiler, but maybe that can be your next startup idea. If you needed to know how to reverse a linked list, you could search for it easily and find the answer online. You perform worse in the interview than you actually would on the job. The company could miss out on your great abilities if they would only give you a chance, right? So why is it done this way?
Which one would you hire?
Turning Away Good Candidates Is Better Than Hiring Bad Candidates
The company expects good candidates like you to be turned away sometimes if it means nine other candidates also fail. Better to turn away most candidates than hire a bad candidate. The company will miss out on how much opportunity you will bring, but it would suffer even more if they loosened their interview process. A bad hire is more detrimental to the company than the opportunity cost of missing a good hire. Since you are a really good candidate, you will surely pass the interview next time you try. You will show them next time how well you can solve their problems, maybe after studying a little more just in case.
If you can dodge a wrench, you can dodge a ball!
Problem solving skills
Your fantastic abilities will be tested against others that have taken the same interview. You might be tested on obscure data structures you will never use, but that does not matter. Your interviewers are seeing how you think about problems compared to others. Since you are a smart person, you will surely do well on a technical interview. And smart people can be good employees. It is not everything, but it is a good indicator. So it can show you are smart, but why test data structure knowledge you can just find online?
It is not about testing what you know, but testing what you know you don't know. You know?
Data structures and algorithms
You definitely earned that computer science degree and did not spend most of your time playing video games and doing homework at the last minute. Still, you might need to refresh your memory on data structures and algorithms before going for a technical interview. You and the interviewer both know that you could easily find information on the internet for any topic you do not know about. The interviewers are testing what you know you do not know. There are whole classes of problems that sound impossible at first but become trivial when you know certain data structures exist. It is actually difficult to come up with a technical problem that does not involve a basic data structure or algorithm. Still, why do they not test you in your natural environment with a laptop and plenty of snacks? Why must technical interviews involve a whiteboard and no computers?
A programmer's natural environment
When you write code on the whiteboard, the interviewer is mostly looking for your ability to problem solve more than they are testing your knowledge of language syntax. You should not worry too much if you forget a semicolon. Plenty of your time as a software engineer will be spent in front of a whiteboard working out problems. You may be surprised how little of your time is actually spent sitting down and typing out code. You will use the whiteboard plenty for thinking through the big picture of the problems you are solving for the company.
So why did they not give you a computer and test you in your normal work environment? Some companies actually do that, but most do not. The company is more interested in weeding out false positives than false negatives. They would rather the test be too difficult than too easy to weed out as many bad candidates as they can. Plus, a computer can be a distraction while being interviewed. It is a lot easier to have a conversation in front of a whiteboard than a computer. The interviewer will get a better understanding of your cunning wit and charming personality. However, coding on the whiteboard is not for every position or company.
This is not how you use a white board
Not for everyone
You may have a completely different experience with technical interviews depending on where you interview. Each company has its own set of values. One may value technical experience the most, while another may put more weight on culture fit. It also depends on the size and age of the company. A young company may need to go through a few bad hires before it learns to tighten up its hiring process. If you show an attitude that you can learn anything, maybe that is all some companies need to hear. It depends on the goals and aspirations of the company. The typical interview process does not test everything. It is possible you ace the interview but maybe you do not know how to focus at work. Or maybe you have a poor work ethic. It is hard to test for things like this until you are really on the job. That is why some companies may hire you for a shorter term to see how you work out. But that is okay, you will make a good first impression!
I can feel them judging me
Technical interviews are not perfect at judging candidates. Most companies use them to weed out bad hires, even at the expense of missing out on your great talents. With so many variables, it is hard to create a consistent interview. Minor changes in the interviewer’s mood could skew the results of an interview heavily. A bad hire can wreck a company, so it is better to have more false negatives than false positives. Do not worry if you fail an interview at a company. It is designed for you to fail. Study harder and try again next time. Remember that failure is an important step on the road to learning anything. Like the Japanese proverb goes, fall down seven times, get up eight times. Good luck with your next interview!