認(rèn)真談?wù)勅绾谓⒅R體系
時間:2021-10-20 16:48:23
手機看文章
掃描二維碼
隨時隨地手機看文章
[導(dǎo)讀]經(jīng)常會有同學(xué)問我:“我感覺我的知識非常凌亂,該如何讓自己的知識成體系?”今天我們就來好好盤一盤這個問題。話不多說,發(fā)車!深度VS廣度每個人在想要開始認(rèn)真學(xué)習(xí)的時候,一般都會在網(wǎng)上搜索,需要看哪些書,學(xué)習(xí)哪方面的知識,然后會找很多視頻教程,或者買很多書,信心滿滿,打算大干一場。其實...
經(jīng)常會有同學(xué)問我:“我感覺我的知識非常凌亂,該如何讓自己的知識成體系?”今天我們就來好好盤一盤這個問題。話不多說,發(fā)車!
深度 VS 廣度
每個人在想要開始認(rèn)真學(xué)習(xí)的時候,一般都會在網(wǎng)上搜索,需要看哪些書,學(xué)習(xí)哪方面的知識,然后會找很多視頻教程,或者買很多書,信心滿滿,打算大干一場。其實有關(guān)計算機體系的基礎(chǔ)知識面掰掰手指也就幾種:計算組成原理、操作系統(tǒng)、計算機網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)。基本上非科班出身的小伙伴都會缺少對基礎(chǔ)知識面的學(xué)習(xí),這個是基石,需要補上。當(dāng)然科班出身的沒學(xué)好的也很多,也需要補。然后還需要學(xué)習(xí):關(guān)系型數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫、常見框架、常見中間件。這一點我相信大部分人都會學(xué)。比如MySQL、Redis、Spring、SpringCloud、RabbitMQ等等,因為這是日常工作上經(jīng)常會使用的東西,所以都會主動去學(xué)。還有一些語言我就不提了,這屬于工具,工具用的溜編碼效率才會高,但是也不能僅僅浮在語言表面,像 Java 你好歹也得了解下 JVM,比如看看周志明老師的《深入理解Java虛擬機》。以上提到的這么些點都需要我們?nèi)W(xué)習(xí)。然后問題就出現(xiàn)了:每個點都淺嘗輒止還是死磕到底?我建議的選擇:雨露均沾,也就是先廣度再深度。其實不僅僅是計算機領(lǐng)域,在很多其他領(lǐng)域也都一樣,你需要把你的知識面鋪廣,你才能有機會走的更遠(yuǎn)。當(dāng)你不知道一樣?xùn)|西的時候,你打破腦袋都想不到它。無中生有?不存在的!同理,只有當(dāng)你了解方方面面的知識,在遇到一個問題,或看一段奇怪的代碼,你才能聯(lián)想到那個知識點,才會有豁然開朗的感覺。比如我之前寫的 Dubbo 源碼里面的一段奇怪代碼,把一個 state 從 switch 里面抽出來單獨成一個 if 判斷:


更高效的學(xué)習(xí)
明白了先廣度學(xué)習(xí)之后,我們再來聊聊如果高效的學(xué)習(xí)。系統(tǒng)的學(xué)習(xí)我推薦看書。但經(jīng)常有同學(xué)說,為啥每次我看完一本書,然后就沒有然后了,啥都沒記?。?/p>我拋磚引玉,介紹下我的看書方式。我看書會看多遍。第一遍快速瀏覽雖說看目錄可以得知書籍的大概知識點,但是幾個字不可能涵蓋一章的所有知識,所以我會快速的過一遍,知曉這本書講述了哪些重要的知識,到哪個深度,一些重要的點我會先把書頁折起來,電子版我會記錄書頁。看完第一遍后,如果對我而言是畢竟陌生的知識點,我肯定會讀第二遍。但一些畢竟熟悉的知識點我會判斷是否值得繼續(xù)看第二遍。
第二遍開始做筆記如果選擇看第二遍,我就會開始仔細(xì)的讀,同時會記錄筆記。我不喜歡把筆記記錄在書上,因為這樣之后復(fù)習(xí)還得翻一遍書,效率很低。我喜歡在在線文檔上劃分出各個知識點,然后會將不同書籍對同一個知識點的不一樣的理解記錄在一起,這很有意思,因為每個作者理解的角度都會有所不同,可以讓你從更多的角度去理解這個知識點。并且在復(fù)習(xí)的時候,我可以針對某個知識點快速找到所有相關(guān)的知識,這不香嗎?好了,沒有第三遍,我一般讀兩遍這本書就不看了,因為精華都被我記錄在筆記上了,復(fù)習(xí)的時候我只要針對筆記看就行了,舒服舒服。所以記錄筆記很關(guān)鍵。