一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

你讀過嗎?資深程序員推薦這12本必讀書籍

 程序媛自學(xué)之路 2016-06-23

原標(biāo)題《12本最具影響力的程序員書籍》,IT之家編輯酌情修改。

要成為一個更好的開發(fā)人員,我應(yīng)該讀哪些書?我真的需要讀書嗎?

很多人問我這個問題,尤其是那些剛開啟軟件工程生涯的同事和朋友。這是一個很值得探討的問題,而且也是我在成為軟件工程師之時問了很多導(dǎo)師的一個問題。但問題是,很多人推薦的是不同主題的不同書籍。他們推薦的書在他們看來是偉大的,但沒有人能告訴我,要想成為一個偉大的工程師,我應(yīng)該閱讀什么,哪些是重要的、是必讀的書籍?

你讀過嗎?資深程序員推薦這12本必讀書籍

我從我的導(dǎo)師那兒學(xué)到了很多東西,并意識到,我仍然有很多東西需要學(xué)習(xí),還有許多不同的書需要閱讀。我決定每個月讀一本專業(yè)領(lǐng)域(軟件工程)的書。隨著時間的積累,我總結(jié)出了我認(rèn)為想要成為一個頂級開發(fā)人員必須閱讀的書單。

事先聲明——只是閱讀這些書不會讓你成為一個偉大的開發(fā)者。你還需要積累多年的工作經(jīng)驗,并應(yīng)用這些書中的原則到現(xiàn)實實踐中,并在現(xiàn)實世界中發(fā)展你解決問題的能力。

閱讀這些書可以幫助你避免一些常見的陷阱和錯誤,一些開發(fā)人員早期經(jīng)歷的陷阱和犯過的錯誤。我多么希望在我剛進(jìn)入軟件領(lǐng)域的時候,就有人向我推薦這些書啊,并且我現(xiàn)在依然很慶幸自己發(fā)現(xiàn)并反復(fù)閱讀了這些書!也許你已經(jīng)在大學(xué)讀計算機(jī)科學(xué)或工程課程的時候讀到過其中的一些書。也許在那個時候,你覺得它們并不重要,但是我可以用我親身經(jīng)歷來說明我使用和應(yīng)用了許多來自于這些書的原則。

我還要指出的是,此書單并不詳盡。每年都會有許多偉大的著作問世。這些只是對我和我的職業(yè)生涯影響最大的書籍。此外,這些書和使用什么語言無關(guān),可以應(yīng)用于任何軟件語言。

好了,讓我們開始介紹這些書吧?。ㄕ埞恼疲?/p>

(這些都是必不可少的,我將根據(jù)它們對我的影響大小從后往前介紹。)

12.《Working Effectively with Legacy Code》

我之所以喜歡這本書,是因為幾乎所有的軟件開發(fā)人員,在其職業(yè)生涯的某個時刻,往往會不得不支持和工作于遺留系統(tǒng)。在這本書中,Michael Feathers提供了從開始到結(jié)束的策略,以便于更有效地工作于未經(jīng)測試的遺留代碼庫。本書借鑒了Michael為其著名的Object Mentor專題研討會創(chuàng)作的材料:Michael用于指導(dǎo)的技術(shù),以幫助開發(fā)人員,技術(shù)管理人員和測試人員掌控遺留系統(tǒng)。

你讀過嗎?資深程序員推薦這12本必讀書籍

11.《The Mythical Man-Month》

本書是一本經(jīng)典之作,但最近被修改和更正了。令人驚奇的是這本書仍然與軟件產(chǎn)品開發(fā)密切相關(guān)。如果你從事軟件的話,這本書是必讀的。這本書最有價值的部分,我相信,是“plan to throw out”原型章節(jié)。盡管我們的目標(biāo)通常是做一個更大,更好,更快,不管它是什么的東西,但是我們總會構(gòu)建出一些不得不被廢棄,需要重做的東西。這種情況我親身經(jīng)歷過很多很多次。因此,關(guān)鍵是要plan to throw out(計劃拋棄),這樣你才能適應(yīng)接下來的情況。如果你夢想第一個產(chǎn)品就ok,那么你就會有拋棄它們的風(fēng)險,因為產(chǎn)品的改進(jìn)和發(fā)展是不可避免的。計劃拋棄也有助于通過設(shè)置合理的里程碑來達(dá)到進(jìn)度目標(biāo)。

