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