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