How to Prepare for Coding Interviews
November 1, 2020
Whether you are a student or a working professional, effective preparation for any software engineer interviews is essential if you want a job at a good company. This article covers everything you need to know to prepare for coding interviews in exceptional tech companies.
Table of contents
The interview process
Reputed tech companies have a rigorous interview process to select the right candidate for the job. The first round is usually an online coding test conducted on platforms such as Hackerrank, HackerEarth, Mettl, etc.
It consists of coding questions or a combination of coding questions and MCQs (Multiple Choice Questions). Once the candidate clears the first round, they schedule a telephonic interview or an onsite interview (The candidate may be requested to go to the company office and attend a series of interviews).
These interviews can be classified as technical or HR interviews. In technical interviews, you are asked questions about your resume, work experience (if any), fundamentals of computer science, algorithms and data structures, etc. HR interviews test your behavior, your ability to work well in a team, and whether you will be able to thrive in the company.
If you are a student enrolled in a CS degree, preparing for interviews might take around 6 - 8 months. If you are a working professional with some work experience, you might need less time (around 3 months). This is an elegant article that covers the complete roadmap and timeline to prepare for interviews.
The first round
The first round is usually an online coding round that tests the candidate’s ability to use algorithms and data structures to solve complex problems.
This round tests your ability to understand and solve a given problem in a short amount of time. To ace this round, you must practice coding questions on platforms such as Codechef, Hackerrank, HackerEarth, etc.
This is a good article on competitive coding and gives you a complete roadmap on how you can get started with it.
Once you clear the first round, the recruiter will schedule face-to-face interviews. The first and most common question the interviewer will ask is to introduce yourself.
Prepare a short introduction for yourself well in advance so that it becomes easier to answer the question in the interview.
This article covers this question in depth.
Some tips to help you introduce yourself effectively are listed below:
- Make sure you tailor your introduction specifically to the company and role that you are applying for. This ensures that you know what the company does and what you are applying for.
- Don’t just read your resume word for word. The interviewer already has your resume and is not expecting you to read it out to him/her.
- Practice your introduction with someone or in front of the mirror before you appear for the interview.
- Conclude your introduction by mentioning your past experiences and roles where you performed well.
The interviewer will ask questions about your work experience( if any), projects, skills, etc., and anything else you may have on your resume. Make sure you know everything that is in your resume thoroughly. Overleaf is an excellent site for awesome resume templates.
Tip: Don’t lie on your resume. If the interviewer asks you a question that you aren’t able to answer, he/she will know that you have lied on your resume, and that will deduct a lot of points from your score. This is an amazing article on how to write an attractive resume.
In face-to-face interviews, the interviewer wants to understand how you think and arrive at a solution to the given problem. Therefore, it’s always good to “think out loud” and communicate with the interviewer. Convey your thought process to the interviewer and let him/her know how you are approaching the problem.
If you get stuck, the interviewer will usually give you hints and will guide you towards the correct solution. Their main objective is to assess your thinking ability and problem-solving skills.
Therefore you must also be able to communicate effectively and let the interviewer understand your approach. This article does a good job of how you can communicate effectively with the interviewer.
The interviewer usually presents a question and asks you to find the optimal algorithm to solve the problem. If you are unable to find the most optimal and efficient algorithm, provide the brute force solution first.
This is because something is better than nothing and a brute force solution is better than no solution. Once you explain the brute force solution, work with the interviewer to come up with a more optimal solution in terms of time complexity and space complexity. There are multiple solutions to a given problem, but the interviewer is looking for the “best” solution.
It’s recommended that you are well versed in at least one commonly used programming language such as C/C++, Python, Java. Interviews focus more on the algorithm and how well you can come up with an optimal solution.
However, some interviewers might ask you to code the solution you come up with using any one of these languages. The interviewer might be okay with other languages, but C/C++, Python, or Java are preferred.
The HR interview is usually conducted at the end once you clear all the technical interviews. It’s a good idea to have some answers prepared before you sit for the interview. This article covers the most commonly asked HR questions and how to prepare for them.
In conclusion, cracking a coding interview takes a lot of practice and dedication. There are numerous resources online that can help you ace the interview and land your dream job.
Solve problems on competitive coding platforms, explore the fundamental subjects of computer science, and prepare for interviews.
Some useful resources are listed below:
For competitive coding and interview questions:
Peer Review Contributions by: Lalithnarayan C
About the authorAdith Bharadwaj
Adith Bharadwaj is a senior at the National Institute of Engineering (NIE) and a Software Engineer Intern at Cisco - India. Adith has a keen interest in solving challenging problems and is a data science and machine learning enthusiast. When he’s not coding, he loves drawing, working out, and watching great TV shows, movies or anime.