- 相關(guān)推薦
程序員心底的小聲音[1]
]編程大約有三個(gè)境界,新手,高手,和高不成低不就的中手,
程序員心底的小聲音[1]
。這三個(gè)境界,大致和王國(guó)維先生劃定的做學(xué)問(wèn)的三個(gè)境界一一對(duì)應(yīng)。 一般來(lái)說(shuō),如果不經(jīng)過(guò)幾十萬(wàn)行的代碼的錘煉(衣帶漸寬終不悔,為伊消得人憔悴),或者長(zhǎng)期在一個(gè)高手團(tuán)隊(duì)里面打磨切磋,那么無(wú)論怎么樣的理論熟悉,打字熟練,考試全A,編程起來(lái),都應(yīng)該算是中手。一個(gè)中手如果機(jī)緣很好,得到高人親自指點(diǎn),則能很快成長(zhǎng)為高手,如果沒(méi)有這樣的機(jī)緣,那就要在"眾里尋她千百度"這個(gè)層次苦苦的求索錘煉很久,才能"驀然回首".讀書(shū)是一種很好彌補(bǔ)沒(méi)有高手在場(chǎng)的方法,都說(shuō)書(shū)是最好的老師嘛?墒乾F(xiàn)實(shí)是,高手寫(xiě)給中手的書(shū)很少。在任何行業(yè),適合新手的入門(mén)的書(shū)很多,適合中手的書(shū)就很少。 原因有兩個(gè),一來(lái)高手極少愿意耐心的的指點(diǎn)成長(zhǎng)秘訣,就算寫(xiě)了,也是蜻蜓點(diǎn)水,因?yàn)檫@些經(jīng)驗(yàn)啊結(jié)論啊,都被他們本身提煉成了珠璣,他們覺(jué)得最重要的也就是這么寥寥幾句,也沒(méi)有太多的廢話好寫(xiě)。
而讀者如果沒(méi)有類似的經(jīng)歷,則看到這些珠璣,只是覺(jué)得把玩頗為有趣而已,極少能有同感。 鮮有高手,能把技術(shù)書(shū)寫(xiě)成散文集,如 Brooks 一樣,把經(jīng)驗(yàn)教訓(xùn)和經(jīng)歷背景等一一道來(lái),并且從這些經(jīng)歷中抽出一般性的知識(shí)。所以,高手的風(fēng)格一般是浮光掠影概括一下大致自己領(lǐng)會(huì)到的幾個(gè)原則和教訓(xùn)。這些寥寥數(shù)語(yǔ)的珠璣,對(duì)于其他高手來(lái)說(shuō)一看就懂,但是對(duì)于中手來(lái)說(shuō)就很難以理解。所以很多高手寫(xiě)出來(lái)的給中手看的書(shū)就曲高和寡。二來(lái),中手其實(shí)水平差異巨大,偏好也各不一樣,有的或許根本認(rèn)識(shí)不到自己應(yīng)該走的成長(zhǎng)軌跡,有的認(rèn)為這些書(shū)籍是片面知識(shí),所以把不喜歡的書(shū)都給扔垃圾堆了,光撿自己喜歡的書(shū)看;有的未必看得上高手的經(jīng)驗(yàn),認(rèn)為高手說(shuō)的那些自己也早就領(lǐng)悟到了。所以,也不喜歡購(gòu)買(mǎi)這些書(shū)籍。這兩個(gè)原因,就造成了高手提攜中手的書(shū)在市場(chǎng)上很少見(jiàn)到。
我們前面說(shuō)了,對(duì)于中手,特別是在"尋她千百度"這個(gè)層次的中手來(lái)說(shuō),或許本身已經(jīng)撿到了一些珠璣,或許對(duì)于像 《Pragmatic Programmer》 里面說(shuō)的那些 Tip,有的是深有同感的,
資料共享平臺(tái)
《程序員心底的小聲音[1]》(http://www.szmdbiao.com)。 比如 DRY (Don't Repeat Yourself 不要重復(fù)你自己), 基本上大家都知道,可是在實(shí)際中(至少我自己)還是不停的一次一次的犯錯(cuò)誤,做事情不符合 DRY 原則(一次一次犯這個(gè)錯(cuò)誤本身也是一個(gè)DRY錯(cuò)誤,因?yàn)镈RY原則要求你對(duì)于每種錯(cuò)誤你只能犯一次)。 讀到的時(shí)候深有同感,寫(xiě)代碼的時(shí)候卻忘到 Java 國(guó)去了,這還真不是個(gè)案,是非常普遍的現(xiàn)象。能不能讓正確的原則指揮正確的行動(dòng)本身,其實(shí)就是區(qū)分是否是高手的一個(gè)顯著標(biāo)志。 試想,兩個(gè)都了解KISS原則的程序員在一起寫(xiě)代碼,高手的代碼必然是自然流露出 KISS 的優(yōu)雅,而中手或許需要旁人提醒和多次重構(gòu),才能達(dá)到理想的狀態(tài)。 出現(xiàn)這個(gè)問(wèn)題的原因很明顯–中手沒(méi)有完全內(nèi)化 KISS 原則,所以尚且不能"運(yùn)用自如". 內(nèi)化是一個(gè)非常復(fù)雜的認(rèn)知過(guò)程,本身涉及到大腦中 mind set 和 paradigm 的切換, 所以必然不是一個(gè)簡(jiǎn)單的隔夜就能完成的過(guò)程,這也就是為啥能夠"消得人憔悴",但是切換一旦完成,實(shí)踐中就會(huì)自然流露出這種新的認(rèn)識(shí),也就是到了一個(gè)新的境界,發(fā)現(xiàn)燈火闌珊處。
那么原則和知識(shí)的內(nèi)化這個(gè)過(guò)程怎么能夠加速呢?也就是說(shuō),怎么較快的到達(dá)高手境界呢? 可以肯定的說(shuō),光靠對(duì)自己說(shuō)我"下次一定按照這個(gè)原則這樣做"是不行的。認(rèn)知科學(xué)認(rèn)為,頻繁的高強(qiáng)度的外部刺激和自主的有意識(shí)的反復(fù)提醒是加速內(nèi)化的兩個(gè)重要方法。 第一個(gè)方法需要外部環(huán)境的支撐。 試想,如果一個(gè)程序員不是天天和復(fù)雜文本處理打交道,他必然沒(méi)有足夠外部刺激來(lái)熟悉和內(nèi)化正則表達(dá)式; 如果一個(gè)程序員不是天天和極度復(fù)雜的大項(xiàng)目打交道,用全自動(dòng)編譯環(huán)境和自動(dòng)單元測(cè)試也顯得無(wú)甚必要,所以,除非你正好掉進(jìn)了一個(gè)天天有高強(qiáng)度訓(xùn)練的環(huán)境,否則全靠第一點(diǎn)是不可能的。 尤其是自學(xué)一門(mén)語(yǔ)言和一門(mén)技術(shù)的程序員,往往在沒(méi)有高強(qiáng)度訓(xùn)練之前就拿著這些技能投入工作了,因此想成為某方面的高手,只能采取第二條路,就是有意識(shí)的強(qiáng)化實(shí)踐和反復(fù)提醒。
【程序員心底的小聲音[1]】相關(guān)文章:
程序員的時(shí)空定理[1]07-28
IT人對(duì)于現(xiàn)在的“程序員”的看法[1]08-14
程序員:你是要學(xué)歷還是要經(jīng)驗(yàn)[1]09-27
IBM總架構(gòu)師:話說(shuō)程序員的職業(yè)生涯[1]07-29
畢業(yè)心底感言09-25
1+1親子游戲09-30
1乘1等于1打一成語(yǔ)06-24
讓人心底黯然流淚的傷心句子06-27
感悟人生的經(jīng)典句子 觸碰心底07-19
微軟的考題(1)08-18