你讀過嗎?資深程序員推薦這12本必讀書籍

10.《Design Patterns》

如果你打算成為一名架構(gòu)師或系統(tǒng)的設(shè)計人員,那么你很有可能會被要求閱讀這本書。這是一本被譽(yù)為有史以來最偉大的有關(guān)于軟件開發(fā)的書,詳細(xì)講述了許多不同的設(shè)計模式,這么多年來一直在幫助軟件工程師避免和處理行業(yè)面臨的常見問題。遵照這本書的策略可以助你打造更高品質(zhì),靈活和可維護(hù)的軟件。傳說中的“四人幫”就是這本書,因為它是由四個著名的作者共同編寫的。

你讀過嗎?資深程序員推薦這12本必讀書籍

9.《Programming Pearls第二版》

這本書和這書單上的其他書籍略有不同。我想說這本書可以幫助一個人“像一個程序員一樣思考”?!禤rogramming Pearls》是先前發(fā)表在“Communications of the ACM(美國計算機(jī)學(xué)會通訊)”的15篇專欄的一個綱要。這些專欄涵蓋了廣泛與編程相關(guān)的主題:從需求收集到性能優(yōu)化。重點(diǎn)關(guān)注編碼技術(shù)和算法。

每個專欄被組織為一個章節(jié)。章節(jié)通常以一個實際問題的情景呈現(xiàn)開頭。然后,提出各種解決方案和相應(yīng)的經(jīng)驗教訓(xùn)。寫作風(fēng)格清晰明快。

《Programming Pearls》不是教授新編程概念的尋常書籍。雖然它包含了優(yōu)秀,有時甚至是相當(dāng)新奇的想法,但這本書的目的不是教你一些新的東西,而是幫助你成為一個更好的問題解決者。

你讀過嗎?資深程序員推薦這12本必讀書籍

8.《CODE: The Hidden Language of Computer Hardware and Software》

這本書清理了創(chuàng)建和開發(fā)復(fù)雜系統(tǒng)的大量“魔法”?,F(xiàn)在的抽象是如此之多,以致于一些低層次的細(xì)節(jié)反而不為開發(fā)人員所知。雖然你可能不會發(fā)現(xiàn)自己在實踐中時刻使用著這本書——但我相信,知道自己正在構(gòu)建什么以及整個編排的工作原理是什么,總歸是一個好主意。當(dāng)你需要打開“黑匣子”,深入軟件或硬件來解決一個討厭的bug的時候,它就能派上用場了。Charles Petzold寫的《CODE: The Hidden Language of Computer Hardware and Software》梳理了許多編程概念——從數(shù)字系統(tǒng)的十進(jìn)制,八進(jìn)制,二進(jìn)制到高級語言。這本書介紹了基于包的通信協(xié)議和TCP。許多章節(jié)講解了有關(guān)硬件的概念,有五個章節(jié)涉及到了軟件和教導(dǎo)操作系統(tǒng),浮點(diǎn)運(yùn)算和圖形用戶界面。

你讀過嗎?資深程序員推薦這12本必讀書籍

7.《The Art of Computer Programming》

這又是一部經(jīng)典之作。由著名的計算機(jī)科學(xué)家教授Donald Knuth編著,并得到行業(yè)內(nèi)眾多頂尖程序員的一致好評。甚至連Bill Gates也對這本書贊譽(yù)有加:

如果你認(rèn)為你是一個真正優(yōu)秀的程序員……那么就去讀[Knuth的]《The Art of Computer Programming》吧……如果你能讀懂整本書,那么請一定要給我發(fā)簡歷。

這本書以基本的編程概念和技術(shù)開頭,然后聚焦于更具體的信息結(jié)構(gòu)——計算機(jī)內(nèi)的信息表示,數(shù)據(jù)元素之間的結(jié)構(gòu)關(guān)系,以及如何有效地處理這些問題。此外還提供了基本的應(yīng)用程序給仿真模擬,數(shù)值方法,符號計算,軟件和系統(tǒng)設(shè)計。

你讀過嗎?資深程序員推薦這12本必讀書籍

6.《Refactoring》Martin Fowler寫的《Refactoring》

