如何构建知识体系
大家好,我是Z哥。
不知道你有沒有過這樣的感覺,那些比你更厲害的人,在一件事中往往可以輕易地從一個「點」延展出一條「線」,甚至一個「面」的知識點。
對我們真實感受的沖擊是,在大局觀上被碾壓,相比之下覺得自己總是考慮不周,甚至考慮的東西完全是錯的。
其實這里的區別就在于我們在某個領域內的知識體系有多么健全。
舉個例子,與近些年大火的Service Mesh相關。如果現在你恰巧負責進行技術選型,你會選istio還是Linkerd?還是Kuma、SOFAMesh、ServiceComb?
知識體系的健全性高低在這種「開放性」問題中表現的特別明顯。
那么如何才能像那些厲害的人一樣,打造自己的知識體系,并且讓它更健全呢?這就是我今天想要和你聊的。
在我們當下這個時代,打造知識體系變得更容易,但從另一個角度來看,同時也更難了。
容易的是獲取信息的途徑更多了,收集信息的效率更高了。難的是大量的信息是碎片化的,如果無法納入到自己的知識體系中,那么大概率只是看過算過而已。
常見的一個場景,你坐地鐵的時候刷著手機,前一秒可能還在公眾號看某篇技術博文,隨后就被朋友圈的社會熱點新聞給吸引,看到一半,又收到朋友轉發來的一篇文章讓你瞅瞅。
過幾天,這些信息中的十有八九就被你拋到九霄云外去了,好像這些就沒出現過一樣。
久而久之,不但你的深度思考能力喪失了,而且整體的知識使用效率也在下降。
你的深度思考能力之所以喪失,是因為被一些文章中所得到的結論給替代了(先不論結論的準確性如何)。往自己大腦里丟進去的都是「因為A所以B」、「只要C就能D」、「有了E才能F」、「出現G即說明H」之類的“成品”信息。
知識使用效率降低的原因在于,不同信息之間的跨度太大并且關聯性幾乎為0,導致你接收到的每個信息都是孤立的,記都記不住,更別說后續的運用了。
你想象一下,給你一個長度為100的數組,里面是亂序的數字(1、873、56、……)更好記還是有一定規略的數字(101、1002、10003、……)更好記?
不過,哪怕是碎片化時間我們也有辦法可以壓榨它的價值,這個后面再說。我們先來說說大家在構建知識體系時的兩個普遍誤區。
01? “讀萬卷書,行萬里路”
這段諺語是加引號的,潛在的意思其實是以「知識的收集為中心」的學習理念。
說實話,Z哥我自己曾經有很長一段時間也陷在這個誤區里,初入職場的前兩年也還沒從這個誤區里走出來。
可以說,“讀萬卷書,行萬里路”這段話對陷入這個誤區的人來說只看到了里面的兩個“萬”字。
每天熱衷于各類知識的收集,比如在微信、知乎上看到好的回答就想點收藏,但收藏之后又不會多看一眼,潛意識里不愿花較多的時間在知識的消化上。但是又偏偏是收集成癮,最終導致收藏夾大到自己都不想點開,最終在知識的海洋里迷失自我,看著很努力,實際是碌碌無為。
不管是我在知乎、頭條、還是公眾號的文章總是收藏大于點贊,也能看出這個端倪。(個人推測,不一定對,如果你有不同的想法可以留言告訴我哦)
這里的原因以我自己的體會來說就是:整理知識缺少了那種剛接觸到一個未知的新知識時的快感,后者真的就如發現“世外桃源”一般的新奇,而前者卻像是做家務那般的無味。
02? “實踐是檢驗真理的唯一標準”
這句每個人都耳熟能詳的名言,很多人的理解也是偏了。
比如有一部分程序員小伙伴拿到一個任務,就開始palapala代碼敲起來,遇到不明白的地方的確也很有求知欲,會調試進源碼看看里面是怎么實現的。
看似學習的很“深入”,實則是一個走到哪算到哪的行為過程。很有可能在半路才發現“哦喲,原來是路走錯了,此路不通。”。
這些構建知識體系的誤區背后其實就缺少一個東西作為指引,我將它稱之為——“主干”。
那么什么才算是“主干”呢?
Z哥認為能夠用來作為“主干”的主要是基于以下三種概念,在不同的領域可能有些不同。
范式。
定理。
本質。
具體的定義就不展開了,可以自行搜索,會有一些區別。但是它們有一個共同點,就是某個范式、定理或者本質,其實就是得到該領域內一部分群體公認的一個共識。這是確保你構建的知識體系不跑偏的基礎。
確定了“主干”之后,然后再開始往外延展,讓它開枝散葉,形成一個相對完整的體系。
用「道」和「術」的理念來說,“主干”就是「道」層面的事情,而很多具體的方式、方法、理論,包括前面提到的兩個誤區中的行為都屬于「術」的范疇。
「術」是基于場景而來的,所以理論上數量是無限的。只是單憑記憶力去記這些成千上萬的「術」,哪怕你記得住,也用不起來。這和讀書時候的死記硬背也能考出不錯的成績也不同,實際生活中的場景是千奇百怪,總有些不同,是無法預料的。
所以,我們應該先把“主干”確定好,再基于它延展“支干”。
這就好比,你打算周末做一頓菜給父母吃。首先你得先確定你要做什么菜,菜單得先出來,哪怕就一、二個菜。
而不是看到家里的冰箱里有什么就抓起來搞個大雜燴。
比如,你想做個佛跳墻,那么你就去網上搜尋做佛跳墻的文章,收集所需的原料和比例、搞清楚做的幾道工序等等,然后再動手。當然,你也可以選擇換一個菜“我去,佛跳墻太復雜了,我還是做番茄炒蛋吧。”。
其實我們在日常學習的時候出現的誤區就類似于:知道了佛跳墻需要鮑魚后就馬上開始煮了,中途才發現缺了這個、缺了那個。
那么具體該如何從頭開始構建自己的知識體系呢?
主要分為五個步驟。
01 ?找共識(范式or定理or本質)
這其實就是“建主干”的過程。
對于一個對你來說是陌生的領域,有一個笨辦法就是,找到這個領域內被奉為經典的著作,并且多讀幾本在不同時期對同一個概念的解讀。
從中發現那些不變的理念、思維模式或者視角,這就是“主干”。而那些隨著時間的推移發生變化的部分知識其實是意味著它的“支干”正在更加的貼近現實,是一個不斷糾錯的體現。
如果開始比較難,可以選擇一本《XX導論》、《XX概論》之類的書先打底,對這個領域內的一些基礎的知識,專有名詞有一些了解。
做好了這個步驟,可以確定下來幾個大方向。這里程序員小伙伴居多,舉個「構建分布式系統知識體系」例子(后續會一直用這個例子)。
假如,我們經過一番了解之后,確定了分布式系統的“主干”是傳統計算機“主干”的延伸,也分為存儲和計算,但是多了一個協調和管理方向。
好了,第一個環節的工作就完成了。
這個環節一定要給自己足夠的整塊時間,這是重中之重。否則是很難總結和提煉出一些抽象的東西的。
當然,這里有一個更高效的辦法,就是請教這個領域內的建樹明顯高于你的專家。通過人來獲得你要的信息可比你自己去總結提煉高效多了。
可能你會擔心,萬一對方說的是錯的呢?我的觀點是,假如連本質都錯了,這個人大概率也成不了專家吧。
“主干”搞定了,接下去就是確定一些已知的“支干”。
02? 不斷在成長區擴張
如果說第一環節還可以通過請教專家走一下捷徑,那么第二環節就無捷徑可走了。
對很多人來說,在新鮮感的支撐下,短期還能往前走一走,長期堅持下去的人卻不多。
我們知道,學習有一個「舒適區」理論。待在自己熟悉的地方(舒適區),是學不到東西的,你只是在不斷重復;離舒適區太遠(危險區),也很難學到東西,因為你完全不懂。
走出舒適圈是痛苦的,根本原因是因為你要靠自己將「不確定性」的事物變成「確定」的。這個時候不像你去去便利店買個東西,只要一手交錢一手交貨,其他的不確定性,社會機制已經幫你解決了。你不用擔心店員收了錢不給你東西,也不用擔心他不認識你支付的錢等等。
讓自己能持續走出舒適圈的關鍵在于,能不能沿著舒適區的邊界,找到一個讓你平衡的「成長區」,在這里探索,往“主干”上添加“支干”。
比如,當你開始在「分布式存儲系統」這個方向往外延伸的時候,不要去研究什么Paxos算法,甚至是它的證明過程,這個對我們大部分人來說就是直接從「舒適區」跨越到了「痛苦區」,自然很難堅持下去。更好的辦法應該是去找一個基于Paxos算法實現的存儲系統,將「數據一致性」的常見場景實際模擬一下看看,會發生什么情況。
經過不斷地在成長區往主干上添加支干之后,我們的知識體系就變成下面這樣了。(用存儲來拋磚引玉一下)
隨著“支干”的逐漸豐滿,我們開始逐漸進入越來越細節的地方,這個時候碎片化的時間在這里可以利用起來了。
碎片化的信息雖然不能用來「搭建」主干,但是用來「更新」和「補充」支干卻非常適合。因為在主干和一些常見的支干確定之后,此時你接收到一個碎片化信息可以很快速的知道他屬于哪一個支干下面或者該不該新起一個新的「根支干」。
整個第二環節就是體系化過程中最耗時耗力的環節。
接下去再在支干上弄上一些“觸角”,像樹上的“葉子”、“花”一樣,讓它與外界建立更多的連接點。
03? 建立聯系
我將建立聯系的方式分為兩種類型,“戴面具”和“做捆綁”。
先說說“戴面具”。比如3.1415926這個數字本身是沒什么意義,但它和圓周率聯系起來,就變得有意義了。圓周率就是這個數字的“面具”,讓你可以更高效的想起它,認出它。
還有我之前的文章《我珍藏5年的10倍速閱讀法》中也舉過類似的例子。
什么是“車”?你腦子里可能會先想起,馬路上在開的汽車,又會接著想起它有4個輪子,有車燈,能鳴笛。然后自行車也算是車,不過它只有2個輪子。以及三輪車、大巴車、面包車等等,甚至是英文「car」、「車牌」、「變形金剛」這些。
ZacharyZF,公眾號:跨界架構師我珍藏5年的10倍速閱讀法
“做捆綁”的定義主要是用于兩個知識體系之間,它是一個升維的系統化過程。就是從更宏觀的角度,看到這整個知識體系與外界的關系。
因為,孤立的知識點是沒有價值的,也不會長存。所以由大量知識點組成的知識體系也不會是孤立存在的,它必然與其它的知識體系之間存在或多或少的共通之處。如果在用到其中一個知識體系的時候,順帶能牽出另一個知識體系,運用知識的效率是事半功倍的。
“做捆綁”的方法我在之前的《讀再多書都沒覺得自己變強?試試我這“5年陳”的方法》有具體展開,這里就不贅述了。
經過這個環節之后,我們的知識體系變成下面這樣了。
這個環節中還有一些小細節可以留意一下。比如,
遇到重復的知識,根據「奧坎姆剃刀原則」保留最簡單的那個。越簡單,越接近本質。
遇到相反的兩個觀點,不要帶著「二元思維」去判斷到底哪個是正確的。因為只要各自的邏輯只要自洽,可能兩邊都是正確的,只是視角不同。
04? 內化
一個知識體系要能夠更好的為你所用,離不開內化這個動作,否則只是停留在紙面上的一份文檔而已。
而想要讓內化的效果更好,還是不得不提一個老生常談的話題,強行將你的理解進行對外輸出,這會大大加速你對知識的內化。內化的過程也是一個不斷根據外界的反饋不斷重構你知識體系的過程。畢竟在構建知識體系的整個過程中充滿著大量的未知,沒人能一開始就設計出一個完美的“主干和支干”。
這里具體比較有效的辦法是,做分享。關于做分享的小技巧,也可以看下我之前的一篇讀書總結《想要走上巔峰?練好演講也是必不可少的技能》
不管是面對一個人還是一群人,當你能讓一個外行很快搞懂你要講的東西的時候,就是你的知識體系大樹v1.0竣工的時候。
如果是自由職業者或者由于其它原因,分享的機會并不多。可以選擇像我一樣通過寫文章來進行對外輸出。相比前者唯一的不足是,可能得到的反饋深度沒那么好,但是隨著時間的推移,反饋的數量會更多。
05 ??開放的心態
前面也說到了,沒有任何知識體系是一塵不變的,隨著時間的推移都會發生變化。
因為整個世界對我們來說有太多的未知,我們永遠在不斷接近的“內核”的路上,但從未真正觸達過它。
許多人的弱點就在這里:篤信自己永遠是正確的,卻不敢直視他人的不同意見,更不敢推翻自己。
這就無異于斷絕了新知識的來源,只會一直抱殘守缺。
一句比較精辟的話是:
當一個人堅定自己代表真理時,真理就已經離他而去了
所以,一個能夠接納不同的觀點,求同存異的心態顯得至關重要。
有的人好奇心和求知欲特別強,會容易陷入另一個極端,在知識體系的構建中缺乏邊界意識。
知識本身是無窮無盡的,我們每個人的知識體系只是整個知識海洋中的一部分。有人覆蓋面積稍大一些,有的小一些。
如果讓構建知識體系的過程過度地肆意遨游,那你的知識體系不但構建起來時間非常長,而且可能會發育不良,比如左高右低。
所以,要有邊界意識,夠用就好。
比如你想要了解某個領域的知識用來干嘛,這個是確定的。
然后你只要貼著這個邊界去找尋信息就好了。否則,更多的空白部分都是浪費的。
最后分享一個我之前收藏的知乎網友總結的在知識體系成熟度的不同階段所表現出的不同景象。
1. 沒有知識體系。——哇,真棒!
2. 我要把它用“心”記下來。——我“好像”看過這個知識點。
3. 我把它記錄在本子上了。——我要去看一下筆記本。
4. 能夠用自己的話描述新知識。
5. 能夠找到新知識與已有知識的內在邏輯關系。
6. 能夠使用新知識解釋過往的經驗。
7. 能夠將新知識應用到現實當中。
https://zhuanlan.zhihu.com/p/32731485
好了,我們總結一下。
這篇呢,Z哥先強調了構建知識體系對提升你的深度思考能力和知識的使用效率大有幫助。
其次,提醒你注意遠離兩個誤區,「只追求學習的數量」,以及「蒙頭向前,不問方向」。
我們應該以「主干->支干->觸角」的思路來構建知識體系,通過5個步驟進行。
找共識(范式or定理or本質)
不斷在成長區擴張
建立聯系
內化
開放的心態
希望每個人都能在知識的海洋中找到那個適合自己的位置,讓知識發芽長大,形成你自己獨一無二的知識體系。這也讓你擁有了做更多選擇的能力。
我又想起一個網上的段子。(出處在哪搞不清楚了)
當你看到下圖夕陽余暉…你的腦海浮現的是“落霞與孤鶩齊飛,秋水共長天一色。”
而不是“臥槽,我靠,好多鳥,好多鳥,臥槽,真他媽太好看了!”
再如,“割韭菜”這個事情,本質上就是在某個領域高認知體系的人去套路低認知體系的人的過程。
推薦閱讀:
讀再多書都沒覺得自己變強?試試我這“5年陳”的方法
想要走上巔峰?練好演講也是必不可少的技能
原創不易,如果你覺得這篇文章還不錯,就「在看」或者「分享」一下吧。鼓勵我的創作 :)
如果你有關于軟件架構、分布式系統、產品、運營的困惑
可以試試點擊「閱讀原文」
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 【.NET Core 跨平台 GUI 开
- 下一篇: 使用DbContextPool提高EfC