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