正在閱讀:優(yōu)秀程序員的兩大要素:懶 + 笨優(yōu)秀程序員的兩大要素:懶 + 笨

2005-10-27 16:08 出處: 作者:殘缺空間 責(zé)任編輯:xietaoming

   只有懶惰的程序員才會(huì)去編寫那些可以最終代替自己工作的自動(dòng)化工具,才不會(huì)成天為了實(shí)現(xiàn)相似的功能去編寫大段大段冗余重復(fù)的代碼 - 這種代碼往往是軟件后期維護(hù)和重構(gòu)的天敵。通常來說,由于惰性的驅(qū)使所產(chǎn)生出來的工具和程序?qū)⒆罱K極大的提高生產(chǎn)開發(fā)的速度。

  當(dāng)然,對于一個(gè)程序員來說,光光具備懶惰這個(gè)要素還是不夠的。在享受懶惰之前,他必須以最大的熱情和最高的效率去研究解放自己的途徑,比如:找到最有助于開發(fā)的工具,最能體現(xiàn)“一次編寫,多次復(fù)用”精神的代碼架構(gòu)的設(shè)計(jì)。只有在這些必要的工作之后,才可能真正享受輕松編程的樂趣。

  所以“懶”的精髓用一句老話來描述,那就是磨刀不誤砍柴功。如果你不想辦法磨亮手中的柴刀,就算一天二十四小時(shí)都在砍柴,效果也不如拿把鋒利的斧頭一天只砍一小時(shí)。

  從這個(gè)角度來說,Google給員工的20%自由時(shí)間是完全發(fā)揮了“懶”的能動(dòng)力。為了更好的享受偷懶的樂趣,員工會(huì)更加具有創(chuàng)造力的去高效完成自己的任務(wù)。

  夸張一點(diǎn)來說,懶惰才是人類進(jìn)步的原動(dòng)力。

   這一點(diǎn)似乎比懶更讓人不能接受。在解釋這里所說的笨的具體含義之前,我們先看看一個(gè)聰明人(或者說認(rèn)為自己足夠聰明)會(huì)做什么:

  1) 停止學(xué)習(xí)新的東西
  2) 不愿意用批判的眼光去審視自己的工作

  第1點(diǎn)將使我們很難去接受或者主動(dòng)的去研究一項(xiàng)新的技術(shù) - 即使新技術(shù)能帶給他更多工作上的便利。第2點(diǎn)會(huì)使我們無法清晰的分析自身工作的問題所在,要對其進(jìn)行改進(jìn)或者重構(gòu)就更加困難。

  從這兩點(diǎn)來考慮,作為一個(gè)程序員太自以為是不見得是件好事情。由于對自身的過于自信,往往無法客觀的看待自己和自己的工作。相反的,笨一點(diǎn)(確切的說,謙遜一點(diǎn))有時(shí)候倒有助于開發(fā)的順利進(jìn)行。舉例來說,當(dāng)程序出現(xiàn)bug的時(shí)候,最好盡早承認(rèn)問題是出在自己編寫的代碼上面而不是在于編譯器(當(dāng)然除非是字節(jié)高低位編碼方式之類的問題,這種問題編譯器會(huì)是錯(cuò)誤的根源之一)。如果你太自負(fù)的認(rèn)為自己的程序沒有問題而去猜測可能是編譯器或者其他的什么外部因素出問題的話,那么十有八九你會(huì)在調(diào)試過程中走上一長段的彎路。

  程序員應(yīng)該笨一些的更為關(guān)鍵的原因在于,當(dāng)需要思考問題的最佳解決方案的時(shí)候,往往要求我們首先要跳出思維定式。你對系統(tǒng)了解的越多,積累了越多的經(jīng)驗(yàn),就越難走出已有的局限,可以嘗試的范圍就越小。相反的,對于一個(gè)什么也不懂的門外漢來說,因?yàn)闆]有任何失敗的記憶和潛規(guī)則的約束,也就沒有什么是“不可能”的,這樣的大腦所能迸發(fā)出來的在專業(yè)人士看起來愚不可及的想法往往正是解決問題所需要的關(guān)鍵點(diǎn)所在。

  可能很多程序員都會(huì)有類似的經(jīng)歷,在面對別人(尤其是其他部門)對于一個(gè)bug的描述的時(shí)候,必須把自己擺在一個(gè)普通用戶而不是程序開發(fā)者的角度來分析問題,否則的話可能你永遠(yuǎn)都想象不到這種錯(cuò)誤也會(huì)發(fā)生。越能讓自己變得“笨”起來,越能很快的定位到問題所在。我們先看看這么一段關(guān)于web開發(fā)問題的程序員和客服人員的對話:

  “從昨天開始我們的用戶就看不到我們站點(diǎn)上的Logo了!
  “他試過重啟瀏覽器么?”
  “是的!
  “他試過重啟電腦么?”
  “是的!
  “他清空過瀏覽器Cache么?”
  “是的!
  “他的瀏覽器版本是IE6么?”
  “是的。”
  “他確信是真的看不到Logo了么?”
  “是的!
  “他是在電腦顯示器屏幕上看我們的站點(diǎn)么?”
  “什么?”
  “比如說,它可能是打印出來看不到?”
  “不。他是在顯示器上看的!
  “除了站點(diǎn)Logo之外,他是不是其他的圖片都看不到?”
  “什么?哦。我再問問他!

  從這段對話來說,估計(jì)用戶實(shí)際上是禁止了瀏覽器顯示圖片的功能(或者他兒子干的)。不管怎么樣,如果你不是用這種傻瓜式的思維方式去尋找答案的話,可能怎么也找不到問題的根源。

鍵盤也能翻頁,試試“← →”鍵
302 Found

302 Found


Powered by Tengine
tengine