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






