主要關(guān)于改進(jìn)現(xiàn)有代碼的設(shè)計。這是一個改變軟件系統(tǒng)而不改變代碼的外部行為,卻能提高它內(nèi)部結(jié)構(gòu)的過程。通過重構(gòu),你甚至可以將一個糟糕的設(shè)計重新制作為一個很好的設(shè)計。這本書對重構(gòu)原則進(jìn)行了深入探討,包括在哪里發(fā)現(xiàn)重構(gòu)的機(jī)會,以及如何建立所需的測試。另外還有一個目錄有40多個已經(jīng)用細(xì)節(jié)證明的重構(gòu),這些細(xì)節(jié)包括何時以及為什么要使用重構(gòu),逐步說明如何實現(xiàn)重構(gòu),并舉例說明重構(gòu)是如何工作的。這本書用Java作為其主要語言而寫,但其中的思路適用于任何OO語言。

你讀過嗎?資深程序員推薦這12本必讀書籍

5.《Clean Code》

《Clean Code》,作者Robert C. Martin,分為三個部分。第一部分介紹原則、模式和編寫干凈代碼的實踐方法。第二部分包括若干個復(fù)雜度漸進(jìn)的研究案例。每個案例研究就是一個清潔代碼的練習(xí),也是通過解決代碼庫中的一些問題讓代碼變得健全、高效的練習(xí)。第三部分是決定性的一個部分:每個單獨(dú)的章節(jié)在創(chuàng)建案例研究的時候包含了一系列啟發(fā)式的教學(xué)法。最后得到了描述我們在編寫、閱讀和清理代碼時的思考方式的知識庫。

你讀過嗎?資深程序員推薦這12本必讀書籍

4.《Introduction to Algorithms》

這必須是理解和使用算法(將在軟件開發(fā)中涉及很多)的最佳書籍。有些關(guān)于算法的書雖然嚴(yán)謹(jǐn),但不全面——還有一些雖然涉及面廣,但卻缺乏嚴(yán)謹(jǐn)性。《Introduction to Algorithms》獨(dú)特地結(jié)合了嚴(yán)謹(jǐn)性和全面性。這本書涵蓋了廣泛又深入的算法,使得書中的設(shè)計和分析能夠面向所有層次的閱讀人員。每個章節(jié)相對獨(dú)立,可看作是一個學(xué)習(xí)單元。算法用英語和可讀的偽代碼描述。它使用初級基本的解釋,并不犧牲覆蓋的深度和材料的嚴(yán)謹(jǐn)性。第一版不僅廣泛成為了世界各地高校的教材,還成為了專業(yè)人士的標(biāo)準(zhǔn)參考書。第二版新增了算法,概率分析,隨機(jī)算法,線性規(guī)劃的章節(jié)。

你讀過嗎?資深程序員推薦這12本必讀書籍

3.《Structure and Interpretation of Computer Programs》

以一種對解決問題和編程技術(shù)分析和嚴(yán)謹(jǐn)?shù)膽B(tài)度,這本書面向于工程?!禨tructure and Interpretation of Computer Programs》強(qiáng)調(diào)通過不同方式來發(fā)揮核心作用,以處理計算模型中的時間。其獨(dú)特的方式使得它非常適合于計算機(jī)科學(xué)課程,以及編程語言和程序設(shè)計的入門。這本書進(jìn)一步解釋了4個最著名的編程語言范式——命令式編程,面向?qū)ο缶幊?,基于邏輯編程和?yīng)用性編程。

你讀過嗎?資深程序員推薦這12本必讀書籍

2.《Pragmatic Programmer》

這是我最先閱讀的編程書籍之一。是我的一個朋友在我就職第一份專業(yè)工作的時候推薦給我的。我很慶幸他這么做了。盡管這本書寫于1999年,但是它的概念是我們以一種務(wù)實的態(tài)度去開發(fā)復(fù)雜系統(tǒng)的基礎(chǔ)。程序員也是工匠,他們被訓(xùn)練使用一組特定的工具(編輯器,對象管理,版本跟蹤器)生成某種可在一定環(huán)境中(硬件組件上的操作系統(tǒng))工作的產(chǎn)品(程序)。和任何其他工藝一樣,計算機(jī)編程也孕育出了智慧,但其中的大多數(shù)智慧是不能從大學(xué)或認(rèn)證課程中學(xué)到的。大多數(shù)程序員只能通過獨(dú)立的試驗,時間一點(diǎn)點(diǎn)的積累,才能掌握這些所謂的技巧。在《Pragmatic Programmer》一書中,Andrew Hunt和David Thomas編纂了很多他們在分別作為軟件設(shè)計者和代碼編寫者的職業(yè)生涯中發(fā)現(xiàn)的真理。

