《刻意練習》:以學習編程爲例

《刻意練習》是一本神奇的魔法書,它用大量的事實案例和數據來證實了刻意練習能給一我的帶來的巨大改變。更爲難能難得的是,它不只僅只是介紹刻意練習的好處,還給讀者介紹了刻意練習的方法和注意事項,能夠說是乾貨滿滿的一本書。程序員

本文想以「學習編程」爲例,結合《刻意練習》這本書教給咱們的方式方法,闡述如何經過刻意練習來提升本身的編程水平。算法

關於練習

不斷重複只是「天真的練習」,沒法帶來進步。「正確的練習」須要好導師、有目標、有反饋。因此若是想要提升編程水平,光靠一味悶着頭努力寫代碼是不夠的,有些人寫了幾年的CRUD,可能總體的技術水平還不及剛畢業的同窗。sql

一個好的導師很可貴,他不只要本身在編程水平是有必定的成就,還應該具備一些教育方面的經驗,才能更好的指導你。通常來講,大一點的公司都會有老人帶新人的機制,能夠利用這個來找一個比較好的前輩帶一帶。另外就是經過看書或看視頻其實也是一種很不錯的學習方式,寫書和出視頻的老師天然是具有上述條件的。編程

有目標指的是應該要有明確的目標,而不是一個寬泛的目標。好比「我要提升Java水平」明顯就是一個寬泛的目標,沒法量化。明確的目標應該是什麼樣子呢?好比,我要學習JVM的基礎知識,我要學完23種設計模式等等。一個好的目標還應該是可分解的,有時間或成果量化的。好比,我須要在一個月內學習完Java多線程技術,第一週學習多線程模型,第二週學習多線程基本的類和接口,第三週閱讀JDK裏面關於多線程方面的工具類的源碼,第四周寫多線程案例Demo,最後產出一個Java多線程系列筆記或者博客。設計模式

有反饋指的是能夠量化的反饋。好比寫一篇技術博客,有多少閱讀量,點贊量,評論量?寫一個開源項目有多少star,作一個LeetCode有沒有經過,耗時如何?多線程

上述算是對「有目的的練習」的一個闡述。刻意練習是在有目的的練習基礎上的。總結起來,有目的的練習應該具備如下四個特色:架構

  1. 有目的的練習具備定義明確的特定目標框架

  2. 有目的的練習是專一的工具

  3. 有目的的練習包含反饋學習

  4. 有目的的練習須要走出溫馨區

對於任何類型的練習,這是一條基本的真理:若是你歷來不迫使本身走出溫馨區,便永遠沒法進步。

關於心理表徵

《刻意練習》這本書用了大量的篇幅來介紹心理表徵。做者認爲,刻意練習的核心之一在於經過練習來建立大量的心理表徵,而後再使用這些心理表徵反過來幫助練習。

那心理表徵究竟是什麼?

我認爲它是一我的學習某樣東西的時候,本身心中造成的一個體系架構。好比咱們學習算法,就會造成一個關於算法的體系架構,也就是心理表徵。而當咱們再學習到Mysql的底層索引原理的時候,就會想到算法關於平衡樹方面的知識;當咱們學習JDK源碼裏關於集合框架的時候,就會想到鏈表、棧與隊列、紅黑樹等等。

咱們的知識造成了一個循環,學得越多,懂得越多。當咱們積累了大量的知識之後,再學同樣有關聯的東西,就能快速學會。

刻意練習

刻意練習提倡「邊幹邊學」,它令人們熟悉練習的習慣,並思考如何練習。這與咱們學習編程的理念是同樣的,幾乎沒有人會對你說:你只須要看書,看博客,看視頻就能學會編程。有經驗的前輩通常會告訴你,要有輸入,也要有輸出。學習了的東西,要經過寫代碼或者作筆記或者寫博客的方式,讓知識變成你本身的,更加牢固。

你經過寫代碼,不斷地寫代碼來提升本身的編程水平,而後經過思考,反思來決定該如何寫代碼才能寫得更好。

傳統的方法也一直是先找出關於正確方法的信息,而後很大程度上讓學生去運用那些知識。刻意練習則徹底相反,它只聚焦於績效和表現,以及怎樣提升績效和表現。

編程也是同樣,老闆和上級其實真正在乎的並非你懂多少理論,而是你寫得代碼質量好很差,你能不能快速地實現他們須要的功能,能不能解決技術難題。

你的代碼寫得比別人快,你的代碼寫得比別人漂亮,你能快速解決別人不能解決的難題,那你就牛逼。

關於專一與堅持

刻意練習裏面有一個觀點顛覆了我之前的認知。我一度認爲,一我的能不能專一,能不能堅持作一件事,除了熱愛,那必然是意志力越高的人越能專一和堅持。

然而刻意練習告訴我,意志力根本不存在!所謂意志力,實際上是保持動機與專一的結果。

咱們先來看看如何讓本身保持專一,不專一的練習是沒有效果的。刻意練習提供了一個觀點,若是練習的時間更短,那就會有更好的注意力

對於這個觀點我是絕對認同的。好比看書,若是想一次性看完一本書,那對於通常人來講絕對是很是困難的。可是若是把它拆成一章一章,天天看一點,那就會好不少。而在平常的工做中或者學習中,咱們可使用「番茄鍾」來管理本身的時間與保持專一。這裏不具體介紹番茄鍾,有興趣的同窗本身去了解一下,親測有用!一個番茄鍾25分鐘,很少很多剛恰好。

再來談談動機。對於一個程序員來講,動機是再明顯不過的了:升職加薪變大佬。但有時候這個動機並不能轉化爲一種強有力的動力來促使咱們去學習,去提升技術水平。而某些太強烈的動機(好比想跳槽)又很難持續保持。

《刻意練習》告訴咱們,咱們要保持動機,要麼強化繼續前行的理由,要麼弱化停下腳步的理由

仍然以學習算法爲例。要強化繼續前行的理由,咱們能夠在學習到必定階段給本身一些小的獎勵,好比刷完100個算法題,給本身買個好的鍵盤或者耳機。還有來自朋友、同事、家人乃至默認人的鼓勵也很重要。我在網上寫博客分享給你們,若是讀者的點贊或者好評,那也是很是能激勵咱們繼續學習的!

而弱化停下腳步的理由。好比練習累了就合理休息一下,學習累了就暫時玩一下,若是以爲本身一我的學技術太孤獨,就找一羣小夥伴一塊兒學習或者加入一個技術社區。目標要精心設置且合理,這樣才能獲得達到目標的成就感,不會由於達不到目標而氣餒放棄。

願你以夢爲馬,劍指天涯。

相關文章
相關標籤/搜索