Because programming is such a detailed and technical skill, most companies put you through a technical interview in addition to a “regular” interview.
The regular interview is to check your background, assess your fit with the company culture, and see if you’d work well at the company. Once you pass this first round, they need to evaluate your technical skills.
The technical interview is where you demonstrate that you can write code, usually in real-time and without the support you usually use.
The central part of the technical interview involves solving a programming problem by writing code in real-time while an interviewer watches and asks you questions about what you are doing.
The entire process of a technical interview is challenging. The automations and tools you use every day to prevent simple coding errors at your computer are gone. You are forced to program in unfamiliar ways (who handwrites code?), and you are doing it under the pressure of someone watching you and asking questions while you are doing it.
But, the technical interview isn’t impossible. You CAN walk into your technical interview feeling confident and ready to tackle anything the interviewer throws at you.
In this article, I’ll show you how to prepare to maximize your chances of success.
Never treat a coding interview like a regular interview. Don’t expect to walk in and sit down to answer questions. You need to spend time preparing.
Your technical interview is a test. The interviewer will give you a problem to solve in real-time right in front of them. You’ll likely feel exposed and unsure of yourself as someone watches you work, asks questions that make you second guess yourself, and makes notes.
Very few things in life make you more nervous than someone with the power to influence whether you get a job furiously scratching notes behind your back. It’s terrifying.
The best way to maximize your chances of success is to spend time preparing for the technical interview, and it all begins with getting as much information as you can.
The company will probably have a procedure or process for conducting a technical interview. So, when you are scheduling yours, ask questions any might help you anticipate what you’ll be facing when you walk in.
- How long will it last?
- Do I need to prepare for specific questions or tests?
- Will I be writing code on a whiteboard or using a specific program to produce the code?
You won’t learn details because the point of the interview is to test your programming skills. However, if you know how they’ll be conducting the interview, how much time you’ll have, or how you’ll be writing the code, you can prepare accordingly.
Knowing what you are preparing for makes your preparation time far more effective.
It’s easy to put it off, thinking you’ll do it tomorrow. But, whether it’s on your lunch break or late at night after you put kids to bed, set aside plenty of time to prepare. Only you know how much time you need to prepare for an interview. If you’ve never done it before, plan to spend 30+ hours learning and practicing for your interview.
Block it out on a calendar, put it in a task management tool, and break it down into smaller chunks where you practice the things I’ll discuss in the rest of this article. Treat your practice as methodically as the code you are practicing.
It’s tempting to figure out what language the company uses and surprise your interviewer by conducting your interview in that language. This could backfire on you in a big way. Every programming language uses conventions and formats unique to that language.
Programs like Visual studio help you get around these conventions. But, you won’t be using VS in your interview. No matter how they conduct the test, you’ll be writing code without those guardrails you’ve learned to rely on.
Choosing to write code in a language you aren’t deeply familiar with could cause significant issues. You could make simple (and embarrassing) mistakes in basic syntax simply because you picked the wrong language or forgot about simply syntax that your preferred coding program automatically puts into your code.
If you want to feel calm and confident when you walk into your technical interview, choose a language you know VERY well.
You’ll make fewer mistakes. You’ll work faster, explain yourself better, and produce a better final product.
One of the things your technical interview seeks to discover is whether or not your coding style is compatible with how they do things at their company. They want to make sure you haven’t picked up bad habits that will make your work difficult or impossible to integrate with the company.
They’ll also just be interested in making sure you know the basics of writing code.
The best thing you do is to refresh yourself on the fundamentals. This could include re-reading a computer programming book, taking a Computer Science 101 class, or reviewing old material.
As a programmer, it’s easy to get so excited about new techniques and ideas that we forget about the basics and develop bad habits. Reviewing the fundamentals helps you skip past that.
The technical interview is designed to expose these flaws in your work so the company can find people who write code that integrates well.
Don’t get so caught up in studying advanced programming techniques that you forget the basics. Often, a company is far more interested in the overall quality of your work than some new technique.
Make sure you walk into the technical interview with the essential fundamentals of computer programming fresh in your mind.
In your interview, you’ll be given a problem to solve. The code you write to solve that problem and how you write that code will determine how well your interview goes and your chances of a job offer.
If you understand the problem, write good code, and develop a solution that works, your interview will go well.
But, if you misunderstand the problem, write code filled with errors, fail to follow good fundamentals, and come up with a solution that doesn’t work, it will go poorly.
You can’t memorize a specific solution because you don’t know what the problem will be until you get into the interview.
Instead, you need to practice the scenario by getting a programming challenge and then writing code to solve it. A million sites and services help you do this, so there are all kinds of ways to practice this.
The essential thing in the technical interview is writing code to solve the problem you’ve been given. So, get as much experience doing this as possible.
This is very controversial and I don’t agree with the set up, but yet many companies will ask you to code without all your fancy plugins and editors, and instead to rely on just paper, or a whiteboard, or yes, even Google Docs.
This is the real test, isn’t it?
Can you write code that works to solve a real problem without all the fancy tools and solutions you have on your computer? It’s the best way to separate those who know what they are doing from those who don’t.
So, if you spend your prep time on the computer, you will be unprepared to handle this essential part of the interview.
As painful as it is, you need to get comfortable manually writing code without a computer.
And, just as important, you need to do it without making simple mistakes (so practice writing AND reviewing your work for simple syntax errors).
Unfortunately, it’s not enough to simply write good code. When you are working for a company, you’ll be required to communicate about the code that you write. Your technical interview isn’t just assessing your ability to generate code but your ability to talk about it in a meaningful way.
Many programmers can write code. It’s much harder to explain the code you write.
So, when you prepare, get a friend to come over and practice explaining it to them, record yourself talking through your code, replay it, and listen to how you explain things.
Have someone (preferably someone who knows a bit about programming) ask you questions while you write, so you get experience talking and writing or explaining yourself in real-time and aren’t surprised by it in the interview.
The most important thing you can do to be prepared is to practice. Invest in a whiteboard and practice writing code within the time frame the company typically gives you for the interview. If you don’t know how much time you’ll have, practice writing code for different lengths of time.
Invite a friend over and have them ask you questions while you work through a technical interview.
Most importantly, get repetitions under your belt. The more you do this, the more comfortable you’ll become and the more confidence you’ll have when you walk into your technical interview.
In the next article, we’ll discuss how to put all this practice to use and crush your technical interview when you finally walk inside.
Thanks for reading!