Job Interviews: How should I prepare system design questions for Google/Facebook Interview? - Quora



In my view there are two components to solving system design questions at interviews:

1) Having enough knowledge and skills to come up with good solutions
2) Using the right process to approach the questions

Probably 1) doesn't need any justification and below I will list a few resources that could be a good start.

However, 2) may seem a bit too abstract. The idea is that at an interview you have 30-40 minutes to answer a question like: "How would you design a search engine", or "Create this hierarchy of classes, which does X".

Obviously, to solve such a question in full, companies need weeks to years and big teams of engineers. So, how on Earth should one person answer the question in 30 minutes.

Usually, such a discussion needs to start at the higher level where the interviewee presents their idea of how the architecture would be structured. Only after that, if the interviewer is ok with the higher level design one could go into more details about how they would tackle specific bottlenecks and other limitations. Most often, the interviewer would lead the discussion in one or another direction based on their goals.

In short, it's important to practice doing that for enough system design problems. Just take a few from the internet and give it a try. Here are a few examples:

1) Design a URL shortening service.
2) How would you design the feature in LinkedIn where it computes how many hops there are between you and another person?
3) If you were to design a web platform for online chess games, how would you do that?

As for some good resources to start with, I would recommend this video lecture from prof. David Malan from Harvard, which covers many useful aspects of designing scalable systems:

Read full article from Job Interviews: How should I prepare system design questions for Google/Facebook Interview? - Quora


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts