12本最具影響力的程式設計師書籍(上)

2021-07-09 07:56:17 字數 2631 閱讀 7662

12本最具影響力的程式設計師書籍(上)

很多人問我這個問題,尤其是那些剛開啟軟體工程生涯的同事和朋友。要成為乙個更好的開發人員,我應該讀哪些書?我真的需要讀書嗎?這是乙個很值得**的問題,而且也是我在成為軟體工程師之時問了很多導師的乙個問題。但問題是,很多人推薦的是不同主題的不同書籍。他們推薦的書在他們看來是偉大的,但沒有人能告訴我,要想成為乙個偉大的工程師,我應該閱讀什麼,哪些是重要的、是必讀的書籍。

我從我的導師那兒學到了很多東西,並意識到,我仍然有很多東西需要學習,還有許多不同的書需要閱讀。我決定每個月讀一本專業領域(軟體工程)的書。隨著時間的積累,我總結出了我認為想要成為乙個頂級開發人員必須閱讀的書單。

事先宣告——只是閱讀這些書不會讓你成為乙個偉大的開發者。你還需要積累多年的工作經驗,並應用這些書中的原則到現實實踐中,並在現實世界中發展你解決問題的能力。

閱讀這些書可以幫助你避免一些常見的陷阱和錯誤,一些開發人員早期經歷的陷阱和犯過的錯誤。我多麼希望在我剛進入軟體領域的時候,就有人向我推薦這些書啊,並且我現在依然很慶幸自己發現並反覆閱讀了這些書!也許你已經在大學讀電腦科學或工程課程的時候讀到過其中的一些書。也許在那個時候,你覺得它們並不重要,但是我可以用我親身經歷來說明我使用和應用了許多來自於這些書的原則。

我還要指出的是,此書單並不詳盡。每年都會有許多偉大的著作問世。這些只是對我和我的職業生涯影響最大的書籍。此外,這些書和使用什麼語言無關,可以應用於任何軟體語言。好了,讓我們開始介紹這些書吧!(這些都是必不可少的,我將根據它們對我的影響大小從後往前介紹。)

12.《working effectively with legacy code》我之所以喜歡這本書,是因為幾乎所有的軟體開發人員,在其職業生涯的某個時刻,往往會不得不支援和工作於遺留系統。在這本書中,michael feathers提供了從開始到結束的策略,以便於更有效地工作於未經測試的遺留**庫。本書借鑑了michael為其著名的object mentor專題研討會創作的材料:michael用於指導的技術,以幫助開發人員,技術管理人員和測試人員掌控遺留系統。

11.《the mythical man-month》本書是一本經典之作,但最近被修改和更正了。令人驚奇的是這本書仍然與軟體產品開發密切相關。如果你從事軟體的話,這本書是必讀的。這本書最有價值的部分,我相信,是「plan to throw out」原型章節。儘管我們的目標通常是做乙個更大,更好,更快,不管它是什麼的東西,但是我們總會構建出一些不得不被廢棄,需要重做的東西。這種情況我親身經歷過很多很多次。因此,關鍵是要plan to throw out(計畫拋棄),這樣你才能適應接下來的情況。如果你夢想第乙個產品就ok,那麼你就會有拋棄它們的風險,因為產品的改進和發展是不可避免的。計畫拋棄也有助於通過設定合理的里程碑來達到進度目標。

10.《design patterns》如果你打算成為一名架構師或系統的設計人員,那麼你很有可能會被要求閱讀這本書。這是一本被譽為有史以來最偉大的有關於軟體開發的書,詳細講述了許多不同的設計模式,這麼多年來一直在幫助軟體工程師避免和處理行業面臨的常見問題。遵照這本書的策略可以助你打造更高品質,靈活和可維護的軟體。傳說中的「四人幫」就是這本書,因為它是由四個著名的作者共同編寫的。

每個專欄被組織為乙個章節。章節通常以乙個實際問題的情景呈現開頭。然後,提出各種解決方案和相應的經驗教訓。寫作風格清晰明快。

《programming pearls》不是教授新程式設計概念的尋常書籍。雖然它包含了優秀,有時甚至是相當新奇的想法,但這本書的目的不是教你一些新的東西,而是幫助你成為乙個更好的問題解決者。

8.《code: the hidden language of computer hardware and software》這本書清理了建立和開發複雜系統的大量「魔法」。現在的抽象是如此之多,以致於一些低層次的細節反而不為開發人員所知。雖然你可能不會發現自己在實踐中時刻使用著這本書——但我相信,知道自己正在構建什麼以及整個編排的工作原理是什麼,總歸是乙個好主意。當你需要開啟「黑匣子」,深入軟體或硬體來解決乙個討厭的bug的時候,它就能派上用場了。charles petzold寫的《code: the hidden language of computer hardware and software》梳理了許多程式設計概念——從數字系統的十進位制,八進位制,二進位製到高階語言。這本書介紹了基於包的通訊協議和tcp。許多章節講解了有關硬體的概念,有五個章節涉及到了軟體和教導作業系統,浮點運算和圖形使用者介面。

7.《the art of computer programming》這又是一部經典之作。由著名的計算機科學家教授donald knuth編著,並得到行業內眾多頂尖程式設計師的一致好評。甚至連bill gates也對這本書讚譽有加:

「如果你認為你是乙個真正優秀的程式設計師……那麼就去讀[knuth的]《the art of computer programming》吧……如果你能讀懂整本書,那麼請一定要給我發簡歷。」

這本書以基本的程式設計概念和技術開頭,然後聚焦於更具體的資訊結構——計算機內的資訊表示,資料元素之間的結構關係,以及如何有效地處理這些問題。此外還提供了基本的應用程式給**模擬,數值方法,符號計算,軟體和系統設計。

不斷地探索技巧和策略,可以幫助你:

最小複雜性和最大創意的設計

獲得協同開發帶來的好處

應用防禦性程式設計技術,以減少和驅趕錯誤

利用機會安全地重構或改進**

使用針對你專案的結構方法

快速有效地除錯問題

早早地正確解決關鍵的結構問題

從頭到尾專案打造高質量的專案

兄弟會高洛峰免費收徒:

程式設計師,怎樣打造個人影響力?

影響力到底是什麼?我覺得就是幫助他人的能力。如果他人能夠從你這裡獲益,那麼人家就樂於接受你的觀點或建議,從而改變思想或行為。如果順著這個角度來看,影響力的大小 幫助人的能力 幫助人的規模 幫助人的時長,其中 幫助人的能力 就是深度,幫助人的規模 就是廣度,而 幫助人的時長 就是長度。幫更大的忙 可以...

程式設計師開啟社交和打造影響力的最佳方式

對於性格內向的人來講,尤其是我們做技術出身的程式設計師,不擅於跟人打交道,性格內向,害羞且比較寡言的話,去堅持寫作吧。其實,性格內向的人,除了不擅於跟人交談之外,不擅於外放自己之外,其他的特點都是適合寫作。性格內向的人往往更能聚焦於內在的世界,有更強的感受和反思的能力,更能專注於自己的思想和情感,這...

2023年最受關注 最具影響力的十項技術

1.平板電腦 關於蘋果平板電腦 據傳可能名為islate 發布的訊息已經不絕於耳,而蘋果的最大競爭對手將是基於android的各廠商產品。2.地理應用 隨著手機中gps晶元和社會化 移動應用的結合,地理定位將成為任何優秀應用的必備功能。不僅包括foursquare和gowalla,twitter f...