程序員思維修煉:從新手到專家的5個階段
階段1:新手
Novices need recipes
---新手需要指令清單。
新手在該技能領域經驗很少或者根本沒有經驗。這里提到的經驗,指的是通過實施這項技術促進了思維的改變。舉個反例,可能一個開發人員聲稱擁有十年的經驗,但實際上只有一年的經驗重復了九次,那么這就不算是經驗。
新手非常在乎他們能否成功,沒有太多經驗指導他們,他們不知道自己的行為是對是錯。新手不是特別想要學習,他們只是想實現一個立竿見影的目標。他們不知道如何應付錯誤,所以出錯的時候,他們非常容易慌亂。
但是,如果給新手提供與情景無關的規則去參照,他們就會變得能干起來。也就是說,需要這種形式的規則:“當X發生時,執行Y。”換言之,需要一份指令清單。
當然,新手多面臨的問題是,對于某種情景,不知道那條規則是最相關的。當一些意想不到的事前發生時,他們就會不知所措。不過,總有解決辦法,可以求助一個與情景無關的規則。指令清單(與情景無關的規則)的問題在于你不能一五一十的將所有的事情解釋清楚。
規則只能讓你啟程,不會讓你走的更遠。
階段2:高級新手
Advanced beginners don't want the big picture
---高級新手不想要全局思維。
一旦經過新手的歷練,人們開始以高級新手的角度看待問題。高級新手能夠多多少少的擺脫固定的規則,他們可以獨自嘗試任務,但仍然難以解決問題。
他們想要快速獲取信息。例如,當學習一門新語言或者API時,你可能會感覺到這一點,你發現自己會快速瀏覽文檔以尋找一個方法定義或參數列表。你不想在此刻尋根問底,或者重新溫習一遍基礎知識。
高級新手能夠根據過去的經驗,逐步在正確的情境中旅采納建議,但比較吃力。同時,他們能夠開始形成一些總體原則,但不是“全貌”。他們沒有全面的理解,而且的確不想有。如果你試圖把一個更大的情景強加給該機新手,他們可能會認為該情景與那些原則不相關而忽略掉。
當公司CEO舉行全體會議并展示銷售預測圖標和數據時,你可能會看到這樣的反應,許多在這方面經驗少的員工對這些會不加理會,以為這與他們自己的工作不相關。
當然,其實這是非常相關的,它可以幫助你判斷明年你在這家公司是否還能繼續干下去。但是,你看不到這種聯系,因為你層次還不夠,只是處于比較低的技能水平。
階段3:勝任者
Competents can troubleshoot
---勝任者能夠解決問題。
在這個階段,從業者現在能夠建立問題域的概念模型,并有效地使用它們。他們可以獨立的解決自己遇到的問題,并開始考慮如何解決新的問題--那些他們之前沒有遇到的問題。他們開始尋求和運用專家的意見,并有效地利用。
與更高水平者追隨下意識反應不同,勝任者會探尋和解決問題,他們的工作耿作石基于謹慎的計劃和過去的經驗。如果沒有更多的經驗,在解決問題時,他們將難以確定關注那些細節。
你可能會看到,處于這一水平的人通常被認為“有主動性”和“足智多謀”。他們往往在團隊中發揮領導作用(無論是否有正式的頭銜)。他們是團隊里的好人,既可以指導新手,也不會經常騷擾專家。
在軟件開發領域,我們達到了這個水平,但是即使在這一水平,人們仍然無法按照我們希望的方式來應用敏捷方法--大家還沒有足夠的能力反思 和自我糾正。為此,我們需要取得突破,達到一個新的水平:精通。
階段4:精通者
Proficient practitioners can self-correct
---精通者能夠自我糾正。
精通水平的從業者需要全局思維。他們將圍繞這個技術,尋找并想要了解更大的概念框架。對于過于簡單化的信息,他們會非常沮喪。
處于精通水平的從業人員有一項重大突破:他們能都糾正遺忘不好的工作表象。他們會反思以前是如何做的,并修改其做法,期望下一次表現的更好。到這個階段,自我改進才會出現。
同時,他們會學習他人的經驗。作為精通者,他能夠閱讀案例研究,傾聽有關失敗項目的流言蜚語,觀察別人怎么做,從故事中認真的學習,即使他沒有親自參與。
伴隨向他人學習的人力而來的,是理解和運用格言經驗之談的能力,這些經驗之談猶如諺語或者格言,是可以應用于當前的情景的基本原理。經驗之談不是指令清單,它們必須在一定的情境下使用。
處于精通水平的人員知道什么地方有坑內出錯,或者更確切地說,什么地方非常有可能出錯。他們具有經驗和判斷力,能夠理解這句格言在情景中意味著什么。事實證明,理解情景是成為專家的關鍵。
同樣,處于精通水平的人可以有效地運用軟件模式,但是這不是較低技能水平所必須掌握的。精通者可以充分利用思考和反饋,這些都是敏捷方法的核心。相對早期階段,這是一次巨大的飛躍。處于精通階段的人更像是初級專家,而不是高級勝任者。
階段5:專家
Experts work from intuition
---專家憑直覺工作
專家是各個領域知識和信息的主要來源。他們總是不斷地尋找更好的方法和方式做事。他們有豐富的經驗,可以在恰當的情景中選取和應用這些經驗。他們著書,寫文章,做巡回演講,他們是當代的巫師。
專家根據直覺工作,而不需要理由。這帶來一些非常有趣的影響,并提出了一些重大問題--到底什么是直覺?
雖然專家們非常有直覺--這一點對于我們其他人來說非常神奇,他們可能會對如何得到結論完全說不清楚。他們的確不知道,只是“覺得是正確的”。
例如,醫生給病人看病。乍一看,醫生說:“我認為,這病人得了Blosen-Platt綜合征,***做一些深入檢查。”病人做了檢查,結果證明醫生是正確的。你可能要問,醫生是怎么知道的?但醫生可能會回答:“他看上去不太舒服。”
是是是,病人只是看起來“不太舒服”、不知怎的,在醫生大腦里面的各種各樣的經驗、判斷、記憶,以及所有的其他的意識的幫助下,醫生把病人身上的微妙線索結合在一起,就得出了診斷結論。也許,只是因為病人皮膚蒼白,或者是病人躺下的姿勢說明了問題,誰知道呢?
不過,這位專家知道。專家知道那些事無關緊要的細節,那些事非常重要的細節。也許不是有意識的,但是專家知道應該關注那些細節,可以放心的忽略那些細節。專家非常擅長做有針對性的特征匹配。