用Kolb學習模型來學程式設計

方老司發表於2018-02-01

小推廣
講堂《60分鐘徒手擼出Spring框架》,別隻會用,乾脆自己擼一個輪子吧

一 前言

1984年, 大衛·庫伯曾在他的著作《體驗學習:體驗——學習發展的源泉》提出了學習圈理論,與他認為經驗學習過程是由四個適應性學習階段構成的環形結構,包括具體經驗(Concrete Experience),反思性觀察(Reflective Observation),抽象概念化(Abstract Conceptualization),主動實踐(Active Experimentation)。

二 學習的四個階段

他把學習分為了四個階段

clipboard.png

1 具體的經歷(feeling):經歷指的是透過特殊的經歷、人與人的交流等,偏向從感覺中獲取的經驗
2 意識反映(watching):透過不同角度觀察,判斷事物
3 形成概念(thinking):邏輯性的思考問題
4 踐行概念(doing):實踐活動,包括獨立完成以及讓別人來一同完成

雖然是四個階段,但學習的內容不同,開始的環節也是不同的,我們可以舉幾個例子:

騎腳踏車
首先觀察別人騎(watching);在心中形成概念(thinking);而後你去請別人教你,獲取感受和經驗(feeling);最後你就自己騎,踐行之前形成的概念(doing)。

學程式設計
最快的學習方法是先做,根據文件先寫起來,就是先實踐(doing);做完後想象自己幹了什麼(thinking);然後閱讀文件(watching);不懂的再去請教別人(feeling)

三 每個人都有不同的學習模型

根據這四個階段劃分了四個象限,每種學習模式對應在一個象限裡面,每個人對應一種學習模式,如下圖所示

clipboard.png

1 感覺和觀察者(Diverging:feeling and watching)

我們可以理解為觀察者模式。他們更擅長觀察,而不是幹事。能夠多個方面觀察問題,Kolb把它稱為發散(Diverging)是因為他們更擅長參與brainstorm,擅長提出點子,提出問題,吹nb。這些人擅長從課程、書本以及畫面上獲得知識。

2 觀察和思考者(Assimilating: thinking and watching)

他們更關注邏輯和概念,不太善交往,也不太善於從實踐中獲取知識。他們更擅長從書本、講座、模型和思考中獲得知識,能夠從細節推匯出全域性,學霸一般就是這些人,俗稱哲學家。如果大家看過《心靈捕手》,當中有一個天才,只要看一遍書,就能理解,並且能記住,他就是這類人。

3 實踐和思考者(Converging:thinking and doing)

這類人傾向於去解決實際問題,動手能力比較強,偏愛技術,邏輯思維能力非常強,適合於去做工程師。這些人也必須透過實際的動手來掌握知識,不太適合填鴨式教育,必須透過觸覺、聽覺等等的一系列反饋在心中提煉、組合成概念,知識的習得必須透過動手來完成。

4 感知和實踐(Accommodating:feeling and doing)

與思考不同,他們更傾向於直覺。會用其它人的分析結果,並付諸實踐,更偏向於執行,透過錯誤來學習。我們絕大多數人都是屬於這種人,而且很不幸的是,這種模型並不能單單的透過看書,聽課來吸收知識,你需要做的是記錄課堂上的重點,並且一定要記錄下所犯的錯誤,並且反覆觀看。

四 語言學習的方法

有些人可能透過感受和觀察就能很好的學習了,比如我們所熟知的一些學霸。然而很不幸的時,我們大多數人(80%)是後兩種,必須透過大量的實踐活動來理解知識,單純的看書,看講座,看影片是沒有任何用處的。想必大家在學習程式設計過程中都看過不少書,或者是看過不少影片教程,或者還在機構強化訓練,但這有用麼?

程式設計是一門以實踐為主的學科,按照科學的學習順序,應該是先實踐(doing);做完後想象自己幹了什麼(thinking);然後閱讀文件(watching);不懂的再去請教別人(feeling)。因此,程式設計應該先擼開袖子幹,不懂去思考,去讀文件,去請教他人;而不是先看文件,看影片教程。你是否有這樣的經歷,為了解決一個技術點查閱了大量文件,頭暈腦脹,實在沒有頭緒,但稍微動筆寫一下靈感就來了,然後一下子問題就豁然開朗。因為程式設計是一門需要實際動手的技能,需要真正的動手才能在腦海中留下深刻的印象。

而作為一門語言,跟語文、英語有著類似之處,大家可以回想學習語言的第一步是如何邁出的,是模仿:是別人說,然後跟著說,自然而然的就會了。新東方也有一個著名的段子,“背了5本新概念英語,去美國驚呆了教授,怎麼能有如此地道的外國學生!”。程式設計也一樣,先模仿,先照著書、影片寫起來再說,至於它在幹什麼,先不用搞那麼清楚(你也搞不清楚),寫完了在去查文件,去思考。因此,擼一個demo,可能是最快掌握一門新技術的方式。

反之,如同應試教育中的學英語的方式,可能都是錯的。我們小學、初中、高中英語怎麼學的呢?背單詞,背完單詞後講語法,然後拆解課文,做題...最為一個陰謀論者,懷疑有關部門是為了給我們人生增加難度才怎麼幹的:語言本來就是一個整體,將單詞都拆解、割裂出來去一個個去死記硬背,是痛苦而又無效的。最有效的方法就是:模仿->重複->輸出:背課文,背完後反覆去理解,去品味,而後跟人交流、或者寫作來輸出出來,這才是科學的學習方式。

可以採取相同方式學程式設計,先模仿:別人的demo,gayhub上的專案,或者簡單點用影片教程;模仿後去查文件搞明白自己寫的是什麼;最後輸出、創造。一開始就看書,看文件,看影片教程是沒有任何用途的,再nb的大牛都無法把知識點塞到你腦裡。

推廣一個講座,《60分鐘徒手擼出Spring框架》,看再多原始碼也是沒有用的,乾脆實際動手擼一個吧。

相關文章