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