43mmps
/

【譯】如何記住所學的知識

Oct 12, 2020

本文翻譯自 How to remember what you learn,版權歸原著(Vasili Shynkarenka)所有。

「我什麼都記不住」

充滿了螢光筆的痕跡,讓手上的書看起來就像彩虹一樣。很明顯的,這樣一點幫助也沒有。我嘗試回想起任何一點書中的內容,但什麼都沒有。

我開始詢問自己究竟學到了什麼。如果我想不起剛剛才讀過的任何一點,那我要如何運用,如何掌握這些知識?如果讀過卻沒掌握,這些知識對我而言不過就是對牛彈琴。

我大略算了一下。我應該會在接下來 75 年左右的人生,每天學習好幾個小時。盯著這個數字,盯著這些我將浪費掉的寶貴時間,我知道我必須做什麼了。

在過去六個月間,我翻閱過許多關於人們如何學習的書籍、論文、研究。我得到了一個結論。我必須設計一套專屬於我自己的學習方法。這套方法可能不完美,但還是比我現在的方式好得多。

在這篇文章中,我會敘述我的學習流程,你也可以嘗試看看。這套流程適用在任何主題,從程式設計到經濟學都可以。如果你遇到了任何不適用的情境,請讓我知道。

基礎

固定時間、適度休息、並且選擇你好奇的主題。

其中最重要的是我的學習量是以時間而非目標決定的。如果設定了像是「今天要讀完幾頁」這樣的目標,就會因為錯誤的激勵方式而失敗。當決定中午前要讀完幾頁時,人會不由自主的追求高效率,進而要求速成而非理解。缺乏那些豁然開朗的經驗會很難記得自己究竟學了些什麼。

控制自己的負荷並適當休息也是相當重要的。我會以 30 分鐘的連續學習與 5 五分鐘的休息為一組,每天學習滿 3 個小時。休息有助於回到發散思考(Divergent Thinking)的模式當中,讓我廣泛地觸及腦中的神經元。同時也可以讓我暖身。在起立移動幾分鐘後身體會比坐著舒暢許多。

資源的話,我多半選擇自己有興趣的主題。人生對那些你沒有熱情的東西來說實在太短了。再者,我發現學習喜歡的東西可以激發自己的好奇心。而好奇心對掌握一項學問來說至關重要,因為知識的深度和廣度是其所必需的。

例如,你正在學習 JavaScript,而且對 JavaScript 感到好奇。那即便教學沒有提到,你還是會出於好奇,嘗試摸懂 Chrome 的 JS 執行環境;但如果你不對這門學問感到好奇,那麼最多就只會記住一篇教學而已,這會讓你的知識保持狹隘。

學習中

學習當下我會做的事

整理當下的記憶,思考自己的認知,用問題挑戰認知來加深自己的理解。

在我學習時,我會準備兩樣工具在桌上。右手邊的筆電開著學習資源(如書籍、影片、文章);左手邊的 iPad 開著文字編輯器。

目前我的桌面配置看起來像這樣:

早上的學習時間。

我開始學習時會設定一個 30 分鐘的計時器,並且在 Drafts 中開啟三個檔案:

  1. 一個用來記錄無關想法跟時間的檔案
  2. 一個用來記錄我對主題的想法跟時間的檔案
  3. 一個記錄問題的檔案

第一個檔案是想法的暫存區。我在學習的過程中會想到很多東西,大腦會開始丟給我很多的點子、待辦事項、回憶。我懷疑它們可能來自於一些相關記憶,而在我學習的過程當中遇到對我有特殊意義的文字跟句子讓它們浮上腦海。

但是這樣有個問題,如果我不立刻寫下來,它們會令我無法專心。我的大腦會被這些待辦事項和情緒塞滿。也許你也曾經有類似的經驗:大腦運轉得太快以至於無法專心在學習上。有這樣的暫存區可以有效地清空這些想法,並且讓它們有個安全的地方,之後我可以繼續處理它們。

