一些鮮為人知的程式設計事實
我的程式設計師經歷讓我明白了一些關於軟體開發的事情。下面是一些在程式設計中可能會讓人感到詫異的事情:
1. 一個優秀的程式設計師大約只用了10%-20%的時間來編碼,而且大多數程式設計師,無論他的水平如何,其平均每天只有10-12行的程式碼最終會進入最終的軟體產品中。這是因為,優秀的程式設計師會花費90%的時間來思考、調查、研究最佳的設計。而糟糕的程式設計師則會花費90%的時間來除錯程式碼,並隨意地改動程式碼並嘗試讓程式碼工作起來。
“A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.”–Bill Gates “
一個優秀的車工其工資是一個普通車工的好幾倍,但是一個優秀程式設計師寫出來的程式碼比一個普通程式設計師要值錢一萬倍。——比爾蓋茲”
2. 一個好的程式設計師比一個普通的程式設計師多十倍的生產率。而一個優秀的程式設計師的生產率則比普通程式設計師多20-100倍。這並不是誇張(自從上世紀60年代的研究一直表明這是一個事實)。一個糟糕的程式設計師並不只是沒有產出的——他們並不僅是完成不不工作,而且還會製造出大量的讓別人頭痛並要去解決的麻煩。
3. 優秀的程式設計師花少量的時間寫程式碼——那些程式碼都會出現在最終的產品中。那些花大量的時間寫程式碼的程式設計師其實是很懶惰、很無知,或是很自大的,以至於不能使用已經存在了的解決方案來解決已有的問題。優秀的程式設計師精通於對通用的模式的識別和重用。好的程式設計師並不害怕持續地重構/重寫自己的程式碼,直到達到最理想的方案。糟糕的程式設計師的程式碼基本上都缺少概念一致性,程式碼冗長,缺少層次和模式,所以,也就很難被重構。所以,重寫他們的程式碼要比重構他們的程式碼要容易得多。
4. 軟體和其它一切事物一樣,都遵循著一致性規則。持續的更改只會讓軟體變成一潭爛泥,破壞了原始設計的概念一致性。軟體產品變成泥沼是不可避免的事情,但是因為程式設計師不考慮軟體概念一致性,而導致軟體產品更為快速地成為泥沼,這種速度快得可能會在軟體產品還沒有完成時,軟體產品已經變得沒有價值。設計概念一致性的失敗通常都會導致軟體專案的失敗(而第二大導致軟體專案失敗的原因則是釋出的軟體並不是使用者想要的)。軟體變成爛泥的速度正在呈指數級下降,太多的專案在被完結前都面臨著激增的時間和成本。
5. 一個 2004 研究報告 指出,大多數的軟體專案(51%)都會在關鍵環節出問題。而15%的專案則是完全失敗,當然,這比1994年有了很大的進步,當時完全失敗的專案是31%。
6. 雖然,幾乎所有的軟體產品都有些開發團隊,但其並不是民主的。通常,只有一個人負責設計,而剩下的人去實現細節。
7. 程式設計是一個辛苦的工作,是一個劇烈的腦力勞動。好的程式設計師24×7地在思考他們的工作,他們一般都在在洗澡和夢中編寫軟體中最重要的程式碼。因為最重要的工作只能在鍵盤之外完成,軟體專案不可能因為加班或是加人來加快進度。
相關文章
- 一些鮮為人知的程式設計真相程式設計
- 程式設計師與程式設計一些鮮為人知的事實 軟體遵循熵的定律程式設計師熵
- 關於程式設計一些鮮為人知的真相程式設計
- 鮮為人知的程式設計真相程式設計
- 6條鮮為人知的程式設計真相程式設計
- 庫克的14件鮮為人知的軼事
- 連線:摩托羅拉15個鮮為人知的事實
- 鮮為人知的JavaScript功能JavaScript
- JavaScript 那些鮮為人知的玩法JavaScript
- Python程式設計師鮮為人知但你應該知道的16個問題Python程式設計師
- 鮮為人知的 Python 語法Python
- 鮮為人知的 PostgreSQL 特性 - hakibenitaSQL
- 15 個鮮為人知的Unix命令
- 10款鮮為人知的PHP框架PHP框架
- 谷歌上市10週年,我知道的一些鮮為人知的事情谷歌
- C#連線資料庫的一些鮮為人知的方法C#資料庫
- 5 個鮮為人知 GNU 偵錯程式(GDB)技巧
- Python:鮮為人知的功能特性(上)Python
- Python:鮮為人知的功能特性(下)Python
- 鮮為人知的python位運算Python
- 有趣且鮮為人知的 Python “特性”Python
- 5個 Google Guava 鮮為人知的特性GoGuava
- 10個鮮為人知的WordPress函式函式
- Google鮮為人知的14項服務Go
- 11 個鮮為人知卻超實用的 Linux 命令!Linux
- 7個鮮為人知卻超實用的PHP函式PHP函式
- 5個鮮為人知Java集合特性Java
- 一些實用但不為人知的Unix命令
- 一份鮮為人知的Python特性Python
- 11 個鮮為人知的 Linux 命令(1)Linux
- 10 個鮮為人知的 Linux 命令(5)Linux
- 10 個鮮為人知的 Linux 命令(2)Linux
- 10 個鮮為人知的 Linux 命令(3)Linux
- 10 個鮮為人知的 Linux 命令(4)Linux
- 十個鮮為人知的Linux 命令(三)Linux
- 十個鮮為人知的Linux 命令(二)Linux
- C語言有哪些鮮為人知的特性?C語言
- 鮮為人知的Windows XP最佳化(轉)Windows