這是今天在朋友圈看到的一張圖棘劣,花了一點時間 get 到以后相信懂的人都會會心一笑俏让。但是笑過以后我意識到一件事:我們平時自己學(xué)習(xí)的時候很少主動進行類比。但是反過來呈础,一個精妙的類比表明了你已經(jīng)掌握了這個概念。如果你嘗試主動去進行類比橱健,那么你對這個概念的記憶而钞、理解就會更深。
在學(xué)習(xí)時運用類比的另外一個好處是可以給知識建立聯(lián)系拘荡。如果一個知識是孤立的臼节,我們就只能通過硬背去記住,但是我們?nèi)绻覀兺ㄟ^聯(lián)想類比到我們一個熟悉的模型,對于這個知識就能掌握的更好网缝。假設(shè)一個剛開始學(xué)習(xí) TCP/IP 的人巨税,相信如果看過上面提到的這張圖不費力氣也會記得 TCP 與 UDP 的一些區(qū)別。
類比的過程大腦如果還能聯(lián)想到一些場景粉臊,那么記憶就會更加深刻了草添。
比如經(jīng)過很多實驗后科學(xué)家得出結(jié)論,人腦的臨時記憶平均只能記住 5 件事扼仲,偏差是 2 远寸。什么意思呢,如果我說一串 5 位數(shù)字屠凶,大部分人能馬上記下來并復(fù)述驰后,記憶力稍好的人可以記 7 個數(shù)字。再多你就需要用筆記下來幫助記憶了矗愧。這也是代碼規(guī)范會要求一個函數(shù)不要寫的太長的原因灶芝,一個函數(shù)里的邏輯控制流如果超過 5 個步驟,大腦內(nèi)存就存不下了唉韭,理解整個函數(shù)的代碼就要花費更多的精力夜涕。寫這樣的代碼犯錯的概率也會變高,因為你在處理一個復(fù)雜的東西嘛纽哥。理解這個點你還是要自己建立一個抽象的理解模型钠乏,并不會很直觀。但是如果我說你想象一個拋球的場景:
當(dāng)你思考時包含一個點就是往空中拋出要一個球春塌,一般人只能處理 5 個球的難度晓避。如果同時拋出 10 個球在空中,顯而易見只壳,會溢出俏拱,其他的球會丟掉。因此為了穩(wěn)定吼句,你應(yīng)該一次只周轉(zhuǎn) 5 個球锅必。有這樣的一個類比是不是就容易理解多了?
但是類比還有非常重要的一環(huán)就是糾錯惕艳。這個環(huán)節(jié)也可以幫助我們更加全面搞隐,透徹的了解學(xué)習(xí)的概念。以這張 TCP/UDP 的圖為例远搪,你能想到兩者的區(qū)別哪些是這種圖里沒有表示出來或者表示錯誤的呢劣纲?我隨手舉一個例子:TCP 在接收時會校驗包的校驗碼,如果錯了通知重發(fā)谁鳍。對著瓶子喝水的這個過程癞季,顯然“覆水難收”劫瞳,這張圖里沒有表示出重發(fā)的機制。當(dāng)然這個環(huán)節(jié)不是為了吹毛求疵绷柒,是說我們在考查一個知識點的時候一定要細膩志于。
那么如果我們大膽擬人一些常見協(xié)議會怎么樣?哎废睦,日本要完伺绽!
Reference
歡迎關(guān)注我的微博:@沒故事的卓同學(xué)
如果想與我有更密切的交流也可以加入我的知識星球:iOS 程序員保護協(xié)會