當前位置:首頁 > 公眾號精選 > 架構師社區(qū)
[導讀]經常會有同學問我:“我感覺我的知識非常凌亂,該如何讓自己的知識成體系?”今天我們就來好好盤一盤這個問題。話不多說,發(fā)車!深度VS廣度每個人在想要開始認真學習的時候,一般都會在網上搜索,需要看哪些書,學習哪方面的知識,然后會找很多視頻教程,或者買很多書,信心滿滿,打算大干一場。其實...


經常會有同學問我:“我感覺我的知識非常凌亂,該如何讓自己的知識成體系?”

今天我們就來好好盤一盤這個問題。

話不多說,發(fā)車!

深度 VS 廣度

每個人在想要開始認真學習的時候,一般都會在網上搜索,需要看哪些書,學習哪方面的知識,然后會找很多視頻教程,或者買很多書,信心滿滿,打算大干一場。

其實有關計算機體系的基礎知識面掰掰手指也就幾種:計算組成原理、操作系統(tǒng)、計算機網絡、數據結構。

基本上非科班出身的小伙伴都會缺少對基礎知識面的學習,這個是基石,需要補上。當然科班出身的沒學好的也很多,也需要補。

然后還需要學習:關系型數據庫、非關系型數據庫、常見框架、常見中間件。

這一點我相信大部分人都會學。比如MySQL、Redis、Spring、SpringCloud、RabbitMQ等等,因為這是日常工作上經常會使用的東西,所以都會主動去學。

還有一些語言我就不提了,這屬于工具,工具用的溜編碼效率才會高,但是也不能僅僅浮在語言表面,像 Java 你好歹也得了解下 JVM,比如看看周志明老師的《深入理解Java虛擬機》。

以上提到的這么些點都需要我們去學習。

然后問題就出現了:每個點都淺嘗輒止還是死磕到底?

我建議的選擇:雨露均沾,也就是先廣度再深度。

其實不僅僅是計算機領域,在很多其他領域也都一樣,你需要把你的知識面鋪廣,你才能有機會走的更遠。

當你不知道一樣東西的時候,你打破腦袋都想不到它。無中生有?不存在的!

同理,只有當你了解方方面面的知識,在遇到一個問題,或看一段奇怪的代碼,你才能聯想到那個知識點,才會有豁然開朗的感覺。

比如我之前寫的 Dubbo 源碼里面的一段奇怪代碼,把一個 state 從 switch 里面抽出來單獨成一個 if 判斷:認真談談如何建立知識體系沒有相關的知識你想不到這會涉及到字節(jié)碼的實現:if 和 switch 字節(jié)碼層面實現的不同。然后再深入到 CPU 的分支預測。

沒錯,就這一段代碼穿過了 JVM 到達了 CPU 執(zhí)行層面的優(yōu)化思想。你要是不知道這些,你壓根就不會想到這種寫法。

所以我們優(yōu)先廣度。

前幾天看周志明老師直播的時候,周老師提到了金字塔理論。

認真談談如何建立知識體系
也就說我們的底部要廣,頂部才會尖,先廣才能尖。

有了廣度知識的支撐,我們才有能力且更加高效、快速地深入。

究其原因是因為計算機體系的知識點是連通而不是分散的,你寫的程序必定運行在硬件之上,必定受操作系統(tǒng)管理,必定要運用到各種數據結構與算法,絕大部分會涉及到網絡通信。

所以我們不是無腦廣,我們是選擇性的廣。當你廣到一定程度會有一種感覺,一種從上到下通透的感覺。

然后你才有能力去選擇一個方向深入研究,最終成為上面金字塔般的大神。

更高效的學習

明白了先廣度學習之后,我們再來聊聊如果高效的學習。

系統(tǒng)的學習我推薦看書

但經常有同學說,為啥每次我看完一本書,然后就沒有然后了,啥都沒記??!

我拋磚引玉,介紹下我的看書方式。

我看書會看多遍。

第一遍快速瀏覽

雖說看目錄可以得知書籍的大概知識點,但是幾個字不可能涵蓋一章的所有知識,所以我會快速的過一遍,知曉這本書講述了哪些重要的知識,到哪個深度,一些重要的點我會先把書頁折起來,電子版我會記錄書頁。

看完第一遍后,如果對我而言是畢竟陌生的知識點,我肯定會讀第二遍。但一些畢竟熟悉的知識點我會判斷是否值得繼續(xù)看第二遍。

第二遍開始做筆記

如果選擇看第二遍,我就會開始仔細的讀,同時會記錄筆記。

我不喜歡把筆記記錄在書上,因為這樣之后復習還得翻一遍書,效率很低。

我喜歡在在線文檔上劃分出各個知識點,然后會將不同書籍對同一個知識點的不一樣的理解記錄在一起,這很有意思,因為每個作者理解的角度都會有所不同,可以讓你從更多的角度去理解這個知識點。

并且在復習的時候,我可以針對某個知識點快速找到所有相關的知識,這不香嗎?

好了,沒有第三遍,我一般讀兩遍這本書就不看了,因為精華都被我記錄在筆記上了,復習的時候我只要針對筆記看就行了,舒服舒服。

所以記錄筆記很關鍵。

輸出

緊接著還需要輸出,因為向別人說出來是不一樣的。

你在說出來的時候會發(fā)現自己的理解漏洞,會去查資料補上它。

你在說出來的時候會注意到細節(jié),你會糾結用詞,是用“一定”還是“大部分”?這有很大的差別,所以你會扣細節(jié)。

你輸出的知識點會被別人看到,別人可能會質疑你,要與你擊劍,這又會迫使你加深對這個知識點的理解。

在哪些好呢?我建議你在知乎上寫。

知乎上程序員多,大神多,噴子多,人多就容易碰撞,讓你成長更快。我個人覺得知乎上對知識細節(jié)理解類文章質量還是很高的,基本上很多都通俗易懂。

為什么不推薦一些對口博客呢?.....自行體會吧。

最后

當你有了廣度并且有了輸出,漸漸地你的知識體系就建立起來了,然后就可以往深度發(fā)展了。

不過要切記,塔尖不是一日而起的,唯有堅持

不要拈花惹草,當你學并發(fā)的時候就把并發(fā)學完,不要并發(fā)學學,Spring學學。

不要做朝三暮四的渣男


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
關閉
關閉