高效學習的自我認知
一、端正學習態度
1、主動學習和被動學習
1946 年,美國學者埃德加·戴爾(Edgar Dale)提出了「學習金字塔」(Cone of Learning)的理論。之後,美國緬因州國家訓練實驗室也做了相同的實驗,併發布了「學習金字塔」報告。
人的學習分為「被動學習」和「主動學習」兩個層次。
被動學習:如聽講、閱讀、視聽、演示,學習內容的平均留存率為 5%、10%、20% 和 30%。
主動學習:如通過討論、實踐、教授給他人,會將原來被動學習的內容留存率從 5% 提升到 50%、75% 和 90%。
學習不是努力讀更多的書,盲目追求閱讀的速度和數量,這會讓人產生低層次的勤奮和成長的感覺,這只是在使蠻力。要思辨,要踐行,要總結和歸納,否則,你只是在機械地重複某件事,而不會有質的成長的。
2、淺度學習和深度學習
這些所謂的“快餐文化”可以讓你有短暫的滿足感,但是無法讓你有更深層次的思考和把知識轉換成自己的技能的有效路徑,因為那些都是需要大量時間和精力的付出,不符合現代人的生活節奏。人們開始在朋友圈、公眾號、得到等這樣的地方進行學習,導致他們越學越焦慮,越學越浮燥,越學越不會思考。於是,他們成了“什麼都懂,但依然過不好這一生”的狀態。
可見深度學習十分重要,但應該怎樣進行深度學習呢?下面幾點是關鍵。
- 高質量的資訊源和第一手的知識。
- 把知識連成地圖,將自己的理解反述出來。
- 不斷地反思和思辨,與不同年齡段的人討論。
- 舉一反三,並踐行之,把知識轉換成技能。
換言之,學習有三個步驟。
- 知識採集。資訊源是非常重要的,獲取資訊源頭、破解表面資訊的內在本質、多方資料印證,是這個步驟的關鍵。
- 知識縫合。所謂縫合就是把資訊組織起來,成為結構體的知識。這裡,連線記憶,邏輯推理,知識梳理是很重要的三部分。
- 技能轉換。通過舉一反三、實踐和練習,以及傳授教導,把知識轉化成自己的技能。這種技能可以讓你進入更高的階層。
我覺得這是任何人都是可以做到的,就是看你想不想做了。
3、學習是為了找到方法
學習不僅僅是為了找到答案,而更是為了找到方法。
只有掌握解題的思路和方法,你才算得上擁有解決問題的能力。所有的練習,所有的答案,其實都是在引導你去尋找一種“以不變應萬變”的方法或能力。在這種能力下,你不需要知道答案,因為你可以用這種方法很快找到答案,找到解,甚至可以通過這樣的方式找到最優解或最優雅的答案。
所以,學習是為了找到通往答案的路徑和方法,是為了擁有無師自通的能力。
4、學習是為了找到原理
學習不僅僅是為了知道,而更是為了思考和理解。
這些問題都會驅使你像一個偵探一樣去探索背後的事實和真相,並在不斷的思考中一點一點地理解整個事情的內在本質、邏輯和原理。一旦理解和掌握了這些本質的東西,你就會發現,整個複雜多變的世界在變得越來越簡單。你就好像找到了所有問題的最終答案似的,一通百通了。
5、學習是為了瞭解自己
學習不僅僅是為了開拓眼界,而更是為了找到自己的未知,為了瞭解自己。
開拓眼界的目的就是發現自己的不足和上升空間,從而才能讓自己成長。
6、學習是為了改變自己
學習不僅僅是為了成長,而更是為了改變自己。
學習是為了改變自己的思考方式,改變自己的思維方式,改變自己與生俱來的那些垃圾和低效的演算法。總之,學習讓我們改變自己,行動和踐行,反思和改善,從而獲得成長。
二、源頭、原理和知識地圖
1、挑選知識和資訊源
資訊源要有下面幾個特質:
- 應該是第一手資料,不是被別人理解過、消化過的二手資料。尤其對於知識性的東西來說,更是這樣。
- 應該是原汁原味的,不應該是被添油加醋的。
- 應該是有佐證、有資料、有引用的,或是有權威人士或大公司生產系統背書的資料。
- 應該是被時間和實踐檢驗過的,或是小心求證過的,不是拍腦袋野路子或是道聽途說出來的資料。
- 應該是加入了一些自己的經驗和思考,可以引發人深思的,是所謂資訊的密集很大的文章。
對於一個學習者來說,找到優質的資訊源可以讓你事半功倍。一方面,就像找到一本很好的武林祕籍一樣,而不是被他人翻譯過或消化過的,也不會有資訊損失甚至有錯誤資訊會讓你走火入魔。另一方面,你需要的不只有知識和答案,更重要的是掌握學習的方法和技能。你要的是“漁”,而不是“魚”。
2、注重基礎和原理
很多人並不是學得不夠快,而他們的基礎真的不行。基礎不行,會影響你對事物的理解,甚至會讓你不能理解為什麼是這樣。當你對事物的出現有不理解的東西時,通常來說,是因為你的基礎知識沒有跟上。
最最關鍵的是,這些基礎知識和原理性的東西和技術,都是經歷過長時間的考驗的,所以,這些基礎技術也有很多人類歷史上的智慧結晶,會給你很多啟示和幫助。
3、使用知識圖
通過“順藤摸瓜”的方式,從知識樹的主幹開始做廣度或是深度遍歷,於是我就得到了一整棵的知識樹。這種“順藤摸瓜”的記憶方式讓我記住了很多知識。
最重要的是,當出現一些我不知道的知識點時,我就會往這棵知識樹上掛,而這樣一來,也使得我的學習更為系統和全面。
這種畫知識圖的方式可以讓你從一個技術最重要最主幹的地方出發開始遍歷所有的技術細節,也就是畫地圖的方式。如果你不想在知識的海洋中迷路,你需要有一份地圖,所以,學習並不是為了要記憶那些知識點,而是為了要找到一個知識的地圖,你在這個地圖上能通過關鍵路徑找到你想要的答案。
三、深度,歸納和堅持實踐
1、系統地學習
陳皓老師總結的一個學習模板:
這個模板如下。
- **這個技術出現的背景、初衷和要達到什麼樣的目標或是要解決什麼樣的問題。**這個問題非常關鍵,也就是說,你在學習一個技術的時候,需要知道這個技術的成因和目標,也就是這個技術的靈魂。如果不知道這些的話,那麼你會看不懂這個技術的一些設計理念。
- **這個技術的優勢和劣勢分別是什麼,或者說,這個技術的 trade-off 是什麼。**任何技術都有其好壞,在解決一個問題的時候,也會帶來新的問題。另外,一般來說,任何設計都有
trade-off(要什麼和不要什麼),所以,你要清楚這個技術的優勢和劣勢,以及帶來的挑戰。 - **這個技術適用的場景。**任何技術都有其適用的場景,離開了這個場景,這個技術可能會有很多槽點,所以學習技術不但要知道這個技術是什麼,還要知道其適用的場景。沒有任何一個技術是普適的。注意,所謂場景一般分別兩個,一個是業務場景,一個是技術場景。
- **技術的組成部分和關鍵點。**這是技術的核心思想和核心元件了,也是這個技術的靈魂所在了。學習技術的核心部分是快速掌握的關鍵。
- **技術的底層原理和關鍵實現。**任何一個技術都有其底層的關鍵基礎技術,這些關鍵技術很有可能也是其它技術的關鍵基礎技術。所以,學習這些關鍵的基礎底層技術,可以讓你未來很快地掌握其它技術。已有的實現和它之間的對比。一般來說,任何一個技術都會有不同的實現,不同的實現都會有不同的側重。學習不同的實現,可以讓你得到不同的想法和思路,對於開闊思維,深入細節是非常重要的。
基本上來說,如果你按照我上面所提的這 6 大點來學習一門技術,你一定會學習到技術的精髓,而且學習的高度在一開始就超過很多人了。如果你能這樣堅持 2-3 年,我相信你一定會在某個領域成為炙手可熱的佼佼者。
2、舉一反三
一個人的舉一反三能力,可以分解成如下三種基本能力。
- **聯想能力。**這種能力的鍛鍊需要你平時就在不停地思考同一個事物的不同的用法,或是聯想與之有關的其他事物。對於軟體開發和技術學習也一樣。
- **抽象能力。**抽象能力是舉一反三的基本技能。平時你解決問題的時候,如果你能對這個問題進行抽象,你就可以獲得更多的表現形式。抽象能力需要找到解決問題的通用模型,比如數學就是對現實世界的一種抽象。只要我們能把現實世界的各種問題建立成資料模型(如,建立各種維度的向量),我們就可以用數學來求解,這也是機器學習的本質。
- **自省能力。**所謂自省能力就是自己找自己的難看。當你得到一個解的時候,要站在自己的對立面來找這個解的漏洞。有點像左右手互博。這種自己和自己辯論的能力又叫思辨能力。將自己分裂成正反方,左右方,甚至多方,站在不同的立場上來和自己辯論,從而做到不漏過一個 case,從而獲得完整全面的問題分析能力。
這一系列的能力最終能構建出你強大的思考力,而這個思考力會直接轉換成你的求知和學習能力。
3、總結和歸納
我們積累的知識越多,在知識間進行聯絡和區辨的能力就越強,對知識進行總結和歸納也就越輕鬆。而想要提高總結歸納的能力,首先要多閱讀,多積累素材,擴大自己的知識面,多和別人討論,多思辨,從而見多識廣。
就開始對知識進行總結歸納,那麼總結歸納出來的知識結構也只能是混亂和幼稚的。因此,學習的開始階段,可以不急於總結歸納,不急於下判斷,做結論,而應該保留部分知識的不確定性,保持對知識的開放狀態。當對整個知識的理解更深入,自己站的位置更高以後,總結和歸納才會更有條理。總結歸納更多是在複習中對知識的回顧和重組,而不是一邊學習一邊就總結歸納。
我們來總結一下做總結歸納的方法:把你看到和學習到的資訊,歸整好,排列好,關聯好,總之把資訊碎片給結構化掉,然後在結構化的資訊中,找到規律,找到相通之處,找到共同之處,進行簡化、歸納和總結,最終形成一種套路,一種模式,一種通用方法。
要訓練自己這方面的能力,你需要多看一些經典的方法論圖書,看看別人是怎樣總結和歸納知識的。你可以在一開始模仿並把自己的理解的知識給寫出來,寫部落格會是一種很好的方式。另外一種更好的方式是講一遍給別人聽。總之,你需要把你總結歸納的知識公開出來,給別人看,接受別人的批評和反饋,這樣你才能成長得更快。其實,我也在鍛鍊這樣的能力。
你需要擴大自己的知識面,然後學會寫部落格,就能慢慢地擁有這種能力了。這種將資訊刪減、精煉和歸納的方法,可以讓你的學習能力得到快速的提升。當你這麼做的時候,一方面是在鍛鍊你抓重點的能力,另一方面是在鍛鍊你化繁為簡的能力。這兩種能力都是讓你高效學習的能力。
4、實踐出真知
實踐是很累很痛苦的事,但只有痛苦才會讓人反思,而反思則是學習和改變自己的動力。
5、堅持不懈
當然,堅持也不是要苦苦地堅持,有迴圈有成就感的堅持才是真正可以持續的。所以,一方面你要把你的堅持形成成果晒出來,讓別人來給你點贊,另一方面,你還要把堅持變成一種習慣,就像吃飯喝水一樣,你感覺不到太多的成本付出。只有做到這兩點,你才能夠真正堅持。
四、面對枯燥和量大的知識
1、如何面對枯燥的知識
如果你發現有些知識太過於枯燥,那麼可以通過下面的方法解決。
- 這個知識對於你來說來太高階了,你可能不知道能用在什麼地方。
- 人的認知是從感性認識向理性認識轉化的,所以,你可能要先去找一下應用場景,學點更實用的,再回來學理論。
- 學習需要有反饋,有成就感,帶著相關問題去學習會更好。
- 當然,找到牛人來給你講解,也是一個很不錯的手段。
2、如何面對大量的知識
東西太多了,怎麼學。我給你的建議是,一點一點學,一口一口吃。你可以使用我前面說過的那些方法,注重基礎,畫知識圖,多問為什麼,多動手,然後堅持住,哪怕你每週就學一個知識點,你一年也可以學到 50 個知識點。只要你在進步,總有一天可以把這些知識學到手的。
當然,你的目的不是學完這些知識,因為學無止境,你永遠也學不完,所以你在學習時,一定不要學在表面上,一定要學到本質,學到原理上,那些東西是不容易變的,也是經得住時間考驗的。把學習當成投資,這是這個世界上回報最好的投資。
帶著問題去學習,帶著要解決的東西去學習,帶著挑戰去學習,於是每當你解決了一個問題,做了一個功能,完成了一個挑戰,你就會感到興奮和有成就感。這樣,你也就找到了源源不斷的學習驅動力。
把你學習的心得、過程、筆記、程式碼分享出來,找到和你一同學習的人,因為一個人長跑很辛苦,有人同行就會好很多,就算沒有人同行,你的讀者,你的觀眾也會為你鼓掌加油,這些也是讓你持續前行的動力。
人的一生是要永遠學習的。加油!
3、其它幾個實用的技巧
- 用不同的方式來學習同一個東西。比如:通過看書,聽課,建立腦圖,寫部落格,講課,解決實際問題,等等。
- 不要被打斷。被打斷簡直就是學習的天敵,所以,你在學習的時候,最好把手機設定成勿擾模式放在一邊,然後把電腦上的所有通知也關掉,最好到一個別人找不到你的地方。
- 總結壓縮資訊。當你獲得太多的資訊時,你需要有一個“壓縮演算法”。我常用的壓縮演算法是隻關心關鍵點,所以,你需要使用表格、圖示、筆記或者腦圖來幫助你壓縮資訊。
- 把未知關聯到已知。把你新學的知識點關聯到已知的事物上來。比如,你在學習 Go 語言,你就把一些知識關聯到自己已經學過的語言上比如 C 和
Java。通過類比,你會學得更紮實,也會思考得更多。 - 用教的方式來學習。你想想,如果你過幾天要在公開場合對很多人講一個技術,那麼這個壓力會讓你學得更好。因為要教給別人,所以,這麼高的標準需要你不但要把自己已掌握的東西學好,還要把周邊的也一併學了,才可能做到百問不倒。你才敢去教別人,不是麼?(試試教 6 歲的孩子程式設計,如果你掌握了這種技能,那麼你一定是把知識吃得非常透徹了。)
- 學以致用。把學到的東西用起來,沒有什麼比用起來能讓你的知識更鞏固的了。在實踐中,你才會有更為真實的體會,你才會遇到非常細節和非常具體的問題,這些都會讓你重新思考,或深化學習。
- 不要記憶。聰明的人不會記憶知識的,他們會找方法,那些可以推匯出知識或答案的方法。這也是為什麼外國人特別喜歡方法論。
- 多犯錯誤。犯錯會讓你學得到更多,通過錯誤總結教訓,你會比沒有犯過錯的人體會得更深。但是千萬不要犯低階錯誤,也不要同一個錯誤犯兩次。