How to be Fully Prepared for a Coding Interview

Clarice Abreu
Blog Técnico QuintoAndar
6 min readOct 29, 2020

If you want to work as a software engineer you will probably face technical coding interviews when looking for a job in most of the companies, from start-ups to big techs. They can be different from one another but most of them have a lot of things in common. In this article, I will share with you some techniques and tips I’ve learned after five months of intense studying and four months of participation in a big tech mentoring program in which I had several one-on-ones with a software engineer interviewer about how a coding interview works.

First, I want to add a disclaimer, the tips and advice I’m going to write about are general and I think they can help you with any coding interview. However, if you already have a specific company in mind, you should research how its interviews are like. If you want to work at QuintoAndar, you can read this article about what to expect from our software engineer interviews. If you are looking for another company, you can use the leetcode’s forum or the company glassdoor page and check the interview section or ask someone who works in the company about how their interview was. This will help you direct your studies and find out what you should focus more on when preparing for the interview. Besides that, I’m also not going to discuss solutions for particular coding questions, instead, I will write about how I think you can prepare and behave during the interview to increase the approval chances.

Preparing for the interview

This might seem obvious but the most important thing you need to do is study and practice the most you can. By doing that, you will be more confident and comfortable during the interview. Although many people know that practice and study are important, sometimes it is very difficult to know how and where to start. Therefore, my first advice is: don’t try to do everything at the same time, organize yourself, plan when and how often you will prepare for interviews. Here are some tips that can help you:

1. Divide and organize your study by concepts and topics

When you start solving problems, if you do it with coding questions that are not related to each other, you may feel overwhelmed and frustrated because it can be harder for you to see your progress on each concept. Therefore, I advise you to divide your study into important topics. Here is an example of a concept/topic division:

  • Strings
  • Arrays
  • Stacks and Queues
  • HashMaps
  • LinkedList
  • BinaryTree
  • Dynamic Programming
  • Sorting Algorithms
  • Recursion
  • Breadth-First Search and Depth-First Search
  • Big O notation for time and Space complexity analysis

After you have separated what you want to study into concepts, you can start by studying the theoretical part of them (for example, what is the time complexity to access a value on a hashmap or when it would be better to use a Breadth-First Search instead of a Depth-First Search).

Useful tip: Cracking the Code Interview is a super famous and well-recommended book for training for coding interviews. It covers a lot of important topics: you will find general interview tips, concepts explanations, and 150 coding problems. If you prefer a website you can use Geeks for Geeks. It has good articles about data structures that can be very helpful (see the article about LinkedList as an example).

2. Practice what you have studied

When you feel more comfortable around a concept, then you can start practicing and solving problems using them. I advise you to study a concept, solve coding problems about it, figure out if you still have any doubts about that concept and if so, study it more, or else proceed to the next concept.

Useful tip: Leetcode has over a thousand problems and I advise you to explore the forum as much as you can because there you will find discussions about problem solutions and general interview tips.

Start with coding questions that you think are easier and you have more knowledge about and then proceed to the most difficult. It’s okay if you can’t solve all of them or if you don’t do it in the most performative way. What is important is to find out what kind of problem could be solved with each kind of data structure, for example. I suggest you always look for the problem solutions on the web, even if you have already solved them because you can learn a lot just looking at other approaches and then thinking about how you could improve your solution to be more performative or readable.

Besides that, you should always analyze the time and space complexity of your solution. This is often asked in interviews and helps you see how good your solution is in terms of performance and memory. Also, try solving the problems aiming for the best time complexity and then try to solve the same problem aiming for the best space complexity. In many situations the solutions will be different, then you can notice the trade-offs between each approach.

Another good practice is solving the problems out loud. This may sound strange, but when you are in the interview you will need to explain your thoughts and decisions to the interviewer while coding and this is not easy for many people because normally we are not used to code while speaking. Therefore, you should practice coding while explaining what you are doing to check if you are comfortable doing that and if you can explain your solution clearly.

Useful tip: if you intend to do interviews on multinationals and you are not a fluent English speaker, you should practice explaining your solution in English because your interview can be in English.

3. Do mock interviews

A mock interview is a practice interview that allows you to become familiar with interview settings. With it, you can recreate the interview environment with another person that will play the interviewer role. Therefore, you can practice everything I mentioned above but in a scenario that is more similar to the real interview. You will be challenged to solve a problem within a limited time while explaining everything to someone that can ask you questions as the interviewer would do.

You can do mock interviews with friends or online peers that are also studying for interviews and switch between the interviewee and the interviewer roles. Being the interviewer also gives you good insights into what the interviewer’s perspective is and helps you notice how a good interviewee’s explanation makes a difference.

Useful tip: Pramp is a good website for mocking interviews, it allows you to choose between an automatic match with an online peer or indicate someone you want to conduct the mock interview

Finally, the last thing I want to add is that to increase your succeeding chances you need to study and practice but you also need to conduct the interview effectively. I highly recommend you read this article containing many techniques and tips to help you during the interview.

Thanks for reading! I’m always open to receive feedback, recommendations, or questions, feel free to contact me!!

Clarice Abreu, Software Engineer
LinkedIn
: https://www.linkedin.com/in/clarice-abreu/?locale=en_US
GitHub: https://github.com/clariceabreu

References

How to be Effective During a Code Interview by Clarice Abreu — https://medium.com/quintoandar-tech-blog/how-to-be-effective-during-a-code-interview-ddc790243d70

Leetcode’s forum — mhttps://leetcode.com/discuss/interview-experience?currentPage=1&orderBy=hot&query=

Cracking the Code Interview — http://www.crackingthecodinginterview.com/

Geeks for Geeks website — https://www.geeksforgeeks.org/

Linked List Data Structure Article by Geeks for Geekshttps://www.geeksforgeeks.org/data-structures/linked-list/#singlyLinkedList

Leetcode’s problems list — https://leetcode.com/problemset/all/

Pramp website — https://www.pramp.com/#/

--

--

Clarice Abreu
Blog Técnico QuintoAndar

Software engineer at Meta passionate about programming, software quality and high-performance teams.