|
我那程序員的經(jīng)歷讓我知道了一些關(guān)于軟件編程的事情。下面的這些事情可能會讓朋友們對軟件開發(fā)感到驚訝:
1. 一個程序員用在寫程序上的時間大概占他的工作時間的10-20%,大部分的程序員每天大約能寫出10-12行的能進入最終的產(chǎn)品的代碼——不管他的技術(shù)水平有多高。好的程序員花去90%的時間在思考、研究和實驗,來找出最優(yōu)方案。差的程序員花去90%的時間在調(diào)試問題程序、盲目的修改程序,期望某種寫法能可行。“一個卓越的車床工可以要求比一個一般的車床工多拿數(shù)倍高的工資,但一個卓越的軟件寫手的價值會10000倍于一個普通的寫手。”——比爾蓋茨
2. 一個優(yōu)秀的程序員的效率會是一個普通的程序員的十倍之上。一個偉大的程序員的效率會是一個普通程序員的20-100倍。這不是夸張——1960年以來的無數(shù)研究都一致的證明了這一點。一個差的程序員不僅僅是沒效率——他不僅不能完成任務(wù),寫出的大量代碼也讓別人頭痛的沒法維護。
3. 偉大的程序員只花很少的時間去寫代碼——至少指那些最終形成產(chǎn)品的代碼。那些要花掉大量時間寫代碼的程序員都是太懶惰,太自大,太傲慢,不屑用現(xiàn)有的方案去解決老問題。偉大的程序員的精明之處在于懂得欣賞和重復(fù)利用通用模式。好的程序員并不害怕經(jīng)常的重構(gòu)(重寫)他們的代碼以求達(dá)到最好效果。差的程序員寫的代碼缺乏整體概念,冗余,沒有層次,沒有模式,導(dǎo)致很難重構(gòu)。把這些代碼扔掉重做也比修改起來容易。
4. 軟件遵循熵的定律,跟其它所有東西一樣。持續(xù)的變更會導(dǎo)致軟件腐爛,腐蝕掉對原始設(shè)計的完整性概念。軟件的腐爛是不可避免的,但程序員在開發(fā)軟件時沒有考慮完整性,將會使軟件腐爛的如此之快,以至于軟件在還沒有完成之前就已經(jīng)毫無價值了。軟件完整性上的熵變可能是軟件項目失敗最常見的原因。(第二大常見失敗原因是做出的不是客戶想要的東西。)軟件腐爛使開發(fā)進度呈指數(shù)級速度放緩,大量的軟件在失敗之前都是面對著突增的時間要求和資金預(yù)算。
5. 2004年的一項研究表明大多數(shù)的軟件項目(51%)會在關(guān)鍵功能上失敗,其中15%是完全的失敗。這比1994年前有很大的改進,當(dāng)時是31%。
6. 盡管大多數(shù)軟件都是團體開發(fā)的,但這并不是一項民/主的活動。通常,一個人負(fù)責(zé)設(shè)計,其他人負(fù)責(zé)實現(xiàn)細(xì)節(jié)。
7. 編程是個很難的工作。是一種劇烈的腦力勞動。好的程序員7×24小時的思考他們的工作。他們最重要的程序都是在淋浴時、睡夢中寫成的。因為這最重要的工作都是在遠(yuǎn)離鍵盤的情況下完成的,所以軟件工程不可能通過增加在辦公室的工作時間或增加人手來加快進度。
英文原文:Some lesser-known truths about programming
it知識庫:關(guān)于編程,鮮為人知的真相,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。