作者的一些實用性建議非常具體,而且顯然很易于實施。他們建議讀者去學(xué)習(xí),例如一個文本編輯器,然后在各種情況下使用它。他們還建議使用版本跟蹤軟件——即使是對最小型的項目,學(xué)習(xí)正則表達(dá)式語法和文本操作語言。書中還有其他許多也非常有價值的建議。在調(diào)試部分,作者指出:“如果你看到蹄印的話,應(yīng)該考慮馬這個范圍,而不是斑馬?!币簿褪钦f,要懷疑一切,然后從最顯眼的地方尋找問題。還有關(guān)于預(yù)估時間和費(fèi)用,以及將集成測試納入到開發(fā)進(jìn)程的建議。《Pragmatic Programmer》讓人愛不釋手的還有兩個原因:它會更清晰地梳理你自己積累的智慧,它還會給你介紹你還沒考慮到的工作方法。

你讀過嗎?資深程序員推薦這12本必讀書籍

1.《Code Complete 2》

就是它了!這就是我認(rèn)為首屈一指值得閱讀的書(請恕我妄言),如果你要成為一個優(yōu)秀的軟件工程師的話。它被廣泛認(rèn)為是最好的實用性編程指南之一,Steve McConnell最初的《Code Complete》在過去的10多年時間里,一直在幫助開發(fā)人員編寫更好的軟件?,F(xiàn)在,這部經(jīng)典書籍已全面更新,修改成了前沿的實踐方法——以及數(shù)以百計的新的代碼示例——修訂了軟件結(jié)構(gòu)的藝術(shù)和科學(xué)。從研究、學(xué)術(shù)界和日常商業(yè)實踐中捕獲知識體系,McConnell將最有效的技術(shù)和必須知道的原則總結(jié)成清晰又務(wù)實的指導(dǎo)。無論你的經(jīng)驗水平,開發(fā)環(huán)境,還有項目規(guī)模如何,這本書都可以啟迪和激發(fā)你的思考,幫助你打造最優(yōu)質(zhì)的代碼。

你讀過嗎?資深程序員推薦這12本必讀書籍

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

· 最小復(fù)雜性和最大創(chuàng)意的設(shè)計

· 獲得協(xié)同開發(fā)帶來的好處

· 應(yīng)用防御性編程技術(shù),以減少和驅(qū)趕錯誤

· 利用機(jī)會安全地重構(gòu)或改進(jìn)代碼

· 使用針對你項目的結(jié)構(gòu)方法

· 快速有效地調(diào)試問題

· 早早地正確解決關(guān)鍵的結(jié)構(gòu)問題

· 從頭到尾項目打造高質(zhì)量的項目

這12本書到此就介紹完畢了!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩黄片大全免费在线看| 蜜桃传媒在线正在播放| 国产日韩精品激情在线观看| 少妇高潮呻吟浪语91| 中文字幕av诱惑一区二区| 91亚洲精品综合久久| 亚洲欧美国产中文色妇| 欧美人妻盗摄日韩偷拍| 91天堂免费在线观看| 大香蕉伊人精品在线观看| 国产av一区二区三区久久不卡| 欧美精品亚洲精品一区| 日本东京热视频一区二区三区| 亚洲高清中文字幕一区二区三区| 中文字幕人妻av不卡| 久久少妇诱惑免费视频| 亚洲欧美日韩国产自拍| 国产免费黄片一区二区| 亚洲精品一区二区三区免| 亚洲国产欧美精品久久| 欧美日韩国内一区二区| 亚洲黑人精品一区二区欧美| 亚洲av一区二区三区精品| 亚洲国产成人久久一区二区三区| 国产精品国产亚洲区久久| 狠狠干狠狠操在线播放| 人妻少妇久久中文字幕久久| 久久中文字人妻熟女小妇| 青青操视频在线播放免费| 在线观看免费视频你懂的| 大香蕉久草网一区二区三区| 不卡视频免费一区二区三区| 激情少妇一区二区三区| 久久精品偷拍视频观看| 亚洲男人的天堂就去爱| 男人和女人黄 色大片| 国产精品一区二区三区黄色片| 高潮少妇高潮久久精品99| 欧洲日韩精品一区二区三区| 久久精品亚洲精品一区| 国产精品日韩精品一区|