谷歌onsite面试题纲
Here is what each of your five interviews will focus on:
- Coding and algorithms
- Coding and algorithms
- ML questions
- System design
- General software engineer interview
Sample topics might include:
Coding:
- Write clean, bug-free code that properly handles edge cases.
- Use proper syntax, relevant data structures & language features appropriately.
- Avoid writing pseudo-code unless directed to do so.
Algorithms and Data Structures:
- Big-O analysis of run-time complexity for known or created algorithms.
- Sorting: Know at least one n*log(n) sorting algorithm, preferably two (ex, quicksort and mergesort)
- Hashtables and heaps
- Trees Implementation:
- Binary trees, n-ary trees, and trie-trees.
- Balanced binary tree, whether it's a red/black tree, a splay tree or an AVL tree
General Software Engineer Interview:
- The coding and algorithm interviews focus more on coding, while the general software engineering interviews are more broad, consisting topics ranging from coding, algorithms, data structure to math, CS fundamental, and problem solving.
- Mathematics: counting problems, probability problems, and combinatorics
System Design Preparation Material:
- Review design patterns, class structures, caching and scalability.
- How you would architect a system from frontend to backend?
- Assess a candidate's ability to combine knowledge, theory, experience and judgement toward solving a real-world engineering problem.
- Sample topics include: features sets, interfaces, class hierarchies, distributed systems, designing a system under certain constraints, simplicity, limitations, robustness and tradeoffs.
- You should also have an understanding of how the internet actually works and be familiar with the various pieces (routers, domain name servers, load balancers, firewalls, etc.).