How to Prepare for a Technical Interview - 11 Best Practices

Preparing for your upcoming technical interview? Here are 11 tips to follow to crack your technical interviews and get placed in MAANG or top tech companies.

Mentor

Blog

Ever wondered why people despite being exceptional in coding skills still fall for rejection?

You’ll always hear about the coding languages to learn, the topics to study, and the questions to solve but your technical interview preparation doesn’t end there. 

In an interview, there are two parties involved, you and the interviewer. 

The exchange is not just about your knowledge but also your attitude, mindset and how you handle difficult situations.

Once you are given a coding problem, what are the next steps you should follow?

In this article, I’ll try to decode how you can prepare and perform better in technical interviews. But before that let me tell you a little bit about the types of technical rounds in interviews.

Types of technical rounds in interviews

In most companies you can expect 3-4 types of technical interviews:

🔶 A phone screening interview - The first step in the hiring process, you can expect questions from your resume and might also be asked to solve 1 or 2 coding problems.

🔶 Coding challenge - A real-time coding challenge to assess your coding skills via a shared editor. 

🔶 Coding rounds - A one-on-one interview involving complex coding problems from data structures and algorithms to evaluate your knowledge and skills.

🔶 System design round - In this technical interview round, you may be asked to design an LLD (low-level designs) or HLD (high-level designs).

Now, let’s get to know some of the best practices to keep in mind for technical interview preparation.

11 Best Practices to help you with Your Technical Interview Preparation

1. Listen carefully

Listen carefully to understand the given problem statement. 

This is the first step in your tech interviews and if you fail here, it’s going to be tough to maintain the momentum throughout the interview rounds. 

If you are asked a question and you spend too much time understanding it, you are at a disadvantage. 

Each question carries a time limit so it's better to take a minute or two to gather your thoughts and if you are not clear about something, ask it right away.

Ask as many questions as possible to the interviewer before coding. In the worst case scenario - the interviewer might not respond so don't hesitate.

2. Get clarity about input and output values

For every question asked, there will be an input and output value. 

Generally, one or two examples of output are given by the interviewer. 

Ask for more examples if needed. 

  • What data type should the input be? 
    • What data type should the output be? 
      • What are the constraints on the input and output values?

        Create your own example where you can talk about the input and output values - what is asked and what the result should be. 

        It's even more important for simple questions.

        Sometimes if the problems are too simple, we forget about constraints.

        Reiterate if needed.

        Tell the interviewer,

        As per my understanding, this is what I have been asked. Am I right or am I missing something?

        If there are any specific constraints on space and time complexity, it needs to be clarified before you move on to the solution.

        If you are unsure how to approach time and space complexity in data structures and algorithms, connect with me on a 1:1 FREE call so that we can discuss where you are faltering.

        3. Think and discuss the solution

        Never jump to code directly.

        Saying that "my code is ready" is a wrong approach.

        Always verify it with your interview. Have an agreement with the interviewer through visual cues that yes, the solution will work. If the solution is not correct then most of the time, the interview will guide you.

        There can be three major scenarios when you are given a problem,

        • You already know the answer
          • You have some idea
            • You don't have any clue about it

              For the first case, pretend that you have never seen it. 

              Even if you know the solution, think for a while. 

              Start from scratch and take the brute force approach to solve the question.

              Remember, while preparing for technical interviews, you don’t have to memorise the solution but rather the pattern to solve it.

              In the second scenario, you can start with the parts that you already know and for the rest ask for a hint confidently. 

              Take some time to think about what can be or should be your approach. It is not necessary that the first approach that you are thinking about has to be right. 

              For the last scenario, keep discussing the question's input and output values for some time and it should give you enough clue to at least start. 

              In rare cases, if you are still not able to move forward then you can ask the interviewer to give you another question. 

              4. Think out loud 

              Saying whatever is going in your mind is important to keep the interviewer on the same page.

              Think of it as you are talking to yourself.

              Whatever you are doing on the whiteboard or screen, make sure that you're are vocalising all the steps taken.

              Reaching the correct solution is the goal and so is the thought process behind it.

              They want to see your critical thinking, how you arrive at solutions, your logic flow, and your debugging skills.

              You will not be asked what you know and what you don’t. You have to find opportunities to show your skills and knowledge.

              Think of it as if you are solving a real-world problem where you are actually creating something. This will help you to not restrain yourself and go all out with more than one approach to arrive at your solution.

              Let’s say there is an “if” function, and you are checking its value, you can let the interviewer know your thought process and say something like,

              I am checking if the value is 0 or not, if it’s equal to 0, I’ll do the “x” approach or else I’ll go with the “y” approach.

              The benefit of doing this is if you are making a mistake, the interviewer may point it out.

              5. Break the problem into smaller sub-problems

              In the real world, you will come across a lot of complex problems whose solution is not something you can think of as a whole. 

              You have to break it down and then try to solve each part independently to arrive at the optimal solution. 

              Let me give you a real example,

              So, I had this friend who was facing a challenging interview question: designing a data structure.

              He took a smart approach and broke down the problem into insert, delete and peek operations and optimised each of them independently.

              The end result - he got selected and the interviewer was impressed with the approach he took. Now if he tried to solve the problem all at once, the outcome might have been different.

              Hence, whenever you are facing a complex problem, break it down into consumable chunks and then solve it.

              6. Talk about space and time complexities

              For every question that’ll be asked, you have to derive their space and time complexities and explain the same to the interviewer.

              To start with your technical interview preparation, have a good understanding of the basics of time and space complexities.

              This might involve reviewing the big O notation, understanding how algorithms impact performance, and making sure that your solution is efficient and scalable as the input grows.

              Prepare questions that involve analysing and deriving these two.

              7. Write understandable and clean code

              Use meaningful variables and coding conventions while solving a tech problem.

              For example, if you are counting something, use the variable “count” to avoid confusion. The variable names should be self-explanatory.

              Believe me, I made this error in the past and make sure to bring it up every time I am talking about technical interview preparation.

              I used “sum1” and “sum2” variables for two different functions but accidentally mixed them up which lead to an error in my code. 

              Also, while copying and pasting similar codes or some sections, don't forget to change the variable names.

              8. Don't leave room for errors

              I might contradict myself here but don’t depend on the interviewer to point out your mistakes.

              It may happen that the interviewer will not guide you if there is an error in your code or approach.

              Depend on yourself, be confident enough that the interviewer should not have a chance to pinpoint the errors.

              Read the job description thoroughly and plan out your technical interview preparation accordingly. 

              Prepare for the DSA interviews and have a list of resources at your disposal that you can refer to before the interview rounds.

              9. Have a good interview setup

              The pandemic has changed the work-life dynamic all around the globe. Even though companies are now operating from the office, working from home has also become the norm.

              Having an online interview from the comfort of your home is nothing new now.

              Also, in big companies, you can expect an online interview before being called onsite.

              Hence, having a good setup is mandatory. Good internet connection, a quiet room, being appropriately dressed, and looking presentable on camera, you have to be mindful of these things.

              It’s not like you’ll get rejected if an issue arises but it's always best to give the interviewer as little to almost no reason to complain.

              10. Prepare with mock interviews

              We discussed how you have to think loud, get clarity, and discuss the solution but when it comes to actual practice, it’s not that easy. 

              Preparing for a technical interview with mock interviews can help you experience the real interview scenario. 

              Practising with professionals and getting feedback can also make you comfortable with the kind of questions asked.

              11. Treat it as a two-way street

              The end goal should not be just passing the interview. 

              You also need to have a set of questions that you’d like to ask the interviewer.

              Ask about the company values, vision, and work ethic to see if they fit your ideals.

              Take a step back and see if you can visualise working for the company for a long time.

              Think beyond the interview and the impact it can have on your career goals.

              Having an opinion and being ready with questions shows the interviewer that you are equally enthusiastic about working in the company.

              Also, have conversations with the interviewer, and show them that you can be fun to work with.

              Remember, the interview is not only about your skills and knowledge but also about personality and fit.

              Finally,

              It’s just an interview.

               It takes a lot of time to study and get better at it. Even if you fail one, don't get disheartened, there is always a second chance.

              Embrace the nerves and start your technical interview preparation keeping in mind that all you have to do is give your best.

              The interview and its outcome are not in your control but your mindset is.

              With this, keep on practising and you’ll reach there.

              If you have any questions, feel free to connect with me on a 1:1 FREE call so that I can clear your doubts and do my best to help you with your technical interviews.

              Image