分析了4000萬條Stack Overflow討論帖:這些才是最受歡迎的編程書
程序員書庫(ID:OpenSourceTop) 編譯
鏈接:https://medium.freecodecamp.org/i-analyzed-every-book-ever-mentioned-on-stack-overflow-here-are-the-most-popular-ones-eee0891f1786
程序員想要找到一本值得看的書並不是一件容易的事,而且通常伴隨一定風險。
作為一名開發人員,閑暇時間很少,而閱讀一本書卻需要很長時間。閑暇時間你可以用來編程,用來休息,但你也可以把這個寶貴的時間用來來讀書和提高自身的技能。
那麼你應該閱讀哪本書?我和我的同事經常討論書籍,我發現我們對某本書的看法差異很大。所以我決定更深入地研究這個問題。初步想法是:找出世界上最受歡迎的程序員書籍。
幸運的是,Stack Exchange(Stack Overflow的母公司)剛剛發布了他們的調查數據。於是我們利用這些數據,分析了Stack Overflow上40多萬個問題和答案,其中被討論最多的編程書籍,總共5720本。
被推薦次數最多的書是《修改代碼的藝術》,其次是Design Pattern: Elements《設計模式:可復用面向對象軟體的基礎》。
雖然這些書的命名看起來很枯燥,但內容卻十分高質量。你可以通過選擇標籤對相應進行排序,如JavaScript,C,Graphics等。如果你想入門編程或者想提升自己的技能,這些書籍無疑是一個好的開始。
1、《修改代碼的藝術》
本書不僅講述面向對象語言(Java、C#和C++)代碼,也有專章討論C這樣的過程式語言。
作者將理解、測試和修改代碼的原理、技術和最新工具(自動化重構工具、單元測試框架、仿對象、集成測試框架等),與解依賴技術和大量開發和設計優秀代碼的原則、最佳實踐相結合,許多內容非常深入,而且常常發前人所未發。
2、《設計模式》
這本書結合設計實作例從面向對象的設計中精選出23個設計模式,總結了面向對象設計中最有價值的經驗,並且用簡潔可復用的形式表達出來。
作者首先介紹了模式以及它們如何幫助你設計面向對象的軟體。接著介紹系統的命名,解釋,評估和面向對象系統中的重複設計。讀完本書,你將了解這些重要模式如何適用於軟體開發過程,以及如何利用它們最有效地解決您自己的設計問題。
3、《代碼整潔之道》
如何從一開始就編寫出乾淨的代碼並最終生成更強大的應用程序的實用方法手冊。作為編程領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼的規則。只要遵循這些規則,就能編寫出乾淨的代碼。
4、《Java並發編程實戰》
這是一本關於Java線程和並發的書籍,書中從並發性和線程安全性的基本概念出發,介紹了如何使用類庫提供的基本並發構建塊,用於避免並發危險、構造線程安全的類及驗證線程安全的規則,如何識別可並行執行的任務等內容。
5、《領域驅動設計》
介紹將領域驅動設計應用到軟體開發中的方法。全書圍繞著設計和開發實踐,結合若干真實的項目案例,向讀者闡述如何在真實的軟體開發中應用領域驅動設計。
6、《JavaScript語言精粹》
介紹JavaScript的特性,涵蓋語法,對象,函數,數組,正則表達式,繼承和方法等主題,向讀者介紹如何運用JavaScript創建真正可擴展的和高效的代碼。
7、《企業應用架構模式》
本書是企業系統開發人員的手冊,幫助他們了解企業應用程序開發中的複雜性和經驗等。它為信息系統開發人員面臨的日常問題提供了經過驗證的解決方案,講述了51個模式並給出主流平台(Java和.NET)中的應用實例
8、《代碼大全》
這是一本完整的軟體構建手冊,涵蓋了軟體構建過程中的所有細節。它從軟體質量和編程思想等方面論述了軟體構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。
9、《重構》
通過這本書,用戶可以顯著改進面向對象代碼的設計,性能和可管理性,而不會改變其介面或外部行為。向用戶展示了如何一步一步地發現重構的最佳機會,以及如何去做。
10、《深入淺出設計模式》
本書集合四人幫的23個模式外加這十幾年來新增的一些模式,作者群以詼諧、幽默、圖文並茂、打破傳統著書的方式,由淺入深地詳解了設計模式的精神及重點。全書全部以當紅的 Java 程序語言為範例。
11、《C程序設計語言》
介紹C編程語言的功能,討論數據類型,變數,操作符,控制流,函數,指針,數組和結構,並介紹UNIX系統介面,人們熟知的「hello,World"程序就是由本書首次引入的,現在,這一程序已經成為眾多程序設計語言入門的第一課。
12、《Effective C++:改善程序與設計的55個具體做法》
C++名著,內容不必多說,但它並不是一本讀完一遍就可以束之高閣的快餐讀物,也不是用以解決手邊問題的參考手冊,而是需要您去反覆閱讀體會的。
13、《測試驅動開發》
了解測試驅動開發的必讀書籍!測試驅動開發(TDD)以測試作為開發過程的中心,它要求在編寫任何產品代碼之前, 首先編寫用於定義產品代碼行為的測試,而編寫的產品代碼又要以使測試通過為目的。這是一種革命性的開發方法, 能夠造就簡單、清晰、高質量的代碼。
14、《演算法導論》
有些關於演算法的書很嚴謹但不全面,有些是涵蓋了大量的內容,但缺乏嚴謹性,本書卻兼具了嚴謹性和全面性,深入討論各類演算法,並著力使這些演算法的設計和分析能為各個層次的讀者接受。
全書各章自成體系,可以作為獨立的學習單元;演算法以英語和偽代碼的形式描述,具備初步程序設計經驗的人就能看懂;說明和解釋力求淺顯易懂,不失深度和數學嚴謹性。
15、《精通正則表達式》
本書主要講解了正則表達式的特性和流派、匹配原理、優化原則、實用訣竅以及調校措施,並詳細介紹了正則表達式在Perl、Java、.NET、PHP中的用法。
16、《CLR Via C#》
針對CLR和.NET Framework 4.5進行深入、全面的探討,並結合實例介紹了如何利用它們進行設計、開發和調試。通過這本書,讀者可以掌握CLR和.NET Framework的精髓,輕鬆、高效地創建高性能應用程序。
17、《Cocoa Programming for Mac OS X》
一本關於cocoa的書,也是學習Mac OS App開發很好的一本入門書籍。
18、《Effective STL》
STL是C++標準庫的一部分。本書是針對STL的經驗總結,書中列出了50個條款,絕大多數條款都解釋了在使用STL時應該注意的某一個方面的問題,內容清晰,簡潔,直觀的風格使其成為每個STL程序員必不可少的書籍。
19、《C++設計新思維》
本書從根本上展示了generic patterns(泛型模式)或pattern templates(模式模板),面向對象編程和設計模式。它描述了通用編程中使用的C ++技術,並實現了許多工業強度組件。
20、《大規模C++程序設計》
在本書中,Lakos介紹了將大型系統分解成較小且較好管理的組件層次結構(不是繼承)的過程。
這種具有非循環物理依賴的系統的維護、測試和重用從根本上比相互緊密依賴的系統更容易且更經濟。此外,本書還說明了遵從好的物理設計和邏輯設計規劃的動機。
最後,值得一提的是,作者發布這篇文章的時候還公開了數據分析代碼,感興趣的可以通過此鏈接查看:https://medium.freecodecamp.org/i-analyzed-every-book-ever-mentioned-on-stack-overflow-here-are-the-most-popular-ones-eee0891f1786
●編號62,輸入編號直達本文
●輸入m獲取到文章目錄
TAG:全球大搜羅 |