Programming
- Algrithom: Time/Space Complexity, Sorting, Searching, DP
- Data structure: HashMap, Stack, Queue…
Operating System
- Process/threads management, Scheduling concurrency
- Virtual Memory, mutex, Semaphore
- Networking, Distributed System
Database
- ACID
- SQL vs NoSQL
数据结构
- 栈 Stack
- 队列 Queue
- 链表 Linked List
- 数组 Array
- 哈希表 Hash Table
- 二叉树 Binary Tree
- 堆 Heap
- 并查集 Union Find
- 字典树 Trie
算法
- 二分搜索 Binary Search
- 分治 Divide Conquer
- 宽度优先搜索 Breadth First Search
- 深度优先搜索 Depth First Search
- 回溯法 Backtracking
- 双指针 Two Pointer
- 动态规划 Dynamic Programming
- 扫描线 Scan-line Algrithom
- 快排 Quick Sort
Coding 准备
-
刷题
- 前200: 熟悉语法,熟悉算法
- 第一遍: 分知识点总结,思考如何到最优解
- 第N遍: 经典、高频、重点
-
阶段
- 不熟悉
- 一般,有思路
- 熟悉,可以反应出最优解
-
系统设计
- 高频系统设计题目
- 如何设计TinyURL
- 如何设计Recommendation System
- 如何设计NetFlix
- 如何设计WhatsApp/weChat
- 如何设计LinkedIn 和 Delay Scheduling
- 如何设计Google三驾马车
- 如何设计大数据平台
- 如何设计Uber
- System Design CheatSheet: https://gist.github.com/vasanthk/485d1c25737e8e72759f
-
面试心态
- 顺境: 自信谦虚,不自大,激发面试官的挑战欲望
- 逆境: 沉着冷静,多与面试官交流,问hint,至少写出working solution