Nikolay is a web developer who attended a Facebook coding interview. In Facebook interview usually divided into 4–5 parts: coding interview, design interview, coding interview and behavior interview. Nikolay shares his experience at a Facebook meetup for web developers. He explains the goals of a coding interview: How you think and tackle hard problems, how you consider engineering trade-offs and how you communicate in English about technical problems. He also gives his tips on how to get a job at Facebook.
Companies Mentioned
Hello there, my name is Nikolay, I am a web developer.
In this article, I want to share my experience of visiting “Interviewing at Facebook: Crush your coding interview” meetup.
In Facebook interview usually divided into 4–5 parts.
Interview parts
Coding interview(Online)
Coding interview
Design interview
Behavior interview
Goals of coding interview
How you think and tackle hard problems
How you consider engineering trade-offs(memory vs time)
How you communicate in English about technical problems
Limits of what you know
Don’t feel bad if you don’t get all the answers right
Data Structures and algorithms
Implement, not memorize
Discuss complexity(space and time trade-offs)
Common library functions are fair game
Specific questing about concepts are rare
Unless you claim to be an expert or need the concept
Format of a coding interview
Intro
Learn about your interviewer and share your past experiences
Coding
Majority of the time spent completing coding questions
Don't worry if the interviewer stops you in the middle of a question to move on!
Questions might have to follow up components based on your implementation
Be prepared to test your code, discuss how it works and analyze its performance
Phone screens use an online collaborative editor(but we don't run any code!)
Steps to a successful interview
Repeat the question back to your interviewer to ensure you fully understand what’s being asked.
Ask questions about edge cases.
Take your time to think about a solution before coding
Start coding while explaining your entire thought process. It's encouraged to talk out loud. Don't worry if you run into trouble! Feel free to ask your interviewer for a hint.
Run through your solution with test cases. Continue talking out loud.
Iterate - how can you do better with runtime/memory.
A few examples of coding tasks
Given an array in which every number is between 1 and N, determine if there are any duplicates(Task level - Easy).
Given a tree, determine if it is a binary search tree(Task level - Medium).
Example of coding interview
Final Tips
Practice on a whiteboard
Leave whitespace between questions
Time yourself
For phone screens, go somewhere quiet with a good internet connection