2017年7月9日 星期日

刻意練習

本書可以說是最近最暢銷的書籍之一,六月出版,現在已經三刷了,筆者也在週末 K 完了,來說說心得。

本書替「坐著聽講」宣判了死刑

是的,坐在椅子上看別人用十幾張投影片演講,學不會任何東西,頂多只能學到「司機的知識」。這個笑話源自量子力學的祖師爺之一普朗克(Max Planck),下文取自「思考的藝術」一書:

1918年,普朗克榮獲諾貝爾物理獎;此後,他展開了全德的巡迴演講。不管走到哪兒,普朗克所講的總是同一套新的量子力學內容;久而久之,就連他的司機都會背了。有一天,普朗克的司機突發奇想向他提議道:「普朗克教授,您一直都在重覆同一套演說,想必您本人也一定感到很無聊了吧?我想提個建議,不如這樣好了,等我們到了慕尼黑之後,就由我來替您演講;您就戴上司機的帽子,坐在前排,假裝是司機。或許這樣,我們兩個都能從中獲得一點消遣呢!」普朗克也覺得這個建議聽起來挺有意思,便欣然地接受了。於是,普朗克的司機就假扮成他,在一大群出類拔萃的觀眾面前發表演說。演講進行了一段時間後,台下有位物理學教授竟然冷不防地提出了一個問題。可是,這位假扮成普朗克的司機不僅不慌張,還反過來用帶點輕蔑的口吻說:「我萬萬沒料到,在慕尼黑這麼進步的城市裡,竟然會有人提出這麼簡單的問題。既然如此,這種問題就交給我的司機來回答好了!」

作者以醫療為例,被動聽講的方式無論對醫生的表現或患者的病況發展毫無幫助。演講、座談會之類的活動對醫生職業的幫助可說微乎其微。

作者以數據指出,含互動成份的教育方式效果最顯著。最好的方法是設計出以技能培養為基礎的新訓練計畫,來輔助或完全取代以知識為基礎的訓練方式。

技能無法轉移

這大概是最令大家驚訝的一件事,書中指出資深外科醫師並未因為擁有較多知識或在傳統手術上經驗豐富,就在學習腹腔鏡手術技能時佔盡優勢,經過證明,這種技能得另外培養。

這證明什麼了呢?就是你可以不用再去買什麼「哈佛學生必做的一百道邏輯題目」之類的書了,哪怕你做的滾瓜爛熟,對你學習數理仍然沒有什麼幫助。同理可證,這對學習 coding 也沒有什麼幫助,最好的方式仍然是直接打開電腦,動手寫程式(這大概可以證明為何類似交大這種學校企業搶著要,因為作業特多)。

編程之魂裡的大師都不約而同指出一點,就是多讀「好程式」,還有教會別人,由學生的意見回饋了解自身不足之處,這種回饋也是此書再三強調的重點,沒有回饋,你學不會任何東西。

筆者之前有段時間也是進行類似的特訓,先自行解一次 leetcode,然後看一次解答,了解自己哪些地方寫的不好。最後寫成 blog (哈,我沒有學生可以教),但寫成 blog 也必須強迫自己徹底了解問題,多少也能收到類似的效果。

自學的三個重點

  • 專注投入
  • 意見回饋
  • 解決問題
所以練習起來最困難的技能就是那種需要與人互動的那一種。比方說簡報,在家裡把簡報內容大聲念出來沒什麼幫助,你需要聽眾,這個聽眾根據演講速度、口條、聽眾可能提問的問題、字型圖表...給出具體建議來改善簡報技能。

這也證明了為何家裡做小生意的兒童,長大後社交能力大都超過那些父母是一般上班族或公務員的兒童,因為他們天天都在練習社交、取得回饋,自然交友就比一般人順利。所以「生意囝歹生」可能根本不成立,把小孩送去小商鋪當學徒,學習與客人應對記帳還比較靠譜。

如果你 K datasheet 卻怎麼也看不懂 IC 或 protocol,你需要的是取得回饋,示波器、邏輯儀分析儀、wireshark 都是你的好幫手。這也證明了為何大家覺得 Richard Steven 寫的 TCP/IP Illustrated 是聖經,因為該書用了大量的 UNIX 工具作為示範,你也可以如法炮製取得回饋。

聰明 == 自我覺察能力

本書替「聰明」這件事下了一個令人心服口服的定義,就是表現頂尖的專家或學生,對於錯誤的覺察能力都非常高。正所謂高下有分先知先覺、後知後覺、不知不覺。