第二個檔案是我存放與學習主題相關想法的地方。廚房的朋友們稱呼這種東西叫做「元認知」,就是關於想法的想法。
元認知是我用來加強理解的最佳技巧,所以我之後會寫更多關於元認知的主題。當我不能理解或是理解有困難時,我會用第一人稱的方式寫下例如:「所以,Peter 解釋了壟斷有四種特性,但我不能理解為什麼品牌是其中一個,為什麼?」的句子。

同時很重要的是,我不會用一般分句和分段的方式記錄。而是將每個想法分行,句尾不會有句號。這能幫助我專注在理解,而不是記錄風格與文法錯誤上。對我來說 enter 鍵就像是「想法結束」的符號,讓我可以把想法整理得更工整。

另外一點是我只會用純文字編輯器。純文字編輯器對我來說是一種解放,不需要考慮文字顏色、底線、加粗、斜體,或是其他奇奇怪怪的調整。比起選擇正確的字體,我更能專注在文字本身的意義上。而且,我使用過的純文字編輯器運作速度總是比其他功能完善的編輯器來得快。輸入環境的運作速度對我來說是很重要的,這會影響到思考。

這是我昨天學習 React 筆記的其中一小段:

學習 React.js 的元認知記錄。

可能有人會覺得這是段很大量的文字,沒錯。通常我在每個一小時的學習時間中會寫下約 500~1,000 個單字(譯註:英文單字)的內容。但每個字都值得,因為:

  • 當我使用元認知的技巧時,我能夠更好的理解正在學的知識。我嘗試過許多不同的學習模式。在後續的回憶與整理階段,元認知能給我至少兩倍以上的效果。另外,也有一些研究可以參考。
  • 用檔案來記錄我的想法有助於清空使用中的記憶空間,一口氣閱讀許多文章也不會感到精神崩潰。也許你也曾經在大量使用網路一小時後,感到腦袋開始融化。這是由於看過太多資訊,而且沒有經過整理。經歷過數個月的元認知學習,我認為我再也無法回到以前那種讓腦袋塞滿東西的方式,對我來說就是很詭異。
  • 元認知是藉由昇華與交錯的方式增強記憶。當我在撰寫記錄時,將其他想法連結到同一個主題上是很正常的。讓新舊知識交錯在一起是掌握一門學問的方式。
  • (個人推測)訓練元認知可以強化我轉換模糊的概念為實際文字的能力,並且可以在事後分析這些文字。我對這點特別有興趣。可惜除了我的實驗之外並沒有其他證據,而且我有可能因為自己想出這套方法而帶有偏見。

另外,因為使用快捷鍵,我的打字速度是一般人的二到三倍,這些文字對我來說並沒有很多。

第三個檔案是問題記錄。在任何時候,只要我卡在某個我不懂的部分,我就會嘗試將它分為一組簡單的小問題。每個小問題代表這項困難的一小部分。如果某個概念特別難處理,我會嘗試從多個角度分解。

一節新的學習時段通常會由前一節的問題開始。我會在開始前看過並回答這些問題。這聽起來不是很歡樂,但如果你可以大聲的對自己解釋這些問題就會很有趣。回答這些問題有助於改善我的理解,並使不同概念之間彼此交結。回答問題是學習的一種方式,而且可能是最有效率的一種。

Michael Nielsen 整理這些理論比我更好,因此我不會在這裡著墨太多。

學習之後發生的事

撰寫完整的總結,昇華、交織、轉換,並選擇自己要記住的部分。

在下一個階段,三個檔案都充滿了各種資料,我會進入回憶的階段。

首先,我會用三到五句的總結來描述我剛剛所學的東西。嘗試萃取出學習資料中最核心的部分,並壓縮成最緊密的一塊。當我在做總結時會將電腦關掉。看不見那些文字有助於「壓縮」這些概念到最核心的部分,然後在腦海中置入一點記憶,這稍後可以用來檢視整本書的概念。

這是我的總結筆記看起來的樣子:

學習 React.js 的回憶筆記。

