This article was written by our friends at Career Karma.
For both new developers and seasoned engineers, the technical interview can be a daunting, overwhelming – and sometimes outright terrifying – process. No matter your professional experience, knowing how to prepare for the technical interview is a crucial skill. It will often be the difference between landing the job and being turned down. In this article we’ll explore 5 tips for preparing for your technical interview.
You have a technical interview. How should you prepare?
The technical interview can include conversations about many computer science and coding topics such as memory management, Big O Notation, data structures and algorithms, white-boarding or coding challenges, pair-programming, project walk-throughs, and take-home projects.
Aside from being properly rested the days leading up to your technical interview, there are a lot of preparation steps you can (and should) take to maximize how well you’ll do during your technical interview. Below are five ways to prepare.
1. Find relevant stories to tell
One of the best ways to portray your knowledge, understanding, and skills, is through interview storytelling. This is the opportunity for you to answer a question from the interviewer in a way that directly relates to the topic or experience being questioned. Telling relevant stories might also give you the opportunity to show understanding of the topic, even if you don't have direct experience.
Here's a short example of what that might look like when you don't have direct experience with a topic:
Interviewer: What is your experience using React?
Interviewee: I've had to build several frontends, though I've typically used Vue and Angular. However, when I was starting my Movie List app, I did look at using React since it's emerged as a widely-used framework. In fact, I cloned a project from Github and looked at the code and architecture of the app to get a better understanding of its use and took some time to read some of the docs. In the end, I did stick with Vue for my project, but knowing other frontend frameworks and from the small amount of research I did, I feel that I could comfortably step into building a frontend with React without any major challenges.
In this example, the interviewee is able to show knowledge and understanding of React even though they’ve not personally used it. Then, the interviewee has the opportunity to finish answering the question by confidently saying they don’t feel as if they would struggle working with a new framework.
2. Take time to review past projects’ code
There are many benefits to reviewing code from your past projects. It's often easy to forget a specific method you used, or the steps you took to solve a problem, twenty projects ago. Reviewing past projects gives you the opportunity to refamiliarize yourself with code solutions you've used in the past and allows personal reflection on how you’ve grown since.
It's also common for an interviewer to ask you to walk them through a project or some code you've written. This is a great time to pick a good project out and get it ready for your interview. Be prepared to have a prior project accessible to walk through with your interviewer.
3. Learn data structures & algorithms
While spaghetti code can get the job done, understanding data structures and algorithms helps you write cleaner, more efficient code. Prepare for your technical interview by learning and understanding data structures and algorithms and best use-cases for each. Learning data structures and algorithms will help you have a better understanding of the how's and why's during your technical interview.
4. Do code challenges every day
Now that you've studied data structures and algorithms, practice putting them to use. Every day. At first, code challenges can be difficult to complete. It could take several hours to partially complete one. However, as you practice and start understanding methods used to solve a code challenge, you’ll be able to complete multiple code challenges in the time it used to take to solve one.
5. Learn to say, "I don’t know"...the right way
Saying "I don't know" the right way is an art, and one that is definitely worth mastering. As an interviewee, not knowing the answer to a question can be the most terrifying scenario. Though, regardless of who you are, it's impossible to know everything.
An interviewer knows this, and they'll be paying particular attention to how you handle not knowing the answer to something. What you never want to do is say "I don't know" or give an explanation that makes it clear you have no understanding of what you're talking about.
Never look at not knowing as failure, rather opportunity. This is the chance to show off your critical-thinking and problem-solving skills. Instead of blurting out, "I don't know", take a moment to collect yourself. Give yourself the chance to mentally work through what you're being asked, and give an answer similar to:
"While I'm not sure it's the best way, initially I'm thinking..."
And then you have the opportunity to follow up with a question to the interviewer like:
"What would you say is the best way to tackle that?"
This gives you the opportunity to show that you can critically-think about topics you're unsure of and can also show that you're open to others' suggestions and feedback — which can be huge! Even before your interview, practice saying "I don't know" the right way in everyday conversation. This will help it become second nature during the interview.
How Prepared Are You For Your Technical Interview?
You've spent those past years dreaming of the day you become a software engineer. The hiring department or tech manager has requested an interview (you've gotten the request, now what?), you've passed the phone screen/HR interview, and now it's time for your technical interview. Preparation is everything. From learning and studying computer science concepts, to reviewing past code and projects, to knowing what to say and how to say it, each step will help you best prepare you for your technical interview.
After your interview, take time to reflect on your interview and how it went. Take time to make notes on questions asked, topics discussed, and think about how you can refine these steps for your next technical interview. And then after that, take a break and pat yourself on the back for a job well-done.