Once you have your foundations it's time to do some mock interviews. There is a difference between solving problems on your own vs in front of someone else. For example:
- Throughout the interview you need to communicate your thought process out loud, verbalize time/space complexity, and collaborate with the interviewer.
- For screens, you may be required to write code in an online collaborative IDE (Coderpad, Codepen, HackerRank, etc)
- For onsites, you may be required to write code on the whiteboard
By the time you do the real interview you want to be comfortable with all the above. As a result, we strongly recommend you do mock interviews before your first real algorithm interview. Here are some great resources for mock interviews:
- Pramp.com -- Pramp is an online platform where people mock interview each other. Each interview is 30 minutes and the questions are about medium difficulty level. You code in an online IDE so it's a great way to get used to that if you've never used one before.
- Interviewing.io -- Do these once you find yourself easily passing Pramp. These interviews are 60 minutes long and the questions are typically harder. The format is almost identical to a real technical screen, so this is excellent practice. The interviewers are paid so you expect a more professional tone compared to Pramp. We strongly recommend you do at least one of these before a real interview
- Friends -- Ask your engineering friends to interview you. If possible, get access to a whiteboard. Whiteboard-ing can be stressful, you certainly want to get some practice solving problems on the board in front of someone.
As you go through these practice interviews evaluate your performance and identify areas to improve. As you start feeling confident, go ahead and schedule the real interviews.
There should be no surprises during the real interview if you've put in the time with CTCI/EPI and done several mock interviews. You may feel some jitters in your first screens/onsites, but this is normal and will go away. Push through and maintain a can-do attitude -- you've got this! Remember to log your performance after each interview. Ideally time your interviews so your top choices are last. This way if you uncover any more gaps you can correct them before meeting with your dream company.
You should now have an idea of where the bar is at and how to get there. It may seem like a lot of work to solve contrived puzzles that ambiguously correlate to technical ability. This may be true -- but this mindset won't help you succeed in this interview. Instead, we hope you find some excitement in solving these algorithm problems. The algorithm interview is like a game. The objectives are clearly defined and all the preparation material is available beforehand. It's up to you to put in the time to win it. Study hard and have fun!
Do these after completing the homework from the previous section on foundations.
- Complete at least 1-2 pramp interviews
- After successfully passing pramp interviews, complete at least 1-2 interviewing.io interviews
- Complete at least 1-2 practice interviews with friends
If you're doing well in your practice interviews you should be ready for your real technical screens!