當Java程序員的經歷讓我知道了一些關于軟件編程的事情。下面的這些事情可能會讓朋友們對軟件開發感到驚訝:
一個Java程序員用在寫程序上的時間大概占他的工作時間的10-20%,大部分的Java程序員每天大約能寫出10-12行的能進入最終的產品的代碼——不管他的技術水平有多高。好的Java程序員花去90%的時間在思考、研究和實驗,來找出好的方案。差的Java程序員花去90%的時間在調試問題程序、盲目的修改程序,期望某種寫法能可行。
一個好的Java程序員的效率會是一個普通的程序員的十倍之上。一個偉大的Java程序員的效率會是一個普通程序員的20-100倍。這不是夸張1960年以來的無數研究都一致的證明了這一點。一個差的程序員不僅僅是沒效率—他不僅不能完成任務,寫出的大量代碼也讓別人頭痛的沒法維護。
偉大的程序員只花很少的時間去寫代碼—至少指那些最終形成產品的代碼。那些要花掉大量時間寫代碼的程序員都是太懶惰,太自大,太傲慢,不屑用現有的方案去解決老問題。偉大的程序員的精明之處在于懂得欣賞和重復利用通用模式。好的程序員并不害怕經常的重構(重寫)他們的代碼以求達到好的效果。差的程序員寫的代碼缺乏整體概念,冗余,沒有層次,沒有模式,導致很難重構。把這些代碼扔掉重做也比修改起來容易。
2004年的一項研究表明大多數的軟件項目(51%)會在關鍵功能上失敗,其中15%是完全的失敗。這比1994年前有很大的改進,當時是31%。
盡管大多數軟件都是團體開發的,但這并不是一項民主的活動。通常,一個人負責設計,其他人負責實現細節。
Java編程是個很難的工作。是一種劇烈的腦力勞動。好的程序員7×24小時的思考他們的工作。他們很重要的程序都是在淋浴時、睡夢中寫成的。因為這很重要的工作都是在遠離鍵盤的情況下完成的,所以軟件工程不可能通過增加在辦公室的工作時間或增加人手來加快進度。