程式設計師必知

2021-06-01 18:29:43 字數 1116 閱讀 7540

1.乙個程式設計師用在寫程式上的時間大概佔他的工作時間的10-20%,大部分的程式設計師每天大約能寫出10-12行的能進入最終的產品的**——不管他的技術水平有多高。好的程式設計師花去90%的時間在思考、研究和實驗,來找出最優方案。差的程式設計師花去90%的時間在除錯問題程式、盲目的修改程式,期望某種寫法能可行。「乙個卓越的車床工可以要求比乙個一般的車床工多拿數倍高的工資,但乙個卓越的軟體寫手的價值會10000倍於乙個普通的寫手。」——比爾蓋茨

2.乙個優秀的程式設計師的效率會是乙個普通的程式設計師的十倍之上。乙個偉大的程式設計師的效率會是乙個普通程式設計師的20-100倍。這不是誇張——2023年以來的無數研究都一致的證明了這一點。乙個差的程式設計師不僅僅是沒效率——他不僅不能完成任務,寫出的大量**也讓別人頭痛的沒法維護。

3.偉大的程式設計師只花很少的時間去寫**——至少指那些最終形成產品的**。那些要花掉大量時間寫**的程式設計師都是太懶惰,太自大,太傲慢,不屑用現有的方案去解決老問題。偉大的程式設計師的精明之處在於懂得欣賞和重複利用通用模式。好的程式設計師並不害怕經常的重構(重寫)他們的**以求達到最好效果。差的程式設計師寫的**缺乏整體概念,冗餘,沒有層次,沒有模式,導致很難重構。把這些**扔掉重做也比修改起來容易。

4.軟體遵循熵的定律,跟其它所有東西一樣。持續的變更會導致軟體腐爛,腐蝕掉對原始設計的完整性概念。軟體的腐爛是不可避免的,但程式設計師在開發軟體時沒有考慮完整性,將會使軟體腐爛的如此之快,以至於軟體在還沒有完成之前就已經毫無價值了。軟體完整性上的熵變可能是軟體專案失敗最常見的原因。(第二大常見失敗原因是做出的不是客戶想要的東西。)軟體腐爛使開發進度呈指數級速度放緩,大量的軟體在失敗之前都是面對著突增的時間要求和資金預算。

5.2023年的一項研究表明大多數的軟體專案(51%)會在關鍵功能上失敗,其中15%是完全的失敗。這比2023年前有很大的改進,當時是31%。

6.儘管大多數軟體都是團體開發的,但這並不是一項民/主的活動。通常,乙個人負責設計,其他人負責實現細節。

7.程式設計是個很難的工作。是一種劇烈的腦力勞動。好的程式設計師7×24小時的思考他們的工作。他們最重要的程式都是在淋浴時、睡夢中寫成的。因為這最重要的工作都是在遠離鍵盤的情況下完成的,所以軟體工程不可能通過增加在辦公室的工作時間或增加人手來加快進度。

英文原文:

some lesser-known truths about programming

程式設計師必知3大查詢

三種查詢演算法 順序查詢,二分法查詢 折半查詢 分塊查詢,雜湊表 以後談 一 順序查詢的基本思想 從表的一端開始,順序掃瞄表,依次將掃瞄到的結點關鍵字和給定值 假定為 a 相比較,若當前結點關鍵字與 a相等,則查詢成功 若掃瞄結束後,仍未找到關鍵字等於 a的結點,則查詢失敗。說白了就是,從頭到尾,乙...

程式設計師必知必會之blog篇

程式設計師必知必會之blog篇 網易廣州 賴勇浩 本文最初發表於戀花蝶的部落格 緣起 雖然我寫部落格到現在只有兩年多時間,但因為文章多是原創,還經常被推薦到csdn首頁,又在幾個雜誌上灌過水,所以也有不少朋友問過我相同的話題 我在學習 工作中有很多感悟,但我寫不出來啊,有什麼好方法嗎?問這個問題的有...

程式設計師必知8大排序

1 直接 插入排序 一般插入排序,比較是從有序序列的 最後乙個元素 開始,如果比它大則直接插入在其後面,否則一直 往前比。如果 找到乙個和插入元素相等的,那麼就插入 到這個相等元素的後面。插入排序是穩定的。2 希爾排序 希爾排序是按照不同步長對元素進行插入排序,一次插入排序是穩定的,不會改變相同元素...