Being invited to any job interview is exciting but sometimes stressful. You don’t know what to expect, how to prepare, and if you’re good enough to get the job you’ve applied for.
Getting an opportunity to interview with Facebook is on another level. It requires special preparation. Because it’s a sought-after position by many developers, there is a rigorous interview process.
With Facebook, there are many parts of the technical interview process, and the interviewer will review your code and skills multiple times.
Luckily for you, this guide from AlgoMonster will give you a good start on preparing for a Facebook coding interview.
Your initial technical interview will be with a Facebook engineer and is almost entirely a coding interview. This interview will ensure you have the base skills required to progress in the interview process. The initial interview will most likely be remote using a shared session on your computer.
This portion of the interview process will last around one hour. It will involve a brief introduction of the engineer and a brief introduction of yourself and your career goals.
The interviewer will dedicate the remaining time to a coding interview. The time could be anywhere from 30-45 minutes.
You will get one or more coding tests or questions to complete. The expectation is that the questions are easy enough to achieve in the allotted time.
The questions will not be trick questions, and you can solve them in any way you see fit. However, the interviewer may add restrictions or requirements to see something specific in your skillset as the interview progresses.
As with all coding interviews, you should be talking and explaining what you’re doing and why you’re doing it almost the entire time. You’re there to impress the engineer and show your understanding of the code you’re writing.
- Spend time preparing as this is a test. You need to prepare for any test, and this is no different. You’ll want to spend anywhere from 4 to 12 weeks preparing, whether you’re a junior or senior developer.
- Practice answering coding interview questions online, as many as you can and as often as possible before the actual coding interview.
- Only practice with simple text editors. You will not get a development environment to work with during the coding interview.
- Make sure you practice everything under a time crunch. For example, the coding portion of your interview will be 30-45 minutes. If you can’t complete the code in that short amount of time, it will be a big problem during your coding interview.
It is better to have non-optimal code than it is to have no code at all. So get working code and then improve it with the extra time you have left.
- Study algorithms and data structures. These are common interview questions or topics n any coding interview. Review data structures like lists, arrays, hash tables/maps, stacks, queues, graphs, trees, and heaps. You’ll also want to review sorts, searches, and traversals. Finally, make sure you understand recursion and iterative approaches.
- Keep talking. The coding interviewer wants to understand what you’re doing and your reasoning. Therefore, you must always keep talking and explaining. It’s a critical component of any coding interview.
- Use your best-known programming language. Don’t try to impress the interviewer with all the different programming languages you know. Instead, pick your best one and stick with it throughout the entire process.
- Fix bugs before the interviewer sees them. You should have back and forth with the interviewer. However, it would be much better to find, fix, and explain bugs before the interviewer asks you about them.
- Listen to the interviewer. If you are getting stuck or going down the wrong path, they will likely ask you some leading questions. Ensure you understand what and why they’re asking you something and just your code or approach. Otherwise, be prepared to explain why you don’t want to do that.
If you succeeded in your initial facebook coding interview, FaceBook would invite you to an onsite meeting. This onsite interview may involve multiple sessions with different interviewers, many of whom will be developers.
Each interview will ask or test you different things, but each may involve some form of a coding interview. There are three possible types of interviews. You may be involved in more than one interview of the same kind, so you could even be involved in 2, 3, or 4 coding interviews on the same day.
Onsite coding interviews will ask more complex questions than your initial coding interview and delve further into your knowledge and understanding of the questions asked. You will still have around 30-45 minutes for each coding session, though that may involve more than one question.
The preparation and advice for this coding interview are precisely the same as your initial coding interview. The only difference here is the complexity of the questions.
The onsite design interview will often not have actual code but will be testing your understanding of design principles. The interviewer will give you one or more design problems. You will need to resolve and explain why your approach is the best option.
- Review design blogs that look at large companies like Facebook and the initial issues they faced. Look at the solutions or changes these large companies made and understand what failed and why their new design improved the process.
- Study the entire design process, what it is doing, why it is doing it, who is using it, what problems they could face, how you can make it better. Make sure you can answer these questions for various design issues, especially as they relate to Facebook.
- Ask questions required for an effective design. If the interviewer gives you a vague design problem, make sure you ask them all the questions you need to develop an effective solution. The questions are expected and show you are confident in gathering design requirements.
The interviewer will use the behavioral interview to better understand you as a developer, how you work with teammates, and whether you’ll be a good fit with Facebook teams.
It also gives you a final coding interview question to solve, especially if there are additional questions about your coding skills.
- Review your resume and make sure you can talk on all topics and events listed. If the interviewer asks you about something specific in your resume which you can’t answer, that will be a red flag for them.
- Have good answers for basic questions like “Why do you want to work at Facebook?”, and “Why did you become a software engineer?”.
- Make sure you can flesh out your answers with examples. Anything the interviewer asks you, make sure you back it up with when it happened to you and what you specifically did, as well as the outcome.
So review typical interview questions and then write down what your answer could be along with an example specific to you.
- Be genuine, kind, and humble. Facebook is looking for excellent team members and not outstanding individual contributors. Facebook is too big for you not to work within a team or have any ability to mentor junior or new team members.