在總結當中的用字與閱讀到的不同是很正常的。這是這段資料對我而言的內容。也就是說,如果我們同時整理同一份資料的總結,彼此的總結看起來會很不一樣。

在寫完這些總結之後,我會寫下三個問題:

  1. 關鍵概念有哪些?
  2. 我要怎麼使用這些知識?
  3. 這些知識跟我所學過的有什麼關聯?

第一個問題的原因很明顯。我會試著記憶我所閱讀的內容,並寫下越多概念越好。當我使用前面提到的元認知技巧時,我發現我可以回想出三倍左右的概念。而且我認為長期記憶會受記憶交錯程度以及使用次數影響,所以這可能有助於建立長期記憶。

第二個問題是確認我能掌握多少。學習的唯一目的就是要實際應用我們所學習的知識。當知識與應用脫節便無任何用處。但使用這些知識,我必須能夠在需要的時候想起它們。這部分的問題可以幫助我尋找如何運用這些知識。通常,這些問題會成為待辦事項,例如當我在學習企業壟斷相關的知識時,這裡的答案會是:「我可以思考我們目前的點子符合哪些壟斷企業的特徵」。

第三個問題是關於知識的連結與交錯。這有助於主動地思考剛才學習的知識,該如何銜接上腦中既有的知識。這裡的秘訣是:當你在回答問題時,大腦並不只是在建立連結,重複的使用也增強了剛建立的長期記憶。而且,連結腦中的想法同時也是創造力的表現,擁有這樣的思考習慣有助於激發新想法。

最後,我會把這些檔案放進 Anki,這是一套間歇性重複的系統,我用來幫助自己記憶。方法很簡單:在系統內建立紙卡(flashcard,類似高中使用的單字卡),然後測試自己。如果你記得,這張卡的下一次喚醒時間就會被往後延。

Anki 最棒的一點是它改變了我與記憶的關係。我再也不怕忘記任何事情,因為我知道我會記住放進 Anki 的每件事情。感覺就像超能力一樣。這種超能力會讓我想到更進一步的問題:「有什麼是我永遠不想忘記的?」

關於 Anki,你可以在這裡知道更多。

在學習之間

和朋友聊聊你所學的東西,使用間歇測驗加強記憶,養成主動回憶的習慣

和朋友聊聊

當我學到新的 cool 東西時,會有股衝動想解釋給朋友聽。這樣能幫助我快速辨認我是否真的理解剛剛學習的內容,或只是記得文字。有時我會傳訊息給他們,有時會在日常對話中順帶提到。

間歇性測驗

另一個我所使用的技巧是測驗。許多人對測驗有不愉快的誤解,好像測驗是在學校才有的事情。其實測驗是非常有用也有趣的,尤其是在正確的情況下。某些程度上,我是在測驗當中學到新知識的。因為我會在閱讀之前就對我正在閱讀的部分提出問題,並試著回答。

除了固定的學習時間外,我會在任何有空的時間使用 Anki 來測驗自己。例如昨天我在排隊等待結帳時就回答了幾個 Anki 的問題。

我同時也懷疑我可能善用了許多平日的時間。因為我總是在自己身邊的 iPad 上開著 Drafts 練習元認知的技巧。但這只是有可能的假設。 (譯註:此處應該是指對於先前學習的補述,原著並沒有提到他也會帶著書籍或筆電。)

如果你對學習間歇性測驗有興趣,可以看 Michael 在長期記憶上的研究 Gwern 關於間歇性測驗的文章

養成主動回憶的習慣

還有一個對我很有用的習慣,主動回憶。這是我每天早上所做的第一件事,也是睡前做的最後一件事。

以下是運作原理:

每天晚上,我會在 Drafts 裡打開一個新檔案,然後問自己:「今天我記得什麼?」。在前 30 秒會覺得什麼都難以想起,就像記憶消失了。但幾分鐘過後能回憶起的概念越來越多。經過幾個月的練習,我就可以想起大約 90~95% 的記憶。不論是 JS 的某個運作原理、壟斷企業的特性、或是為什麼混合練習可以幫助記憶,這些對我來說都不成問題。而且我大膽的猜測,每天做兩次這種練習可以訓練我關於記憶的心理機制。

