一個好的程式設計師的工作效率是普通程式設計師的10倍,而一個偉大的程式設計師則是普通的20-100倍。這絕對沒有誇大其詞——這是自上個世紀60年代起就開始的研究表明的。一個糟糕的程式設計師不單是一事無成,相反——不僅完不成分配給他的任何工作,還會製造各種各樣的麻煩和問題需要別人來解決。
“偉大的車工拿幾倍於普通車工的工資,但是一個偉大的程式碼作家——程式設計師卻是值得我們付出普通軟體寫手10,000倍的薪水。” –比爾·蓋茨偉大的程式設計師只需用很少的時間寫程式碼——因為很多程式碼都幾乎不用怎麼修改就能用在最終產品中。反而是那些花了很多功夫寫程式碼的程式設計師——懶惰、無知、狂妄,不去想那些老問題的解決方案,以致於問題一直是問題。偉大的程式設計師是識別和重複使用通用模式方面的高手,他們對於需要重構(重寫)程式碼來達到理想的設計毫不畏懼。糟糕的程式設計師寫出來的程式碼,總是缺乏概念上的完整性,不可冗餘性,沒有層次結構和模式可言,所以如果要重構的話就會變得異常困難,這樣還不如把這些垃圾程式碼刪掉,再重新寫過方便呢。
像其他過程一樣,軟體開發服從熵的規律。連續不斷的變化會削弱原設計的概念完整性,從而最終導致軟體的死掉。雖然說,軟體的逐漸衰敗直至死亡是不可避免的,但是如果程式設計師不能考慮到概念上的完整性的話,軟體就會迅速腐敗,在它被完成之前就一文不值毫無價值了。缺乏完整性所造成的失敗可能是軟體專案失敗的最常見原因了。(第二個最常見的原因是不能滿足客戶的需求。)軟體衰敗會以指數級的速度迅猛減緩程式,所以很多專案在快要面臨自殺式死亡之前都會被無情地抹殺。
2004年的一項研究發現,大多數的軟體專案(51%)在某個重要方面失敗,15%將完全失敗。而這已經是個進步了,要知道自1994年以來,完全失敗的比例高達31%。
雖然大多數的軟體是由團隊製作的,但卻不是一個民主的活動。通常情況下,只有一個人負責設計,而團隊中的其他人則補充細節。
程式設計是項艱苦的活計,也是一個很激烈的腦力活動。優秀的程式設計師一週7天一天21小時都在想他們的工作。那些超棒的程式碼搞不好是他們在洗澡或者睡覺的時候想出來的。正是因為這些最重要的任務無需敲著鍵盤就可以完成,開發軟體專案的時候也就沒有必要加派人手或者加班加點在辦公室熬夜了。
英文原文:Some lesser-known truths about programming
翻譯作者:IT新聞 – 蔣麗麗
相關閱讀
評論(3)