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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

鍵盤(pán)也能翻頁(yè),試試“← →”鍵
302 Found

302 Found


Powered by Tengine
tengine