How to Prepare for and Do Well During the Technical Interview
Interviews are stressful for job seekers, no matter how new or experienced they are in job hunting or the industry they are applying for. It’s important to remember that the interview is a chance for the company to evaluate you and an opportunity for you to assess them. Even after being a programmer for years, it can still be highly intimidated by interviews, much less technical ones. This paper will cover building your problem-solving skills, managing your interview schedule, and handling the interview itself.
One of the top requirements to be a successful developer is the ability to problem-solve. There are several things that you can do to strengthen this skill. The most important one is consistent practice. The more often you practice, the better you’ll get. By struggling through these challenges, you’ll improve your skills in the long run, but you’ll also find satisfaction in finding the answers to challenging problems.
What should you do when approaching your first problem-solving question? Here are a few suggested steps to prepare yourself before getting started adequately. First off, start your timer! Most problem-solving and technical portions of interviews are timed and tracked somehow. So time yourself, even during your practice rounds. This will help you know how it feels to be under the pressure of time and help you be more comfortable with that pressure. As your skills and knowledge improve, the time you take to find solutions will likely decrease.
With your timer started, read over the problem and ensure you fully understand the requirements and expectations. After all, if you’re on the way to a party but have the incorrect address, it’s better to come to that realization before you start driving than to realize it once you’ve arrived at the wrong destination.
Next, as suggested by Tech with Tim, write out the answers to the following questions:
1. Redefine the problem in your own words to ensure you grasp what is needed from you.
2. What are you being asked to do? What are the end goal and requirements that need to be met?
3. Do you have all the information you need to address the problem, or is additional information or research needed?
4. Break down the steps that need to be taken to get to the end goal.[JL1]
5. Build out some input examples.
The answers to these questions can be used as a guide to keeping you on track while helping the problem-solving process flow more smoothly.
Consider Building a Flow Chart
It could also be worthwhile to build a flow chart showing your script’s steps to process the input values to generate the desired result. The flow chart will outline the requirements to code to process input values. It will also be helpful as a visual reference guide while you’re coding.
Practice Verbally Communicating
Once your solution is ready, talk through the problem and solution with someone or something. Even if you speak to an inanimate object, it will still get you used to verbally communicating. Examples of what you can talk about include:
- The problem you’re trying to solve.
- What were the requirements that needed to be met?
- What was your thought process in determining a solution?
- How did you go about addressing the problem?
- What difficulties or obstacles did you encounter, and how did you resolve them?
Evaluate Your Presentation
After you have presented your thought processes and ideas, it is ideal that you take some time to evaluate how it went. If you were working directly with someone, that’s even better because you can get their insights and input. A few of the discussion and evaluation points can include:
- How did you feel when you were providing your explanation?
- What could you have phrased differently? What did you find most challenging or complicated?
- Were there areas where you unknowingly used jargon that an interviewer might not understand or be aware of?
- Did your explanation make sense to you? To your audience?
Talking it through will show what you understood and allow you to improve your communication skills while building up your comfort level with the presentation. Interviewers like to know your thought process, so the better you can communicate yourself and the steps you take, the better they’ll understand how you think and work when addressing problems. The more you can practice your presentation and verbal communication skills, the better you’ll be able to share your solutions with others. By talking it through, you might also find ways to streamline and improve your answer.
From here, it’s all about continually honing your problem-solving skills through finding solutions to problems in your everyday life and answering coding or math problems.
Example Solutions to Coding Problems
When building out my solutions, I used the Online Python Code editor to quickly compile and run my Python code and take screenshots to include in this paper. Regarding locating coding problems to tackle, I searched the internet for ones that seemed manageable yet complex enough to be challenging. Below are a few of the ones I took on and the code for the solution I built to address the challenge.
1. Create a function to validate an IP address. I selected this challenge because it seemed practical and worthwhile to build. To address this, I decided my function needed to do the following:
a. Split the passed string by the period character (.)
b. Verify that the list resulting from the split is four elements in length
c. then iterate through each element to make sure that they are:
ii. Between 1 and 3 characters in length
iii. Converted int value is between 0 and 255
d. If all the above conditions outlined in c are met, the function can return True. Otherwise, it is to return false.
Figure #1: Function to Validate IP Addresses (Test/view my code)
2. Create a function to find missing and repeating numbers in an array. — This is supposed to be a medium-level challenge though it initially sounded like something that should be easy to solve. To change it a bit, I decided to have my function find the max and minimum values from the list itself instead of having the user pass in the max value and defaulting the minimum to 1. In building the function, I wanted it to:
a. Start by sorting the passed-in list.
b. Grab the first element and put it in a min variable.
c. Grab the last element and put it in a max variable.
d. Then, iterate from the min to max to locate the repeating and missing numbers.
Figure #2: Function to Locate Missing and Repeating Numbers in an Array (Test/view my code)
Get out there and apply once you are comfortable enough to tackle some technical interviews. When given a chance to interview, keep your day manageable with a few and keep your day manageable with a manageable amount of too many sessions. This could create unnecessary stress and strain on you. It also could lead you not to perform as well as you usually would. I suggest one interview daily, especially since some interviews might run over the time you allot for them. Leaving your day open will ensure your schedule is flexible enough to allow unplanned changes.
On the interview day, be aware that the interviewer could have you answer the problem in various ways. You could be at a whiteboard drawing out and explaining your solution or at a computer coding it out from scratch. This is hard to predict in advance. So, be adaptable but prepared for whatever might be sent your way.
If you have questions, ask them. You might only create an appropriate solution if you know the facts and fully grasp the problem and its requirements. Don’t hesitate to ask clarifying questions before you start addressing the issue. Plus, these probing questions will exhibit your ability to acquire needs and conditions should you work on projects for them in the future.
Talk through your thought process and the code you write as you build it. Interviewers want to know how you are approaching the problem. Including them on the ride will help them better understand your process and how your mind works. Can you explain what you are doing and why you are doing it that way? Doing this will showcase your verbal communication skills. Many programmers work with those that are tech-savvy and those that aren’t. A successful developer must know how to communicate with people of all backgrounds and technical knowledge.
As stated before, interviews are an intimidating but essential part of your career. Be positive and have faith in yourself. Remember to practice and build your problem-solving skills continuously. They will be a significant factor in the interviewer’s end decision. However, do not forget those soft skills. These skills will be exhibited, from how prepared you are for the interview to approaching the problems introduced. Additionally, make sure to showcase your ability to communicate your thoughts in a way that anyone, even non-tech-savvy, can comprehend and follow.
Now, go out there and get practicing! In most cases, you will not ace your very first technical interview. However, each interview will be another notch on your belt, giving you another opportunity to challenge yourself and your skills. By overcoming these obstacles, you will become a better interviewer and coder.