Google style interviews are becoming commonplace. If you are in tech and are in the job market you may need to brush up on your skills or revisit some of those things you learned in college 12 years ago (space and time complexity I’m looking at you). The following list was compiled based on this video from Google about how to prepare for one of their interviews:
- Data Structures: Hash tables, Stacks, Arrays, Linked Lists, Trees (construction and manipulation, traversal)
- Algorithms: Dijkstra, A*, etc
- Space and Time Complexity
- System Design
- Object Oriented Programming
- Testing: Unit testing, interesting inputs, corner and edge cases, integration, load and performance, security
- NP Complete Problems: Traveling Salesman and the knapsack for example
- Math: Basic discrete math: Counting, Probability theory, Combinatorics, n choose k
- Recursion
- Operating Systems: Processes, threads, concurrency issues (semaphores, mutexes, locks), resources allocation, context switching, scheduling
- System design: feature sets, interfaces, class hierarchies, distributed systems
- Internet: Routers, DNS, load balancers, firewalls, search