如果你開始覺得:「為什麼要這麼麻煩」,以下是為什麼:

我們所謂的創意與智慧,很多時候其實只是記憶而已。如果你認為有了 Google 就不需要記憶,那你就錯了。思考的過程比 Google 快太多了,而且當你在思考或解決某個重要問題的時候,會需要在手邊準備好所有工具。另外,最有趣的點子通常不會跟辦公桌一起出現,而是在你沖澡、看著夜空發呆、或是單純在市區閒晃時,這些你不能夠 Google 的時候才會有最棒的點子。而且如果把眼光放遠到 10 年、50 年,這短短的 10 分鐘的習慣對你的人生是絕對值得的。

練習

利用基於複雜模式配對的混合練習。

我使用的練習方法叫混合練習。將練習時間放在一本書的最後,而不在每個章節後。當我們使用一般的中斷式練習(即每個章節結束後立刻練習),所訓練到的認知能力就只局限在單一章節。而這樣的差異是很顯著的。醫學系的學生使用混合練習可以比其他同學提高 50% 的成績。重申一次,不是 5% 或 10%,是 50%。

範例:使用混合練習的方式學習程式設計

遺憾的是,大多數的程式設計課程和平台並沒有研究過認知科學,而且彼此模仿的結果是他們都犯了同樣的錯誤:總是把課程與練習放在一起。進行這種中斷式練習會容易造成遺忘,因為知識總是只存在短期記憶中。但大多數的程式設計網站只要求你把一邊學到的東西在另一邊重打一次,有樣學樣就好。想要不照著做反而需要很堅定的意志力。

換個方式講。如果你拿著成堆的現金進入治安最差的社區,蠢的可能是你,而不是那些樂意痛揍你一頓並把錢搶走的流氓。

我會試著把不同的解題思路或方式穿插在一起,混合起來練習。例如,如果目標是排序一個簡單的 JS 數字陣列。預期的解法是,呃,就排序。但我的做法是建立一個函式,一個輸入陣列並輸出排序後的陣列的函式。再建立一個反過來的遞減排序函式。接著建立一個二維陣列,與一個排序二維陣列每一行的函式。我會使用到所有我所知的排序方式,又或著是我會改用字串陣列與字典排序,諸如此類。 (譯註:這個範例真的不是很好⋯⋯)

沒錯,這會需要一點時間。但我相信比起閱讀教學,練習才是最重要的。最終,重要的會是如何認知知識的模式,從根本上改變你的認知,並連結以前曾經學過的其他知識。這就是為什麼持續練習數十年最終會讓你掌握任何你想要的東西。

學習資料

最好的學習資料可以藉由每天看一本 Amazon 線上試讀本來確認。
(譯註:中文資料可以考慮 Readmoo 電子書、天瓏書局、誠品書局)

如何學習很重要,但相同的,學習資源也很重要。而且我相信大多數人都沒有能力找到夠好的資源。我想解釋一下我所使用的方法。

方法很簡單,如果要找更好的學習資源,就先翻閱大量的資料。

紐約時報的暢銷書並不是一個可以信任的來源。第一,如果這些書暢銷,那就代表大家都讀過。跟大家讀一樣的東西只會讓你的想法跟大家一樣。第二,價值觀是很主觀的。同樣的文字對我來說可能是整個宇宙,對你來說卻什麼都不是,反之亦同。

所以我養成了每天閱讀一本書的習慣,方法如下:

  1. 到 Amazon 找出一堆我有興趣的書。通常這些書會從幾個我能夠信任的人推薦而來,這是足夠讓我閱讀一本書的標準。如果很多值得尊敬的人都推薦了同一本書,那它就不太可能是「完全的垃圾」。
  2. 我會下載這些書的試讀本。我相信試讀本是世界上最被低估的一樣東西。而且是免費的,幾乎所有書都有。另一件事是我會從 Project Gutenberg 下載書籍。這是一個驚人的免費圖書館,幾乎所有舊書他們都有。
  3. 我的 Amazon Kindle app 有一個資料夾叫做「想讀」。所有我下載下來的試讀本都會放在裡面。
  4. 在每天下午三點,我會給自己一小時的休息時間,走路去距離我家 10 分鐘的 Costa 咖啡廳,買一杯黑美式。我不會帶 iPad,只有手機。
  5. 我會打開並閱讀「想讀」資料夾的第一本試讀本,並在 Drafts 中開啟一個與書名同名的文件。我通常會從書籍的簡介理解整本書的內容,寫下幾句話,然後看看自己能不能猜到接下來的部分。接著看看目錄有沒有什麼值得吸引我注意的地方,有的話就跳到那一頁開始閱讀,沒有的話就簡單翻閱整本書的內容。我不會速讀,所以我只看每段的第一句並快速地看過整段。你可能會好奇這樣閱讀是不是不足以讓我理解多少。是的。但這種「走馬看花」式的閱讀方式是為了吸引我的好奇心。好奇心是與理解不同的,因為好奇心只會有「有」跟「沒有」而已。就像如果看到一個美女,你不會真的坐下來思考「我真的喜歡她嗎」。
  6. 我大概需要 10 到 15 分鐘的時間才能理解書中是否有任何值得我讀完整本書的部分。注意:將所有書都列入「值得閱讀」聽起來是很吸引人沒錯,但請不要這樣做。如果你不確定該不該列入,那就不要。就像女孩子一樣,明天總是會有更好的,時候到了你就會知道。
  7. 如果這本書值得閱讀,那我就會立刻買下它。如果我不確定該不該買,那刪了試讀本就算了。
  8. 每天重複以上流程。

每天抽出滑 Twitter 的 10 分鐘掃過這些書,一年就可以掃過 365 本。這 365 本當中大約會有 2 本是最終改變我生活的書,10 本非常有趣,另外 10 本有點意思。剩下的 94% 就只是純粹的雜訊。

那麼,簡單計算一下。如果我沒有利用這種方式掃過每一本書,而是從頭閱讀到尾。這樣我可以從 365 本中抽出 20 本。這 20 本都是好書的機會,會非常非常低。而我曾經這樣做過,持續了好幾年。所以不要重蹈我的覆轍。每天花 5 到 10 分鐘尋找你有興趣的資源。因為學習就像吃飯一樣,吃什麼就會像什麼。

讀到這裡,也許你注意到了,習慣與特定的行為是有關聯的。這樣的關聯是建立新習慣的最好方式,因為可以保證你絕對不會忘記。我若說出有幾次想要做某件事卻忘記了會令人難以置信。所以不要仰賴你那薄弱的記憶力,把習慣跟你日常生活中必需的行為綁在一起。例如沖澡、吃飯、刷牙,這些都可以是很好的例子,因為他們都是必須的。

另外,針對習慣建立獎勵機制也是很有效的。例如可以讓自己買杯咖啡,或散個步。基於某些原因,我們不會像忘記習慣那樣忘記屬於自己的獎勵。所以利用獎勵機制會讓你有更多機會記住這個習慣。

如果你對習慣有興趣,可以閱讀這本書

習慣

要養成習慣,需要固定時間,從小事開始,並且每天保持

當我養成學習習慣時是從每天十分鐘開始。看起來不多,但這就是重點。如果把它跟一些日常行為掛鉤,例如在下班後沖個澡,那就不會覺得這是什麼大事。

更有趣的是,當我刻意降低了投入新習慣的時間時,稀缺效應讓我更渴求這項習慣。我的大腦表示:「好吧,我們只會學習 10 分鐘。但我想學新東西,新東西讓我變聰明。所以我最好把握這 10 分鐘,不然今天就沒有其他機會了。」

但注意,千萬不要習慣延期,就算早上來不及也不要想在晚上彌補。這樣做會給你的大腦一個很好的藉口欺騙你,讓你總是想打瞌睡,最終不得不延後。因為「我們總是可以晚點再做」。

秘訣

  • 我發現一個非常有用的技巧,在學習用的裝置上移除所有可能的干擾來源。我刪除了所有的通訊 App、社群服務、Email App 以及任何 iPad 中可能讓我分心的東西。這讓我的生活輕鬆了許多,為什麼我沒有早點這麼做。 (譯註:如果我有兩台哀配我也想這樣玩。)
  • 另一個技巧是設計環境。我開始學習時會將手機放在另一個房間,這樣一來我的潛意識就不會誘惑我去使用手機。這項技巧替我節省了大量的時間,所以歡迎你也試試看。正如你可能猜到的,同樣的方法也被我運用在工作中。在我寫作時我會把所有的干擾源(包含我老婆)放在另一個房間。效果十分顯著。 (譯註:我沒有另一個房間,也沒有老婆。解釋不夠清楚好像有什麼東西卡進吊扇了。)
  • 元認知不只可以利用在學習上。我發現在寫程式或設計流程的時候有個地方可以解釋我真正的想法,而不只是單純敲打鍵盤,會讓我感到非常自由。
  • 當面對不理解的概念時,我會嘗試用畫的。手繪草圖可以充分利用空間認知優勢,並有助於分解那些最具挑戰性的概念。
  • 當我建立了學習新東西的流程,就不再感到害怕了。我知道掌握它只不過是時間問題。這鼓勵了我進行一些極具野心,一些我從來不敢想像的計畫。

FAQ

這些技巧可以利用在閱讀文章或觀賞影片嗎?

這套學習流程適用於任何媒介。如果你閱讀文章是為了理解並運用它的知識,那麼當然可以。但如果是一篇虛構故事或報紙新聞,就有點殺雞用牛刀了。

掌握這套流程需要多少時間?

從開始到發生效果需要的時間比你想像的短很多,但完全掌握比你想像的長更多,我到現在都還在學習呢!

這套流程可以運用在學習程式設計嗎?

當然可以!這套流程就是我用來學習程式設計的。知識佔智慧很大一部份,而知識來自於長期記憶的增長。如果你正在學習如何寫程式,歡迎在 [email protected] 詢問我,我會分享更多的技巧。

如果我沒有第二台裝置,我可以在手機或實體書上使用這些技巧嗎?

可以,我曾經試過單個裝置的學習模式,這樣的效率相當高。對比雙裝置來說,單裝置在元認知上會稍微弱勢,但優勢是更能專注。如果要把手機上的 Kindle App 關閉才能開啟筆記 App,就需要你把書上的文字暫存進腦海裡。這樣可以有更好的即時回憶效果。

參考資料

這是我在過去六個月中找到的有趣資料,順序不具任何意義。

本文翻譯自 How to remember what you learn,版權歸原著(Vasili Shynkarenka)所有。

標籤

翻譯, 學習

延伸閱讀

【譯】學寫程式,就像在下一盤很大的棋

學習程式可以是很殘酷的。你不知道學習的方向是否正確,而且前方總是有很多等著你學。我們大多數人沒有數年的時間用來鞏固程式基礎。

【譯】如何踏出創新的第一步

害怕不完美,是阻止人們創造傑作的最大理由之一。而這種恐懼並不是沒有道理的。許多曠世巨作在初期都會經歷一個階段,一個連創作者看起來都不怎麼起眼的階段。每個創作者都必須面對,並熬過這個階段,才能造就之後的豐功偉業。然而,有很多人並沒有辦到。多數人甚至連「不起眼」的階段都碰不到。他們太害怕了,以至於無法開始。

【譯】最佳化:讓 Rust 「RRRRR」

本文翻譯自 Optimization - Making Rust Code Go Brrrr,著作權歸原著所有。

catLee

[email protected]

初音不是軟體。