Mastering the Algorithm Interview for Apps Developers
Welcome to the Interview Loop series where we go over each step of your interview loop.
- Intro to the Apps Developer Interview Loop
- Initial Phone Screen
- Technical Phone Screen
- The Coding Exercise
- The Algorithm Interview
- The System Designs Interview
- The App Specialty Interview
- The Hiring Manager Closing Interview
Remember, while some job interviews may include all these sessions, others might involve a subset. Prepare accordingly.
The Algorithm Interview for Apps Developers is more commonly found in large companies who are looking for well rounded engineers over specific skills.
While less common, startups sometimes deep dive into algorithms questions as well.
This is a bit silly because how often do you deal with binary trees, BFS and quicksort while developing apps? My guess would be never.
But our goal is to prepare you to land your dream job, not to tell how companies should be interviewing you. And in order to do this, you must sometimes be ready to successfully complete an algorithm interview.
This is often the thoughest interview for most Apps Developers. While backend engineers can find themselves working with advanced data structures, frontend engineers can go years without touching any of them. If this is the case for you, you may need a few weeks of preparation to succeed at this. But prepare you can.
Go narrow or go wide
Before studying for algorithm interviews, you should figure out what’s really neweeded for the job you’re eyeing. So jump on Glassdoor or Google and try to find out if what questions you may be asked.
If the company you want to interview with doesn’t probe on algorithms, then save yourself some time and jump to the next chapter.
While reading up interview questions for the company on Glassdoor, you may notice that the company you’re looking at does have an algorithms interview, but only asks one type of question about a specific subset of algorithms. When this is the case, you want to go narrow and study for this topic only.
Other companies can also probe on a much larger (and random) set of algorithm questions. That is the case for large companies like Google, Facebook or Apple. In this case, you need to be much better prepared and go wide when preparing.
Let’s dive deeper into going narrow or going wide.
Narrow preparation
Narrow preparation means preparing for only one or two topics you might expect. It means that rather than being prepared to answer any algorithm question, you should just get very good at what you will be asked.
The best way you can do this is by simply heading to LeetCode, look for specific problem sets, and practice for it.
Ideally, you don’t want to memorize the problem but instead deeply understand how to solve it. The best way to do this is to find 2-3 similar problems and practice on them a few times until you feel quite confident you can solve it in different ways.
Sometimes, developers go through these problems very quickly during the interview, and interviewers have a suspicion that the interviewee knew the question was coming. They’ll go through a 1h algorithm interview in 20min, and questions will run dry. That’s because they’re prepared for this very question, and interviewers will know
So should you worry about getting caught during the interview?
Most likely not. If the questions are online, it’s all fair games. While being prepared inhibits the interviewer’s ability to gauge your problem solving capabilities, you also get extra points for doing deep research on the company, and most companies will appreciate your preparedness.
Wide preparation
Other companies will ask you one out of two hundred questions they have in their question bank. And unfortunately, there’s no way for you to be highly prepared for all of them. This means you must go wide in your preparation.
Going wide takes a lot more time than going narrow. If you want to be prepared for a FAANG type interview, you may need anywhere from week to months to properly prepare. Instead of learning how to solve specific problems, you must instead work on your problem solving abilities and solve enough algorithm problems to start seeing patterns across them that you can reuse across different questions.
LeetCode is still a great platform to prepare and target specific companies. It’s not a bad idea to go premium with them for a couple months and crank through as many exercises as you can.
The best way I found to prepare is to block one hour every day and work through one or two problems. Doing this consistently for a month or two will guarantee you much better preparedness than most other candidates for the job.
Another great resource is a book called Cracking the Coding Interview. Any apps developer who is thinking of getting a job at a FAANG type company should own this book and crack it open when starting their job search. It contains a lot of the questions that you will be asked during wide algorithm interviews, and if you know its content well, you can ensure you will succeed at any algorithm interviews thrown at you.
Conclusion
Once again, preparation is king for this interview. This is the one session you won’t simply be able to “wing” like other ones in this guide.
Allocate a few weeks to months for preparation. Practice makes perfect, and solving a lot of algorithm problems will make you as close to perfect as you can be.
For most people, this will be the hardest interview. But if you prepare well and you’ve succeeded at all the interviews before this, you might already be closer than ever to your dream job.