10000 小時法則

根據《異類-不一樣的成功啟示錄》一書中的描述,要想在任何一個領域當中稱為專家,都必須經過 10000 小時的刻意練習。具體的方法包括:
Chunk it up
将待學習的領域切分為細化的知識點。在資料結構和算法領域,必須掌握的包括:
資料結構
Array
LinkedList
Stack/Queue
PriorityQueue
HashTable
Tree/Binary Tree/Binary Search Tree
Heap
Skip List
Graph
Trie Tree
BloomFilter
LRU Cache
算法
遞歸
排序
二分查找
搜尋
雜湊演算法
貪心算法
分治算法
回溯算法
動态規劃
字元串比對算法
Deliberate practicing
刻意練習。刻意地,反複地練習相關領域的知識點。在初期地時候,它可能帶給你的直接感受是:不舒服、不爽、枯燥,但是隻要能夠堅持下來長期練習,必定能夠獲得成功。
Feedback
獲得回報。學習相關領域時,在擷取回報時需要注意如下的幾點:
及時地擷取回報
主動型回報(主動擷取)
閱讀别人寫的代碼(Github、Leetcode)
Gogole
被動型回報 (等待高人給予指點)
Code Review
Big-O Complexity Chart
如下圖,可以直覺得看到不同的時間複雜度的漸進關系:
Common Data Structure Operations
下圖展示了常見的資料結構中,對應的常見時間和空間複雜度:
Array Sorting Algorithms
下圖展示了常見的排序算法的時間和空間複雜度: