在學習中運用類比

沒故事的卓同學發表於2018-09-17

在學習中運用類比

這是今天在朋友圈看到的一張圖,花了一點時間 get 到以後相信懂的人都會會心一笑。但是笑過以後我意識到一件事:我們平時自己學習的時候很少主動進行類比。但是反過來,一個精妙的類比表明了你已經掌握了這個概念。如果你嘗試主動去進行類比,那麼你對這個概念的記憶、理解就會更深。

在學習時運用類比的另外一個好處是可以給知識建立聯絡。如果一個知識是孤立的,我們就只能通過硬背去記住,但是我們如果我們通過聯想類比到我們一個熟悉的模型,對於這個知識就能掌握的更好。假設一個剛開始學習 TCP/IP 的人,相信如果看過上面提到的這張圖不費力氣也會記得 TCP 與 UDP 的一些區別。

類比的過程大腦如果還能聯想到一些場景,那麼記憶就會更加深刻了。

比如經過很多實驗後科學家得出結論,人腦的臨時記憶平均只能記住 5 件事,偏差是 2 。什麼意思呢,如果我說一串 5 位數字,大部分人能馬上記下來並複述,記憶力稍好的人可以記 7 個數字。再多你就需要用筆記下來幫助記憶了。這也是程式碼規範會要求一個函式不要寫的太長的原因,一個函式裡的邏輯控制流如果超過 5 個步驟,大腦記憶體就存不下了,理解整個函式的程式碼就要花費更多的精力。寫這樣的程式碼犯錯的概率也會變高,因為你在處理一個複雜的東西嘛。理解這個點你還是要自己建立一個抽象的理解模型,並不會很直觀。但是如果我說你想象一個拋球的場景:

在學習中運用類比
當你思考時包含一個點就是往空中丟擲要一個球,一般人只能處理 5 個球的難度。如果同時丟擲 10 個球在空中,顯而易見,會溢位,其他的球會丟掉。因此為了穩定,你應該一次只週轉 5 個球。有這樣的一個類比是不是就容易理解多了?

但是類比還有非常重要的一環就是糾錯。這個環節也可以幫助我們更加全面,透徹的瞭解學習的概念。以這張 TCP/UDP 的圖為例,你能想到兩者的區別哪些是這種圖裡沒有表示出來或者表示錯誤的呢?我隨手舉一個例子:TCP 在接收時會校驗包的校驗碼,如果錯了通知重發。對著瓶子喝水的這個過程,顯然“覆水難收”,這張圖裡沒有表示出重發的機制。當然這個環節不是為了吹毛求疵,是說我們在考查一個知識點的時候一定要細膩、深究。

那麼如果我們大膽擬人一些常見協議會怎麼樣?哎,日本要完

在學習中運用類比

Reference

如何高效學習


歡迎關注我的微博:@沒故事的卓同學

如果想與我有更密切的交流也可以加入我的知識星球:iOS 程式設計師保護協會

相關文章