Preparing for coding interviews
Coding interviews can be intimidating at first look. You have to get one chance and you have to get almost everything right within a limited period assigned to you. If not, you have to face rejection which is hard to digest. Hence, a solid preparation strategy always keeps you prepared for every situation that you have to face in the interviews, even if it is considered hard.
Here are 10 ideas that you can include in your preparation that will surely make your preparation solid enough to crack any interviews that you face.
Focus on fundamentals
One of the biggest mistakes students make while preparing for interviews is they try to learn all the advanced stuff before knowing their origins. Try to focus on the absolute basics, be it data structures and algorithms or development rather than trying to grasp insanely complex stuff or advanced technologies. Interviewers do not expect you to know outstretched ideas that cover the width, but they expect a student to know the fundamentals so well that you do not have any conceptual gaps there. Anyone who knows fundamental algorithms would be able to apply them to any unknown problem than the ones who have memorized the complex algorithms that no one has heard of. So focus on the basics and try to prepare from the first principles.
Keep your algorithms strong
SDE interviews have one common aspect of them. They consist of some involvement of DSA. Focus your preparation on knowing algorithms that are asked in interviews and try to constantly apply them to problems of varying difficulty. Regularly solve Leetcode and take part in coding competitions to evaluate your expertise on algorithmic concepts and try to use that as a base for further improvement
Limit your preparation resources
With the availability of a plethora of resources in the form of courses, videos, websites, books, and whatnot, students do not have a precise starting point in their preparation. This is where most students will lose the game as they would keep switching between various resources in an attempt to figure out which one is perfect instead of focussing on the content they have to learn. You can do much better if you limit yourself to one or two core resources and actually understand the concepts and then after gaining a substantial amount of expertise, you can look up different resources for alternate perspectives. Selecting any one resource and focussing on that will immensely help you in making rapid progress in your preparation and get you ahead of your peers who still have not decided whether to watch a video or read a book.
Develop problem-solving abilities
Faang interviewers never ask for a simple solution to the problem given to a student They always ask for different approaches to optimize the code. They want you to know the reasoning behind your written code as to “why” you have come up with your approach and they keep asking “what if” questions to present alternate scenarios and verify whether the said approach would work or not. This is extremely crucial and you need to focus on this type of thinking rather than simple procedural, linear-based approaches to review where you just come up with a solution without knowing why it worked and why something else did not. This problem-solving ability comes with regular repetition of this particular type of thinking and applying it to lots of different and unknown problems which would give you enough confidence to solve any type of question that you would face during interviews.
Learn to communicate your thoughts
One of the most common reasons people get rejected in faang interviews is that they cannot articulate their ideas to the interviewer. You may be an expert at solving complex problems but if you do not know how to explain your thought process at every point, there is no way the interviewer can evaluate your capabilities. If you look at it from the interviewer’s perspective he or she would essentially want a person in the company who can elaborately explain their approaches to solving critical problems to other members. This would ensure that there does not exist any communication gap between employees and senior developers. Moreover, the interviewer sometimes actually emphasizes how you are solving problems than just the correct answer, and whether your thinking frameworks are ideal enough to come up with better solutions or not. Hence communicating your thoughts during an interview is of utmost importance. You can practice this by recording yourself on your phone and improving on those results or by giving mock interviews.
Make a solid resume
A good resume will get you opportunities that nothing else can. This is because it is only through a resume that an interviewer gets to know about your past and whether you are the right fit for the job. Try to make your resume from trusted resources like overleaf and ensure that your resume is ATS(Application tracking system) compliant. This would prevent your resume from getting rejected during shortlisting. Also, keep your resume restricted to one page and try to include more proof of work(projects, internships, achievements…) in your resume rather than you writing about your own abilities.
Make lots of projects
This is one area students tend to not be serious about. Making projects is exceptionally crucial and is evidence of you putting in actual effort. If you are someone without an internship, projects are the only parameter that an interviewer can evaluate whether you are well versed with software engineering principles or not. Do not begin with a major project straight away. Start creating basic projects, keep pushing them on GitHub, and try to gather ideas from them. After this, combine those ideas along with ideas from various other disciplines and then incorporate them into one major project to create innovative results. Try to have at least two major personal projects on your resume which has some sort of impact. If you do not get project ideas, participating in hackathons is also a good alternative.
This would make your resume stand out from the rest. The best possible indication of whether you know something is whether you have worked on it in a system where your work impacts lots of people. Internships in companies guarantee the same. You get to work on projects which are far more scalable and ensure that it impacts a larger user base than personal projects. If you do not have internships, an alternate option is to contribute to open source projects and participate in programs(Gsoc, Mlh, Outreachy,…) that do the same. Contributing to open source could also make you land remote work opportunities. It would also help you network with people from all over the world who are working on similar projects.
Whatever you do, be very good at it
A lot of students put a lot of skills in their resumes but they do not know those skills in and out. This is where they get exposed during interviews. The interviewers constantly ask questions about the details they have mentioned in their resumes. Hence, try to be a master of a few skills and mention them in your resume. This would ensure that whatever questions you are asked, you would trust yourself to answer them without committing any conceptual errors. Develop a holistic and thorough understanding of relevant skills and have a strong command over them such that you can answer those questions that require a deep understanding of concepts with ease.
Give mock interviews
Finally, always try to test your preparation with mock interviews. This would help you become aware of where you could possibly have been going wrong in your preparation. Consequently, working on the feedback from mock interviews would help you eliminate mistakes and make you better prepared than you were yesterday.
If you have an interview coming up, follow these tips, you would surely be prepared enough to ace them easily. Make sure you are consistently following the above-mentioned points. This would give you enough confidence during interviews and you will do much better than you expect yourself to. So keep learning and improving every day.
Have a nice day!
Sharing is caring
Did you like what Krishnaditya Biswas wrote? Thank them for their work by sharing it on social media.
- 3 React JS Resume Points to keep in mind
- How to make a React JS resume?
- 10 Scaler Alternatives To Learn Programming