趙永華

程序員大約會用10%~20%的時間寫代碼,無論其技巧有多高,他們每天寫的那么多代碼,真正用于最終產品的行數大約只有10~12行。在開發期內,訓練有素的程序員真正用于寫代碼的時間不超過10%,他總會把大部分時間用在思考、斟酌和試驗去找出最佳設計。糟糕的程序員則不斷地忙著隨手改動代碼,把大量時間用于代碼調試和演示運行結果。
蓋茨曾譏諷說,平庸的代碼寫手制造的一萬行代碼往往充滿垃圾,價值難抵編程高手的一行代碼。的確,良好的程序員,其編程效率往往比普通人高出十倍,而杰出程序員的編程效率更是高出20~100倍。有研究報告指出,這種結論從1960年代始至今一直象摩爾定律一樣沒有變化。拙劣的程序員不僅效率低下,還會為他人乃至整個團隊制造大量傷腦筋的后續工作。
那些整天面對電腦,孜孜不倦、埋頭編寫代碼的程序員其實很多時候是懶惰的,他們只是眼睛和點擊很勤快,卻疏于思考,他們要的無非是有個勉強的結果;而優秀程序員總是善于思考和反省,他并不畏懼推翻已有的代碼,只是為了達到更高的標準。
軟件像其它事務一樣,也存在著所謂熵定律。代碼的頻繁改動會導致軟件變質,偏離原有的設計,甚至會造成軟件工程整體潰壩之災,這也許是很多軟件項目耗費不菲人力物力卻最終流產的重要原因之一。另外,交給用戶的產品并不符合他們的真正需求也是一個常見敗因。2004年有專業媒體調查報告稱,全球軟件項目產品中大約有51%存在重要缺陷,有15%則徹底報廢。
總之,程序員是一份充滿辛苦的角色,屬于高強度復雜腦力勞動。很多優秀的程序員將這項職業默認為24(小時)+7(天)的工作。他們象阿基米德和愛迪生那樣,往往在洗浴間或睡夢中突發靈感。請記住:編寫程序最重要的工作并不是來自鍵盤和鼠標,軟件項目并不是靠人海戰術和夜以繼日的加班就能完成的體力活,而是來自思想。