但這種能力只能天生還是後天可以培養?作者認為可以後天培養,但兒童的大腦最好塑形,所以說很多人並非「沒天份」而是被「練歪了」。

理解是短期記憶調動長期記憶的成果,所以說真正有優勢先天上的「天才」,常常都是天生記憶力特強的那群人,以計算機科學的遞迴為例,學起來特別吃力的原因並非原理難懂,而是要記憶堆疊中的組塊深度,否則無法拼湊出整個事實(如果有人可以找出訓練方法,未來程式設計變成國民標準課程時應該可以當補習班名師)。

重複練習(7/20補充)

講到重複練習可能很多人想到「一萬小時」這個流行的概念,這個概念最早出自異數這本書,不過作者沒講清楚該怎麼練這一萬小時。後來在萬萬沒想到裡稍微有把這件事講清楚,這邊歸納幾個重點:
  • 在「學習區」練習
  • 交錯練習:學習以不同方式、不同角度練習
  • 練習需要取得快速回饋
什麼是學習區?

一言以蔽之,就是那些給你一些提示,你就可能知道怎麼做的題目。其實在怎樣解題這本書也有提到,如果數學教師發現學生有解題上的困難,可以給予一些提示協助學生解題。

交錯練習其實就是不能永遠用同一種手段練習,就好比拳擊手不是只有在練對打,跳繩,重訓,跑步都是訓練的一部分。正如同少林寺講究「拳禪合一」,行走坐臥都是練習的一部分。

取得快速回饋最好就是有一名教練/老師/強者我朋友在旁邊協助你發現、改正錯誤。如果沒有人可以協助或請不起老師怎麼辦?有一種方式就是模仿高手的作品,比方說你寫程式可以先自己練習寫一次,然後參考高手的作品,再「回想」看自己有哪些地方能改進,回想也是一種強大的練習方式。

照本書的理論來看,恐怕很多企業推行的線上課程(例如先叫你看一段影片,然後做問答題或選擇題)成效有限,作者主張「能夠做到什麼比知道什麼重要」。

就好比天龍八部裡面有個角色叫王語嫣,她熟知各大門派的武功,本身卻使不出一招半式。---「說起來天下無敵,做起來無能為力」。

本書也提到很多學習未必要練到一萬小時才有成效,練習的質量才是重點,一萬小時只是一個迷思(人生有幾個一萬小時?)。

後記

這本書可以說替學習這件事找到了新聖杯,使「動手做」王者回歸,找出德國學徒制教育為何有效...這樣的「勵志書」大大的超越了市面上一般心靈雞湯之類的樹木殺手,非常值得一讀。

2 則留言:

  1. 讚啊。

    你應該知道我為什麼有空就想寫寫部落格的原因了吧。尤其是一些技術性文章。

    另外,你有提到一個重點:(這大概可以證明為何類似交大這種學校企業搶著要,因為作業特多)

    這一點我可以體會到了。所以我就跟家裡某人說:

    上課只是讓你懂得Scheme 而已,但職場上碰到的第一關就是要你的Skill 。

    兩者不可偏廢。

    當然啊~我也贊成交大校長最近的主張:非學術型的大學,不應該設立博士班。

    因為從高職到台大各級學校,都有資訊系...那到底如何定位一個資訊科系的學生

    的 Job Definition ?

    我記得以前我們上班時,你回答過我一句話:不是一看到資工系畢業的人,

    就是要他又要寫程式,管MIS...對啊~難道台大資工系的學生就是每天coding 嗎?

    我聽過更誇張的是:學校裡資訊組長,除了要維護學校網頁之外,連投影機問題也

    歸他管。那就不用說:人家上級長官好心添購筆電啊,或是家長會捐贈電腦啊...

    最後只是把他給操死而已。就不用說要懂甚麼程式語言或是甚麼簡單的DIY 課程了。



    回覆刪除
    回覆
    1. 很多人大概希望台灣像美國那樣,很多大學改成教育型的文理學院,不過台灣公私立大學的老師升等還是看論文,那跑出一堆博士班就不奇怪了。而且就我以前聽到的(114畢業的老師說的),博士班就是一種辦學指標,表示你學校辦得好教育部才讓你設立博士班(所以1x年前我那所大學有的時候老師可驕傲的),如果說要改...那一定一堆人跳腳,得罪一堆既得利益者跟努力到一半的人。

      至於資訊組長,我最近面試時該公司長官也是跟我說...老闆很難懂為何軟體工程師有分那麼多種,device driver、web、app...不都一樣?台灣人對於別人的專業總是帶著一種先入為主的成見

      刪除