大牛與搬運工的差距——學習方法的力量

GavinHsueh發表於2018-07-11

學習是一個老生常談的問題,尤其是在如今網際網路技術迭代越來越快,競爭壓力越來越大的背景之下,學習已成為社會生態中“物競天擇,避免淘汰”的必備技能。雖然學習講究方法論,但並沒有一套適合所有人的學習方法,真正有效的學習方法因人而異,適合自己的才是最好的。
曾看過一篇關於分享高效學習的文章,其中介紹了快速學習四步法,從中受益匪淺。本文結合個人學習心得,在其基礎上又做了細化,將學習過程分為八步:

第一步:確立目標

學習的首要關鍵是設立明確的目標,達到目標才能取得學習成果。然而大多數人在目標確立的問題上做的並不佳,甚至一上來就埋頭苦學,如果目標不明確,那後面一切都是浪費時間。
目標可分為大目標和具體的子目標(即長期目標和短目標)。在目標的確立上,我們可以借鑑”SMART”原則——Specific(具體的), Measurable(可衡量的),Achievable(可達到的),Realistic(切合實際的),and Timed(合時宜的)。

第二步:拆分任務

前面我們確定了目標,以及細化後具體的短期小目標。接下來我們通過逆向分解,將每個目標拆分成具體的可執行任務。
任務其實就是我們在實現目標的過程中,所要完成的一系列事項。拆分任務的過程同樣需要保證任務是具體的、可執行的、可完成的。一個任務也可以細分成多個子任務,當我們把所要做的任務明確並一一列出來後,便更有利於後面的執行,以確保執行的目的性和方向性。

第三步:蒐集知識資源

我們學習一門知識,肯定要蒐集大量資料內容,比如查閱相關書籍、網路文件、視訊教程等。特別是現在網際網路發展如此發達,很大程度地降低了人們的學習成本。
為了避免大家重蹈覆轍,這裡和大家分享下我在蒐集資源方面的經驗教訓。

1.首選官方權威的教程資源。

官方的文件教程是最可靠的,我們可以從中得到最新、最權威的資料,特別是身處IT圈子裡的朋友對此最有感觸。並且很多第一手資源都是英文的,而且國內翻譯讓人堪憂,所以很早我們就聽前輩教導,“如果你想在技術能力上有所突破,英語這關是逃不了的。”
其次書籍的選擇,建議大家先看書評,中文的看豆瓣,英文的看英文亞馬遜的評論。平行比較幾本書,選擇幾本公認的口碑好的好書。

2.切勿一味圖多。

這是相當痛的領悟,最初學習web開發時,蒐集各種教程資源,很多套視訊教程、眾多的PDF文件,買了很多的書籍,下載了好多工具,甚至以此為寶,到現在還封存在我那500G的行動硬碟裡。
過多的資源會浪費自己的寶貴時間和精力。比如我現在學習一門程式語言時,官方手冊+一本書+一臺電腦足矣。

第四步:分配自身資源

這一步將涉及到一門很難但又很重要的學問——時間管理。這裡我們不過多的闡述時間管理方面的內容,因為這個問題因人而異,沒有一套適合所有人的解決方案。
我們時間、精力等各方面資源有限,所有的知識不可能平均分配有限資源。對於我們蒐集的知識資源,要分清主次,然後使用不同的時間管理策略進行學習。
每個人情況不同,這裡分享我的方法,我將時間大致分為零碎時間和區塊時間。利用零碎時間,比如上下班車上、等待時間等,學習一些閱讀即可有收穫的內容。利用較長的且能坐在電腦前的區塊時間來主攻那些需要實踐操作的學習內容。每週列一個待辦,什麼時間做什麼事情便一目瞭然了。

第五步:勤學

前期的計劃工作完成後,接下來就是執行了,這裡同樣涉及到一個重要問題就是學習方法。
你是否有過這樣的經歷:拿出一本書,從第一頁開始一頁一頁的從頭開始閱讀學習,然後三天打魚兩天曬網後,又開始從頭一頁一頁地學習,之後陷入死迴圈……很多人自學效果差,一方面是自我管理問題,最主要的還是學習方法不得當。
我的老師曾說“書越讀越薄,程式碼越寫越少。”我們在學習的過程中,其實是在不斷地將書面上的知識消化到自己的腦子裡。而要消化知識也要講究方法,結合自身經驗,這裡我將讀書學習分為三個階段:

1.快速泛讀

上學時我們就不斷被老師灌輸“考試做閱讀理解第一步——通讀全文”。學習一門知識也是如此,泛讀的主要目的是梳理出知識的核心概念、要點、框架邏輯等。
比如拿過來一本書,通常先看序,這是與作者的對話。然後是目錄,瞭解整本書的知識結構和框架邏輯,同時自己也要提煉出哪部分是重點、難點,做到心中有數。接著泛讀全書,泛讀過程中主要抓核心概念、觀點、說明、和框架模型,這個過程不需要我們對每個點深入瞭解。最後,在腦海裡回顧一下整本書的邏輯結構。

2.深入解讀

深入解讀的目的是牢固掌握知識基本技能,逐步深入理解知識原理。這也是大部分人採用的學習方式。每個知識點、要點都是我們的精神食糧,並在學習的過程中,記下不懂的疑問。

3.問題攻讀

問題攻讀,即從問題出發,為解決問題而從各種知識資源中找答案。如果某個問題花了很長時間都解決不了,那可能這個問題對現階段的你還沒能力解決,這時或請教他人,或可以先放一放,等學完其他再回過頭來繼續研究。
第六步:建立知識體系
不要以為這一步可有可無,建立知識體系有助於幫我們理清各個概念和知識點之間的關聯,逐漸形成系統的知識體系。基於前面的大量泛讀和深入解讀,我們可以逐步構建出一個知識體系。(這裡可以藉助freemind、xmind等腦圖工具。)

第六步:建立知識體系

不要以為這一步可有可無,建立知識體系有助於幫我們理清各個概念和知識點之間的關聯,逐漸形成系統的知識體系。基於前面的大量泛讀和深入解讀,我們可以逐步構建出一個知識體系。(這裡可以藉助freemind、xmind等腦圖工具。)

第七步:好問

基於前面問題攻讀後還有未解決的問題,就要求教他人獲取幫助了。提問也是一門藝術,這仍是一個學習交流的過程,而不是讓別人去解決原本你該解決的問題。
這裡有一點希望大家共勉:所謂勤學好問,好問一定要以勤學為前提。因為我發現很多人完全顛倒了這個順序。比如即便手冊、文件等教程就擺在眼前,他們也不願意去看,而是直接問別人,更不會去百度谷歌,自己嘗試解決問題,實際很多問題在文件中完全可以解決。表面為了省時間,然而最終問題即便解決了,自己也沒有學到東西。
所以,“不懂就問”可不是一個好的學習習慣。

第八步:分享複述

這裡用到了著名的“費曼技巧”:即把自己當做老師,將你學到的知識講給別人聽(個人覺得寫文章或錄視訊均可)。在給別人講解的過程中,你可能會遇到“卡殼”,或者你覺得講明白了,別人就是聽不懂,這些地方,就是你理解的薄弱點,你需要再次著重學習理解這些知識,然後再講解給別人聽,如此迴圈,直到自己講的清晰,別人聽得明白。

小結

我們將學習流程分為八步:

1.確立目標
2.拆分任務
3.蒐集知識資源
4.分配自身資源
5.勤學
6.建立知識體系
7.好問
8.分享複述

我們團隊在開發禪道蟬知然之等產品,乃至平時工作都是遵循scrum敏捷開發,當我們回過頭來歸納總結時會發現,本文的“學習八部曲”其實和scrum敏捷開發有異曲同工之妙。首先將知識分解為多個小目標,再由目標分解關聯具體的學習任務,併合理分配時間、精力等資源來完成任務,然後通過疑難問題、複述,不斷發現自己學習知識過程中存在的“漏洞”或“bug”,進而深入學習解決,並由此迴圈迭代。
所以,學習其實就是一個不斷“自我迭代”,從而實現不斷自我提升的過程。
每個人都有自己的一套學習方法,歡迎大家能夠將自己好的學習方法不吝分享,我們互相學習、交流,共同進步。

學習方法實戰相關閱讀:
《我是如何學習小程式的》
《我是如何學習PWA的》

參考文獻:
https://www.jianshu.com/p/2fe48f98a919
https://keeganlee.me/post/full-stack/20170909
https://wiki.woodpecker.org.cn/moin/AskForHelp
大牛與搬運工的差距——學習方法的力量

相關文章