My Facebook Android Interview Experience | Preparation Strategy
By: Samyak Jain
Tags: Facebook, Android, Preparation, Interview, Experience

My preparation Strategy:

Data Structure & Algorithm was never my forte. I used to struggle with ever the easiest questions when I started. In fact, I didn’t have proper knowledge of time complexities. I realized that I will have to start from the basics, so I started with the theory first. Understanding the theory on asymptotic notation, stack queue tree graph etc.

Once I finished reading the theory and understanding the concept, I started solving problems on LeetCode.

I started with the type “easy” questions in a topic-wise fashion which means if I am doing Arrays or Trees, I will do back to back questions from the same topic. It will not only get you in the rhythm but also develops a strong grip on that topic and also motivates you to keep grinding on Leetcode ;)

Once I solved enough easy questions from the major topics, I started solving top frequently asked questions in the Facebook interview which is available on Leetcode. I solved all the easy and medium questions from there.

I focused on hard problems only when it is a subsequent problem of the previous problem. For example, if I was solving a Buy and Sell stock problem of difficulty level easy, then I would solve Buy and Sell II of difficulty level medium and so on till I encountered the hard problem on the same topic. I did this because some interviewer asks one problem and increase the difficulty gradually instead of asking 2 different problems.

It is better to focus more on easy and medium problems than on hard problems because you are practising for cracking the interview and not to win the top-coder challenge. You will not be asked to invent a graph algorithm.

Also, keep an eye on the clock and target to solve two medium questions in 45 mins before the interview. If not that, try to code the optimal solution for the first one and code an acceptable solution for the second problem. An acceptable solution is not the best solution but better than the brute force approach. Time complexity is equally very important. Every problem you practice, try to understand the time complexity calculation as well.

Once you have solved the problem, try to figure out if that is the optimal solution. Go to discuss section on Leetcode for the same problem, you will get the optimal solution posted by someone and sometimes you will also get a chance to get know the thought process for approaching the solution.

Since I knew that I have virtual onsite and I will have to code in one of the online editors which were provided beforehand, I practised on that as well so as to get used to the environment. There will be no autocomplete to run and test your code. It is better to practice on it so as to develop skills of dry running your code with different test cases. If your interview is going to be in person and not virtually, practice on the whiteboard.

Preparation Material:

Preparation Tips for System Design Round:

First of all, make yourself thorough with android basic concepts and fundamentals. You are not required to know the internal implementation details of the components but . Go through App Fundamentals and Developer Guides.

Read about different architecture like MVVM, MVP. Practise on designing different screens of famous apps, think about how APIs will interact, how the data will be stored, what all things that you can do asynchronously. Once a basic app design is ready think about these 6 topics and improvise your design or your strategy to improve the app:

Memory Consumption Battery Consumption Bandwidth Consumption Scalability Persistence Reliability

Watch Performance matters videos

Behavioural Interview:

People take this round very lightly. But this round is equally important. Go through the behavioural questions from Leetcode community prepared questions, remember all the incidents from your work experience where you have made a decision, led a project, made a mistake, given negative feedback. Follow the STAR approach, Situation, Task in hand, Action was taken and Result achieved. Also, think about your future career path and why would you want to join Facebook.

Remember that there is no need to give a made-up answer, be honest and practice behavioural interview questions.