It’s important to note that I’m not a mental health expert. This is based on my personal experience. If you’re experiencing any serious mental health issues, please reach out to someone you trust or a mental health expert immediately.
Introduction
Unfortunately, the technical interviewing process for software developer jobs is deeply flawed. According to a research study conducted by North Carolina State University and Microsoft, white board technical interviews assess test anxiety rather than coding skills and resulted in women and minorities scoring worse.
I’ve personally experienced anxiety during technical interviews that has negatively impacted my performance and led to many rejections. In response to this, I created a set of steps that I use to practice for technical interviews and then use during interviews. Having a routine has immensely helped me perform much better during technical interviews. Let’s begin!
Problem Solving Routine
Breathe
First, breathe. Inhale, exhale. Breathe as many times as you need to. Center yourself. Believe in yourself. You got this!
This step can be repeated as many times as necessary throughout the process.
Understand the Problem
It’s easy to jump right in and start coding right away. However, understanding the problem fully before coding can save you from wasting time later.
If you’re taking a live interview, ask questions. Ask the interviewer to repeat the problem as needed. You can even restate the problem to the interviewer to make sure you understand the problem before you start coding.
List the Problem Requirements
Before you start coding, gather the following pieces of information:
- What’s the program supposed to do?
- What’s the input and data type of the input?
- What’s the output and the data type of the output?
This will help you understand the problem, identify any missing info, and focus on the solution.
List Possible Solutions
During this step, write down some possible solutions while speaking your thoughts out loud. If you’re in a live interview, this will help the interviewer understand your thought process, and they can provide further insight as they see fit.
If there's more than one solution, choose the solution you're most comfortable coding, even if it's not the most efficient solution or a brute-force solution. It’s better to have a solution than none at all. You can always optimize your solution in the end if there’s time.
Test Your Solution
Run a few test cases. Check if there are any edge cases or bugs. Refactor as needed.
Optimize Your Solution
If you have time, look for ways to improve your solution. This is where Big O notation comes into play.
Summary
If you’re someone who suffers from test anxiety, know that you can succeed. Having a problem solving routine may help you manage some of that anxiety during technical interviews, as it has for me. I hope my problem solving routine helps you in some way, and feel free to change it to fit your needs.
Top comments (4)
As someone on both sides of this, there’s a reasonable stress level associated with certain activities, even those with no risk. We perform in this way while presenting official documents, etc.
Defeating anxiety begins with identifying it. At the first moment you feel it, tell yourself “yep, that’s anxiety, I can do that later” then continue, unfettered with the task.
Practice and fake it until you make it. Breathing is key, taking ten loud breaths before a code interview will make you and the interviewer more uncomfortable; breathing practice is an involved meditation technique we should use daily, not just when it’s too late.
All GREAT advice, and you're right. Interviewing is usually a stressful situation to begin with and sometimes you have to teach yourself how to manage the stress in that specific situation, in addition to preparing for the interview (lol)
I might add that it helps to focus on the solution rather than the syntax. Pseudo-code reduces stress by ignoring syntax, and frees you more to focus on the logic itself.
Agreed!