計算機專業必讀哪些經典書籍?

喜歡的可以收藏轉發加關注

為有理想的計算機小白們整理推薦的一份書單:

世界上並不存在速成的終南捷徑,但閱讀好的技術書籍,尤其是閱讀大師們的經典著作,總能收到事半功倍之效。一位優秀的程序員,或許就是一名好的閱讀者。好的閱讀者,總是知道如何選擇好的書籍。

以下就給想要成為架構師的程序猿們推薦從事技術生涯這一輩子都要花時間去看的書單,以及一份技術書閱讀方法論總結:

前言:技術書閱讀方法論

一.速讀一遍(最好在1~2天內完成)

人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特別好的作用。

對於每一章的知識,先閱讀標題,弄懂大概講的是什麼主題,再去快速看一遍,不懂也沒有關係,但是一定要在不懂的地方做個記號,什麼記號無所謂,但是要讓自己後面再看的時候有個提醒的作用,看看第二次看有沒有懂了些。

二.精讀一遍(在2周內看完)

有了前面速讀的感覺,第二次看會有慢慢深刻了思想和意識的作用,具體為什麼不要問我,去問30年後的神經大腦專家,現在人類可能還沒有總結出為什麼大腦對記憶的完全方法論,但是,就像我們專業程序員,打代碼都是先實踐,然後就漸漸懂了過程,慢慢懂了原理,所以第二遍讀的時候稍微慢下來,2周內搞定。記住一句話:沒看完一個章節後,總結一下這個章節講了啥。很關鍵。

三.實踐(在整個過程中都要)

實踐的時候,要注意不用都去實踐,最好看著書,敲下代碼,把重點的內容敲一遍有個肌肉記憶就很不錯了。這個過程最好結合”費曼思想”進行思考,反思,總結。當然如果能把剛剛學習到的內容結合現在做的項目‘注入’,即即學即用,效果甚佳。

以及到自己做過的項目中去把每個有涉及的原理的代碼,研究一遍,就可以了

想要成為架構師的程序員一生必讀的書,分為以下四個部分:

1.Coding Practice(編程實踐系列)

2.Architecture Design(架構與設計系列)

3.Methodology(方法學系列)

4.Thought Leadership(思想與領導力系列)

5.奇門遁甲系列

6.互聯網大佬奇蹟傳記系列:

架構師一生必讀書籍推薦理由:

一.編程實踐系列:

1 《代碼整潔之道》

《代碼整潔之道》講述了一系列行之有效的整潔代碼操作實踐。軟件質量,不但依賴於架構及項目管理,而且與代碼質量緊密相關。

 這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認。《代碼整潔之道》提出一種觀念:代碼質量與其整潔度成正比。

 乾淨的代碼,既在質量上較為可靠,也為後期維護、升級奠定了良好基礎。作為編程領域的佼佼者,這些實踐在《代碼整潔之道》中體現為一條條規則(或稱“啟示”),並輔以來自現實項目的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼質量。

2 《卓有成效的程序員》

計算機專業必讀哪些經典書籍?

垂涎這本書很久,終於花了一天時間看完了。本書所介紹的最主要的不是工具和方法,而是思想,有助於我們提升工作效率的思想。

 工具和方法是其次的,只要理解掌握這些思想,並在實際工作中運用到,就能夠大大提升我們的工作效率了。

 總的來說,這本書還是很優秀的,是一本「集大成」的書籍。裡面很多想法和概念通過閱讀其他書籍也能接觸到,只不過在這本書裡面,作者結合自己的親身經驗總結來介紹,更有助於理解這些想法。在我看來,整本書一直都在灌輸著三個思想:

 一、經典的還是好的

 二、儘量把事情交給計算機來完成

作者有句話我是很贊同的:只要做過一次的事情,以後很大程度要重複做。

 三、選擇最合適的,而不是追求最好的。

3 《程序員的職業素養》

計算機專業必讀哪些經典書籍?

Robert C.Martin的大名咱就不說啥了。這本書寫的深入淺出,感覺像讀一本小說,流暢自然,但自然而然的就學到了很多東西。結合工作經驗,常有種“確實如此”的感覺。

 該書尤其適合初入職場,試圖成為“專業人員”的人。其中永遠不要說“我試試”和有關測試的章節給我留下了深刻印象。

4 《重構與模式》

計算機專業必讀哪些經典書籍?

只是看了一半,因為其中每個例子都含有作者實踐過的真實代碼,非常適合我們跟著作者的思路去思考,運用設計模式進行重構,解決眼前存在的難題!

5 《代碼大全》

計算機專業必讀哪些經典書籍?

初見《代碼大全》,還是該書的第一版,只從書名上看,還以為都是一些代碼的示例。覺得還有很多的書需要讀,這種實用主義的技巧書,可以先放一放,於是與之失之交臂。

 及至後來,才發現原來被中文書名給騙了。只要將目錄瀏覽一過,就會發現,這本書基本覆蓋了軟件構建的全過程,從需要分析、系統架構設計到具體的編碼規範、編碼技巧,程序員可以在其中找到所有想找到的內容。

 而且每一個方面作者都進行了深入的探討和詳細的解說,同時也給出了想要更進一步學習的參考。可以說,這是一本對其出版之前的所有軟件構建的知識的百科全書。

 對於爭論較多的方面,作者給出了較為合理、公允的折中方案,甚至在34章最後一節”汝當分離軟件與信仰“,作者明確的闡述了這一思想。

 這本書和《程序員修煉之道》一厚一薄,相映成趣,都是難得一見的好書,值得花時間和精心用心的閱讀,並不時拿出來溫習,可以肯定的是,每次翻開,必有收穫!

6 《實現模式》

計算機專業必讀哪些經典書籍?

這是一本關注程序細節並具有濃厚實戰意義的書籍, 它主要是來告訴我們如何寫出容易讓人理解的代碼. 如果非要在書名前加一個限定詞的話, “java實現模式”可能更貼切一些, 因為裡面的代碼都是以java作為例子來說明的. 作者是junit的貢獻者之一, 因此裡面的很多例子都是從junit中來的.

 這本書也解決了很多自己在實際開發中的一些抉擇困惑. 是一本非常值得常看的書籍. 另外翻譯的也非常不錯, 不像有些書讓人看了雲裡霧裡的, 不知所云.

本書按照方法, 行為, 類, 狀態, 集合, 框架的順序依次對相關的實現模式加以說明來闡述如何寫出好的代碼. 也是本書的重點, 集合主要是在講java.util下的集合類的使用法則, 框架部分主要是框架的開發有自己的規則, 圍繞兼容性, 擴展性方面在說事兒。

7 《程序員修煉之道》

計算機專業必讀哪些經典書籍?

很久以前買的這本書,忘記在哪裡看到這部書的推薦了,有大牛很賣力的推薦,於是去買了一本。

 坦白講,那個時候自己是完完全全的菜鳥,從大學裡出來,除了會編程啥也不懂,這本書在當時真的是指路明燈。

 書中的道理很淺顯,可是對於菜鳥卻是至理名言。基本為你勾勒了一個成熟軟件程序員專家所需要的所有特性。

 我自覺地獲益頗多,其中很多事情,要麼在當時是自己沒有想到的,要麼是發生了,自己沒有注意的等等。給我影響很大。

當然,有些自以為是的”大牛”是鄙視這些的,因為看起來不夠高深,隨便吧,反正它講的是從小工到專家,我是從小工過來的,那些憑空冒出來的“專家”不看也罷。

8 《高性能MySQL》

計算機專業必讀哪些經典書籍?

書很厚,內容非常全面,基本涵蓋了所有使用中需要了解的基礎和進階知識,認真看完基本就沒有知識死角了

 書的語言風格和內容編寫都非常好,沒有廢話,全書無任何尿點,每一節每一段話都很重要,作者們是mysql DBA屆的大牛,經驗和知識水平沒得說,尤其讓人如沐春風的是作者的一些諄諄教誨,大師風範躍然紙上國內tb大牛翻譯的也很棒。

 非常好的一本書,五星力薦,即使你不是DBA也值得一讀。

稍微美中不足的就是知識的深度上有所欠缺,很多知識點講出來了,但是背後的原理卻沒有觸及,當然這和本書偏向應用的定位有關

9 《修改代碼的藝術》

計算機專業必讀哪些經典書籍?

這本書很薄,但是看起來還是很吃力,裡面介紹了很多重構的知識,而且有很多c++的內容,有的地方也是似懂非懂的,如果瞭解設計模式和重構,就會輕鬆很多,可能藝術這東西,本身就不容易懂吧。

 裡面對單元測試的依賴性很強,其實還是一本不錯的書,你完全可以領略到作者真的把代碼的修改看成是一種藝術,軟件工程師要做到匠人的地步也著實不容易。

看得出寫代碼不是一件簡單的事情,是需要經驗的,不像國內這樣,寫代碼是年輕人的事情,其實沒有時間的錘鍊是寫不出好的代碼來的,即使寫出來也不能談得上是藝術了。

 希望將來再次翻起這本書時會有更多的領悟。

10 《計算機程序的構造和解釋》

計算機專業必讀哪些經典書籍?

這是一本很有趣的書,任何對編程真正感興趣的人都應該看看。它講了程序結構的很多方面,但始終圍繞著一個主題,那就是從各個層次上來減少計算的複雜度。

 這和我讀過的另外幾本書核心是一樣的,只是維度不同。比如《代碼大全》厚厚的一本書講的也是管理複雜,但是它針對的是軟件工程這門工作該從哪些方面來提高生產效率,減少溝通和維護的成本,比如變量名該怎樣起,函數該多長,註釋該怎麼寫。

 而這本書的出發點是各種編程問題,重點放在該如何分層以減少程序的複雜度,有點像是《Head First設計模式》,討論的也是如何封裝變化,針對接口編程等等,不過《SICP》裡的問題難得多而已,類似算法一樣很費腦筋。

11 《重構:改善既有代碼的設計(中文版)》

計算機專業必讀哪些經典書籍?

Martin Fowler 的《重構-改善既有代碼的設計》這本書,是我大學老師推薦給我的。 當時我在撰寫代碼過程中,發現當代碼量到某個數量級時候(1000+行), 就會逐漸失去對代碼的控制能力。

 這本書是2年前購買的,可惜以我當時的代碼感知和撰寫能力,看起來頗為吃力。 半途就看得雲裡霧裡而中斷了。最近我又重新拾起這本書, 將書中所寫的境況與我這兩年多來遇到的問題相互印證,才感受到這本經典的力量。

12 《調試九法——軟硬件錯誤的排查之道》

計算機專業必讀哪些經典書籍?

一般當工程師把一個東西稱為藝術甚至玄學的時候,說明這個東西難度很大,沒有太多規律可以遵循,調試就屬於此列。幾乎每個程序員都有被bug搞到死去活來的經驗,有時候顛來倒去,問題似乎解決了,但也不知道為什麼,就把它當作不可解釋的玄學現象,最煩人的一種bug是偶爾出現難以復現的,學名海森堡bug。

 不過畢竟軟件還是屬於科學技術的範疇,調試也應當是門技術活。《調試九法》是一本少見的講調試技術的書,九個普遍性的原則不僅適用於軟硬件開發維護,甚至還能運用到日常生活,為了找到這本書我也是費了點神,幸好圖靈社區還有正版的電子書賣。

 說實話,作者舉的很多例子偏硬件,所以理解起來有點隔膜,但是九個原則確實很實用,在我以前的開發調試經歷中可能也不自覺的總結過一些,但是看了本書,還是有拿到武功心法的感覺。

13 《算法設計與分析基礎第3版》

計算機專業必讀哪些經典書籍?

對算法做了一個很新穎的劃分,可以看到它和我們經常看的算法書的知識點劃分很不一樣。作者得歸類很不錯。對一些常用思想做了分類。

 比如作者對分治做了幾個分類。純思維層面的切入分析,而不像以前的分為一般算法和圖論那樣子。

 書中有不錯的習題。思想描述有一定的思維引導性質。

14 《實用J2EE設計模式編程指南》

計算機專業必讀哪些經典書籍?

從應用的層次看來。從價格和其本身的內容這個角度來比較的話,這本書還是很划算的。其前1/3的對設計模式的總結還是十分清晰的。而後面的相當多的關於EJB的內容就是根據讀者的需要來看了。

15 《編寫可讀代碼的藝術》

計算機專業必讀哪些經典書籍?

姑且不談該書中提到的程序最優與否,本書在給廣大的程序員上了一堂關鍵的編程品德學。就如同科學發展到一定程度出現對科學家應該具有什麼品德展開討論一樣,本書也提出了作為一個出色的、有責任心的程序員應該具有的品質——讓他人更容易看懂自己的代碼。

 從個人經驗來談,身邊很多人編程時都是考慮如何完成程序的使命,很少有人去考慮別人是否看得懂。結果造成當別人看你程序時看不懂,問你你又不耐煩講這種局面數不勝數。

 本書從根本上——即編程的基本思想層面,告訴廣大編程的人要具有編程的責任感,方便大家的同時才能方便自己。所以該書對程序員在思想啟蒙上是一本不可多得的好書。

16 《大話設計模式(帶目錄完整版)》

計算機專業必讀哪些經典書籍?

用了三天時間把書看完了,確實是設計模式的入門書。雖然書中有些例子舉得並不十分恰當,但基本上也把每個設計模式講清楚了。

 國內很多教材和教師講述專業知識都是很枯燥的,如此則把很多初學者拒之門外,讓一部分人喪失了學習的興趣。而這本書則類似於少數名師一樣,採用交互式及啟發式地講述方式,在不知不覺中向讀者傳授了知識。

 就我個人而言,更傾向於如同專業論文一般嚴謹的表述方式,但如此以來在理解上就要多花一些工夫了。我們需要類似Gof《設計模式》的經典,但就目前而言,像本書一樣,以大家所熟知的例子來描述問題,步步深入,具有中國特色風格的書,才是我們更加需要的。難得見到國人出的精品書籍,給5 分。

17 《程序設計方法》

計算機專業必讀哪些經典書籍?

這本書寫得很nice,如果有人講的話,小朋友是看得懂的。但是需要有小學數學的基礎,否則的話開始的練習會不知所云。我想過,把開始的練習給改成字符串處理的話,會不會簡單一點——最後覺得不會。

 原因是為了說明白“嵌套”是怎麼回事,小朋友一定先得有小學的算術表達式可以嵌套的這個觀念才行。所以本書不推薦給國內五年級以下代數感覺不很好的小朋友。

18 《七週七語言:理解多種編程範型》

計算機專業必讀哪些經典書籍?

眾所周知,每一種語言或複雜或簡單,使用者想要使用到一定境界,都不是短短一週可以達成的。所以這本書從根本上就不是像副標題中描述的A Pragmatic Guide to Learning Programming Languages。

 這本書更像是對“非主流”的語言界的一次全面概括。作者精挑細選的7門語言基本囊括了“非主流”界的各種範式,也不乏“非主流”界中的主流,名門望族。細緻的描述了每一個語言的特性,以及多種語言之間的對比。

 對於每一個喜歡language,想要了解language的計算機愛好者都不應該錯過。有志想去獨立的設計一個language的愛好者當然更不應該錯過。

19 《程序設計語言——實踐之路》

計算機專業必讀哪些經典書籍?

一句話,對於那些有興趣瞭解程序設計語言的基本設計與功能的軟件工程師而言,這是一本入門的好書。特別有助於深入瞭解某一種程序語言的特點,理解其優勢與軟肋,進而用好它,而不是迷失於世面上眾多的語言的花哨的特性中。

20 《程序設計實踐》

計算機專業必讀哪些經典書籍?

這是一本牢牢佔據經典書架最起眼位置的小冊子,也是最符合KISS之道的神作之一。

 拋開已有的業界的best practices,這本書還修正了我記憶中的很多錯誤認識,Brian Kernighan、Rob Pike的大名自然是本書最好的招牌;但作者的求實態度更值得每一個認真的programmer學習。

 整體上,全書採用一個實際問題作為切入點並且貫穿全書,涵蓋了programming工作的各個方面,簡明扼要卻又發人深省。這個例子的選取本身就是非同謹慎的,規模不至於過大(100多行代碼)但是又足以說明問題。

 我最欣賞的是作者並沒有特意偏袒C語言這個Unix的寵兒,而是兼顧了Java、C++、awk三種語言,並用事實揭示瞭如何更好的使用語言,如何在實際問題和應用場景中取捨。

 讀完全書,我特意從本書的網站上自習運行了作者的源程序,書中對於很多地方的分析和數據比較,在數年後技術突飛猛進的今天仍然沒有發生本質變化。

21 《編碼:隱匿在計算機軟硬件背後的語言(美)佩措爾德》

計算機專業必讀哪些經典書籍?

當年參加計算機大賽的時候有個同學和我說計算機方面的東西,千萬不要想太多……到今天我才明白他的意思。

 1.這本書講的是關於計算機工作原理最本質的問題,即使跨了一層語言仍然能感覺到原著深入淺出的風格,很詳細;

 2.想讀得深入一點不妨準備點演算紙,我用掉了一疊A4畫邏輯門;

 3.如果當做一本教材來看,邏輯門部分的闡述是重點,是難點,也最有趣;

 4.讀完之後會明白為什麼電氣工程師那麼值錢,因為不是變態搞不來;

 5.個人覺得翻譯還不錯,或許和無對比有關,但技術部分並不存在太大問題,至少我一個外行看懂無礙;

 6.打算以後會沒事就拿出來翻翻。力薦。

22 《編程原本》

計算機專業必讀哪些經典書籍?

本書提供了有關編程的一種與眾不同的理解。其主旨是,實際的編程也應像其他科學和工程領域一樣基於堅實的數學基礎。本書展示了在實際編程語言(如C++)中實現的算法如何在最一般的數學背景中操作。

 這不是一本很容易讀的書,它也不是能提升你的編程技能的祕訣和技巧彙編。本書的價值是更根本性的,其終極目標是提升你對編程的洞察力。要想從中大獲裨益,需要從頭到尾認真學習:閱讀代碼,證明引理,完成練習。到結束之時,你將看到如何把這裡討論的演繹方法應用到你的程序中,保證你做出的軟件部件能一起工作,並表現出它們所應該表現的行為。

二.架構與設計系列:

1 《敏捷軟件開發:原則、實踐與模式》

計算機專業必讀哪些經典書籍?

好的技術書籍的標準是通俗易懂;文字精煉;耐讀,有吸引力;有思想性。

uncle bob的書寫功力有目共睹,而且他的技術修為也絕對無人質疑。因此他寫的 這本書秉承了他一貫的優勢。符合所有好處所具備的條件。所有我們可以毫無內疚的宣稱,“這本書是我見過最好的書”。

 孟巖作序,也為這本書的推廣添磚加瓦。在序中他表現出來的輕身意切,讓我們感受到了一個技術人員豐富的人文情懷。這也是我們搞技術的夢寐以求的一個高級階段。

2 《深入淺出設計模式》

計算機專業必讀哪些經典書籍?

這是我看過最幽默最搞笑最親切同時又讓我收穫巨大的技術書籍!

森森的膜拜Freeman(s)!Amen!

 深入淺出,娓娓道來,有的地方能笑死你!不知是翻譯還是原著的問題,有幾個小地方有點小錯誤,個人觀點,值得商榷。但是瑕不掩瑜啦!

 其實我最先買的那本是四人幫寫的,四人幫那本是這本書的五分之一厚。但是這本書我只花了三天時間就讀完了!

3 《Unix編程藝術》

作為一個多年的開源(Open Source)擁躉,像《UNIX編程藝術》(The Art of Unix Programming)這樣的好書自然不能錯過。大約一週前我無意中在公司書櫃中發現了它,立刻開始投入閱讀。現在,我已經開始邊讀第二遍邊作讀書筆記了。

 開篇的譯序很有趣,第一句話就寫道:“大多數譯序是給作者說好話,順便帶動以下譯本銷量的,本篇是一個例外。”

 這是我見過的最棒的序言開頭之一,在表明了自己獨特的觀點和立場的同時,譯者還有效地激起了讀者的好奇心。我記得看到這兒當場就笑了。

4 《企業應用架構模式》

計算機專業必讀哪些經典書籍?

這本書真是相見恨晚!做企業應用這麼多年,第一次看到一本書裡把這些數據庫對象關係、事務、併發、領域模型、MVC等等講得這麼詳細而深入。

Martin真不愧是大師級人物,讀他的書你會很佩服他的觀察力,那種善於從司空見慣的日常現象中發現秩序的能力。

5 《領域驅動設計.軟件核心複雜性應對之道.軟件核心複雜性應對之道》

計算機專業必讀哪些經典書籍?

全篇最核心的概念是,人類的記憶力思考力限制,會將一個大型系統耦合複雜化。為了更好的理解及團隊成員的合作,必須將核心領域剝離出來。文章用很多篇幅講述了剝離的方法,一句話,沒有最正確的,只有更合適的,實踐是檢驗方法的唯一辦法。

 我個人最深的感觸是:做減法。在系統中先做減法,抽離出核心的領域,並不斷重構,最終得到各個核心領域的關聯及通用模型、模塊。

由於文章過於久遠,以及翻譯的問題,很多地方顯得臃腫及囉嗦,甚至話癆。適合快速閱讀。

6 《企業集成模式:設計、構建及部署消息傳遞解決方案》

計算機專業必讀哪些經典書籍?

這是一本有關使用消息傳遞進行企業集成的書。這本書並不只是介紹某種特別的技術或產品,而是為使用各種消息傳遞產品和技術的開發人員以及集成人員準備的。本書不會為企業應用集成建立商業案例,而是把重點放在如何實現應用的集成上。通過本書可以學會如何集成企業應用。.

7 《架構之美》

計算機專業必讀哪些經典書籍?

這是我讀過的書中沒讀完就匆匆束之高閣的為數不多的書之一。連陳萊的《有無止境》我都堅持著看完了。而這本,實在讀不下去了。

 理由一:架構之美很難一句兩句說清。美,本身是很虛幻的。不同人的認同度是不一樣的。就像是建築物,哥特式尖頂和拜占庭式圓穹頂各有偏好一般。

 理由二:架構之美,很難講清。即使這是一本案例教學的書,但這些案例都很大。短短十幾頁或者二十幾頁的文字如何能淋漓盡致的描述清楚呢?浮光掠影的提綱挈領,必然導致走馬觀花的感悟。只是隱隱約約的感受一下如此架構的味道,無法有切膚之感。

 理由三:關於對架構理解的悟性。鄙人很少做架構方面的東西,對架構之美的領悟力自然不行。

 不過這本書作為“之美”系列,還是有可圈可點的地方的,不過較之代碼之美可就不止是小巫見大巫了。

8 《面向模式的軟件架構_卷5_模式與模式語言》

計算機專業必讀哪些經典書籍?

紙質書借於美團圖書館,只半小時瀏覽,論文式語調,不偏向應用。適合寫作時作為參考語料。

9 《億級流量網站架構核心技術 跟開濤學搭建高可用高併發系統》

計算機專業必讀哪些經典書籍?

總結並梳理了億級流量網站高可用和高併發原則,通過實例詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高併發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、回滾機制、壓測與預案、緩存、池化、異步化、擴容、隊列等多方面詳細介紹了億級流量網站的架構核心技術,看後能快速運用到實踐項目中。

 不管是軟件開發人員,還是運維人員,通過閱讀《億級流量網站架構核心技術》都能系統地學習實現億級流量網站的架構核心技術,並收穫解決系統問題的思路和方法。

10 《領域特定語言》

計算機專業必讀哪些經典書籍?

挺厚的一本書,如作者所說,要寫的太多了,但是為了能出版,不可能面面俱到。是個很有難度的主題,作者也算是費勁心思。雖然是DSL,但本質還是歸到編譯那套東西(主要是前端),尤其是對於外部DSL,因此我會覺得《編程語言實現模式》更精彩一些。另外吐槽兩點,一是有些示例代碼喧賓奪主了,代碼的邏輯比傳達的模式要複雜;二是翻譯有改進的空間。

11 《元素模式》

計算機專業必讀哪些經典書籍?

主要介紹了一種思想,一種工具。 思想是,將大眾熟知的設計模式分解為更細粒度的元素模式。使用元素模式去自由組合發散,擴張現有設計模式,同時令他們的經過度大大上升。 工具是使用PIN 箱,使用PIN箱來分析設計模式,將模式之間的組合關係表達得更加清楚。可以讓人們對於模式的日常交流更容易,更方便。

12 《設計模式:可複用面向對象軟件的基礎》

計算機專業必讀哪些經典書籍?

我感覺看這本書,有幾個層次,每個層次對應著軟件開發方面的境界。

 第一個層次,看不懂。所謂模式,就是在長期寫代碼的過程中總結出來的一種經驗。這在剛畢業或者工作一兩年的軟件開發的工程師中,很多就反應這本書很深奧,難看懂。一方面,書中的例子是C++寫的,而且時間比較早,例子有點過時,另一個方面,自己經驗不足,沒有切身體會,對於其中的模式,無法聯繫到實際情況去理解。

 第二個層次,往上靠。不管實際需要不需要,非得用上幾個模式,覺得這樣代碼才漂亮,才上了檔次。其實,用模式,是一種好的現象,但是希望在用的時候,問自己兩個問題,用有什麼好處?不用會有什麼問題?如果回答上來了,則用;回答不上來,則不要用。大部分人,處於這個層次,我見過很多。最大的問題就是,把簡單的問題複雜化,複雜問題簡單化。

 第三個層次,已忘記。會游泳的人,在游泳的時候,可能沒人會想起游泳的注意事項以及要領。手腳和換氣的動作,已經變成了肌肉的條件反射了。什麼時候能夠把模式變成你的手指的條件反射,那離編程高手就不遠了。要達到這個層次,沒有別的辦法,不寫幾十萬的代碼是很難達到的。

如果有志於編程,這本書應當是一本床頭讀物,學而時習之,時不時的拿出來看看,會有新的收穫,編程是一種實踐的工作,只有不斷的coding,才能夠提高,當已經達到忘了什麼是模式,什麼是架構的時候,已經可不看這本書了。

13 《設計模式:Java語言中的應用》

計算機專業必讀哪些經典書籍?

記得當時讀的感覺是“略懂”,為了加深對設計模式的理解還照本宣科的模仿command pattern和Factory pattern寫了一個基於數據庫和Swing的ATM程序。現在回想起來,當時對設計模式既感到神祕又好奇的感覺真的很有意思。同時,真是《設計模式:Java語言中的應用》這本書幫我開啟了設計模式的大門,淺顯易懂,理論與實例結合,而且實例都寫得很到位,這是這本書優秀的原因之一。

14 《編程珠璣(第2版)(第一部)》

計算機專業必讀哪些經典書籍?

打開這顆薄薄的珍珠,認真拜讀了前言,記得非常清楚是作者說,一次不要讀太多,一章足矣。 再讀完第一篇,認真研習其後的練習題,這才發現,原先關於“算法羅列”的主觀臆斷是多麼的錯誤。 是的,本書的確在強調算法,但是除了常規的算法,作者更多的是在表達出一種算法以外的思想:高效的算法沒錯,但是正確的事情應該用正確的方法來做。 每個算法都有高效的經典例子,但是什麼時候用什麼樣的算法,探究問題的本質,真正的優雅的解決問題,才是本書所要傳達的精神。

 此外,值得一提的是書中那些傳奇的故事,比如太空筆和鉛筆,比如各鴿子和膠捲,類似稗官野史,但是又的確是真實發生的事件,在樂趣中一步步的佐證他的觀點。(不得不說,這一點,《代碼大全》和《深入理解計算機系統》也一樣老道,看得令人賞心悅目)。 古人說的茅塞頓開,醍醐灌頂,確實可以用來描述我在讀此書時的感受。

15 《編程珠璣(編程珠璣續篇)(第二部)》

計算機專業必讀哪些經典書籍?

薄薄的一本書,絲毫無愧於珠璣兩個字

能把書寫薄寫精的人都是無比厲害的人物,相信看過K&R的的人都有類似的體會

 只要看了第一章,我相信你會對這本書佩服得五體投地。一個簡潔的小例子,幾個看似簡單的算法,實際上包含了很多算法設計的思想.看完第一章,我對數據庫的幾種外排算法有了更深層次的理解

 本書最大的亮點就是引導你去思考,不停地去思考,思考最佳的解決方案。看本書是一個既痛苦也快樂的歷程,痛苦在於你必須竭盡腦汁地去想,運用brain bursting去得出儘可能多儘可能好的方法,快樂在於你提出一個優雅的方案或者對大師的方案拍案叫絕的瞬間

16 《淘寶技術這十年》

計算機專業必讀哪些經典書籍?

兩天的時間讀完此書,總體評價是“輕鬆幽默、通俗易懂”。技術上屬於科普的寫法,不過這已經足夠,真要寫技術細節,恐怕很多人讀不到第三章就要睡著了,再說技術上的東西更多的是靠實踐而非看書,對於一個初學者,此書可以看作是大型網站技術登堂入室的引言書,展現了大的場景圖畫和基本的學習方向,符合此書的自我定位。

 除了語言幽默、段子不斷,此書中眾多的微博“大佬”的鏈接也是很寶貴的資源,一個個鏈過去,你會發現,當年Eclipse還不太會用的子柳(本書作者)現在成了淘寶技術大學的校長,子柳的師傅、同事等要麼成了taobao/tmall/alibaba的經理總裁,要麼自己單幹成了某某公司的CXO。可見,對於個人的成長,能力和機遇兩者缺一不可。一個人首先要保證自己的基本能力達標,然後還需要在合適的時間抱上合適的大腿,這條大腿,可能是一個歷史的機遇(如馬雲),也可能是在合適的時候加入一家合適的公司跟對一個合適的老闆(如本書作者和他的眾同事們)。“機會總是留給有準備的人”,此乃箴言。

17 《軟件架構的藝術》(簡稱架構之美)

計算機專業必讀哪些經典書籍?

前幾天有幸聽了本書作者的一次培訓,收益良多。老話說的好:紙上得來終覺淺 絕知此事要躬行。平心而論,這本書寫的真的不錯。系統講解了軟件架構的方方面面。觀點清晰,結構嚴謹。但裡面很多內容如果你沒有一定的理論和實踐基礎,理解起來會比較困難,難以引起你的共鳴。

走在前面的人總是孤獨的,這也是培訓中我能感覺到的作者本人的心情。

18 《軟件框架設計的藝術》

計算機專業必讀哪些經典書籍?

這是本講軟件架構的實用性書,同時,這也是本架構非常好的書,但由於涉及內容實在太廣,所以內容和架構相比顯得過於單薄。

本書由三大部分組成,第一部分是軟件架構的概念,屬於理論性部分;第二部分是軟件架構本身;第三部分是架構師的各人技能。這個分類一下子把軟件架構的眾多技術分解為架構技術和個人技能兩部分,非常贊。

 架構概念非常簡單,通過眾牛人對軟件架構的詮釋,作者總結了架構的兩個功用:軟件組成和決策,兩者都對,並不衝突,這是作者非常聰明的地方,一下子就緩解了大家的矛盾,並且把所有的觀點都彙集到統一的框架之下。

軟件架構本身,又分為方法和過程兩部分。方法既架構的五個視圖:物理架構、邏輯架構、數據架構、開發架構和運行視圖。過程則分為六個步驟:需求分析、領域建模、確定關鍵需求、概念性架構設計、細化架構和驗證架構。其中概念性架構的作用是規劃關鍵問題的解決策略;細化架構就是生成那五個視圖。就像開頭說的,這部分內容實在太廣,作者只是談了一些他的經驗,實際內容嚴重不足。

 個人技能無非就是從編碼,設計,UML工具,軟件過程四個不同層次來談,而在設計方面又舉了幾個解耦合的例子,包括理解依賴關係、角色理論和設計模式等。

總的來說,這本書的結構非常好,內容可以按照這個架構通過其他書籍慢慢補充。

19 《軟件測試的藝術(原書第2版)》

計算機專業必讀哪些經典書籍?

本書的觀點與傳統軟件測試理論形成了鮮明的對比,作者提出:軟件測試的目的不是為了驗證軟件能夠達到設計文檔的要求,而是為了發現軟件錯誤而運行軟件的過程。當我剛開始學習測試技術的時候,很為該觀點所動,但隨著工作經驗的增長,發現實際操作中無論是組織還是個人都很難達成作者的美好目標。畢竟,公司的預算、資源都很難讓測試人員有機會進行所謂的完美測試。但,不管怎樣,本書中提到的軟件測試方法論對於任何一個從事軟件測試甚至是開發人員都是大有裨益的。

 推薦,5顆星!

20 《HeadFirst設計模式》

計算機專業必讀哪些經典書籍?

寫得很有趣,圖文並茂,比起四人幫的那本,好懂了不知道多少倍。

計算機世界的head first系列讓我想起了阿呆系列,話說新的一集the big bang theory裡面lennerd學習橄欖球的時候也有一本阿呆啊,哈哈,跑題了

 不過只看書學明白設計模式是不可能的,這些只是前人的總結,我們唯有實踐實踐再實踐了。

 斷斷續續的看了一遍這本書,印象最深的還是項目中實際用到的那幾個模式,比如觀察者,狀態,單件,工廠等,更加堅定了我實踐的決心了哈~

21 《編程語言實現模式》

計算機專業必讀哪些經典書籍?

自從2002年開始迷上編譯原理,這麼多年以來一直斷斷續續地學習,卻一直處於半懂不懂且缺乏實踐的尷尬境地,以至於都要引以為平生一憾了。

昨晚看過本書前兩章,感覺作者有兩點做得好:一是首先建立大局觀,不一上來就陷入細枝末節,這樣比較容易入門;二是追求實用性,舉的例子都是實際的語言應用,這樣比較容易建立直觀的聯繫。這其實也是學習比較複雜的理論時特別要注意的兩點,所以最好是先找一本類似本書的入門書,有了大局觀和一定的理論和實踐基礎後再看龍書這樣的專業教科書,這樣循序漸進,可以少走不少彎路。

三.方法學系列:

1 《用戶故事與敏捷方法完整》

計算機專業必讀哪些經典書籍?

現在的互聯網產品開發早就擺脫了瀑布式的開發方法,不同公司有不同的定義產品需求的方式,書裡的用戶故事user story實際上和用例use case一樣,是產品人員描述用戶需求的方法,他得主要優點在於卡片式的形式加上簡短的描述文字和約束條件方便交流理解,文檔式的產品需求說明書內容繁多不利於與用戶和市場人員交流。

 互聯網產品開發和傳統的定製軟件不一樣,需求是自己挖掘出來的,而不是客戶提出的,所以沒有交流上的問題,所以用戶故事和用例相比沒有特別的優勢,相反用例對於交互的描述對於開發分解task會更有幫助。

所以,總結來說,沒有最好的,只有最合適的

2 《金礦:精益管理 挖掘利潤 (法)伯樂著》

計算機專業必讀哪些經典書籍?

《金礦》以小說的方式,描述了一家瀕臨破產的企業如何轉虧為盈。這家企業即擁有技術優勢,又擁有市場優勢,但它卻陷入了財務困境。危難之際,經驗豐富的精益專家幫助企業建立起一套有競爭力的生產運作系統,通過不斷改善,消除浪費,大幅度提高了生產效率和質量,庫存很快轉變為流動資金。本書用最簡單的文字,闡述了實施精益生產所面臨的挑戰和解決方法,對於想要學習精益生產理論的寶寶們來說是一本很好的書。

3 《解析極限編程:擁抱變化(原書第2版)》

計算機專業必讀哪些經典書籍?

喜歡看這種很短的書,站在陽臺就看完了,我都佩服我自己。裡面有不少思想還是不錯的,勇氣,信任,開放,勾勒了一幅完全投入激情的工作的情景。裡面很重要的一個思想是 把一個大的複雜的事情分解成小事情,先把最核心的事情做完,不斷重構,不斷快步向前。

4 《持續交付-發佈可靠軟件的系統方法》

計算機專業必讀哪些經典書籍?

我是“好的程序員的生產力十倍於差的程序員”這句話的信奉者,由此我期望的未來會有很多人數很少但精銳的小的軟件開發組織存在。要在這樣的未來生存,需要把一切能夠自動化的事務都自動化,讓寶貴的智力專注在最有價值的業務上。

同時作為一個在大型互聯網公司工作過數年的開發者,配置管理、部署和運維的複雜和困難另我深感敬畏,這種困難告訴我在開發和運維之間存在“失落的一環”,在這個弱點得到彌補之前,好的程序員也無法充分發揮其生產力。

這本持續交付正是講述了怎麼彌補這失落的一環,把開發、提交、自動化測試、持續集成、自動化部署完整的串了起來。

另外,infrastructure as code是非常強大的概念,必須學習。

5 《重構極限編程 XP的實踐與反思》

計算機專業必讀哪些經典書籍?

TWI 的時候 MX 提到了這本書。這本書非常罕見的列舉了很多XP 失敗的例子,多數來自於郵件組的討論。

 這本書的出現或許會給人了一種感覺,這本書的目的是為了證明XP和Agile是不可行的~然而,事實上,該書的作者恰恰是DSDM(7大敏捷方法族中的一員)的創始人,同時也是敏捷宣言的簽署人之一。

 事實上該書的出現恰好像是一個燈塔,因為 Agile 的特殊性,很容易產生形似而神不合的偽“Agile”實現,從本質上說,這些實踐都是反敏捷的,雖然它們都扣上了一個敏捷的帽子。這本書很好的把這些容易出問題的地方列舉了出來,起到了一種警醒的作用。

6 《系統化思維導論》

計算機專業必讀哪些經典書籍?

這本書給我最大的收穫,就是讓我遇到了系統科學這門聯繫著數百門學科的學科。我讀書的一個目的,就是掌握儘可能多元化思維方式,這樣的閱讀過程讓我接觸了許多不同的學科系統。但過多的系統也帶來一個問題,如何統攝它們的關係呢?以往,我都是以非系統化的思維來進行學科系統的思考,就是一直停留在作者所說的一階序狀態,而這本書帶給我新的管理方式——好像在腦子裡裝了一個全新的數據庫管理系統。

 其次,這本書讓我湊巧碰到了另一本書,讓我確定了接下來3個月的閱讀主題”系統科學“。前中科院院長路甬祥曾說,系統科學是21世紀科學的趨勢。我最近初步接觸系統科學,驚詫於其對經典科學學科範式的顛覆,並驚異於其對現實中肯看法,深深覺得未來將會被系統科學改變革新,就像以前的文藝復興,或許甚至可能是有史以來最大的科學革命。

7 《程序員的思維修煉:開發認知潛能的九堂課》

計算機專業必讀哪些經典書籍?

非常棒的方法論。作為程序員,我們喜歡追根溯源,從架構到語言設計,從語言設計到系統內核,從編程到思考大腦的本質。沒錯為了寫出更好的代碼,我們想要了解世界上的所有真理。尤其是對大腦,以及我們自身本質的理解。可惜科學依然沒有揭開這層面紗,但我們渴望著。Andy Hunt這本書寫的正是我們所渴望的東西,以及一些目前科學上的進展。 作為一個人,永遠都受限與自身。只有提升自身,才是前進的根本。體育鍛煉身體,思維修煉大腦。

8 《高效程序員的45個習慣:敏捷開發修煉之道》

計算機專業必讀哪些經典書籍?

在所有關乎技藝方面的工作,背後都有一個“道”或類似於“禪”的東西,一通百通。有時,你就得放棄已有的工匠情結,更多地要把自己的理念,思想都揉合在一個物件上,這時技術只是一個副產品罷了。今天iPhone的成功,絕不是因為它做工精細,品質優良,重要的是它帶給人們簡潔,方便的理念,將生活中的例子融合到了上面,屏幕翻頁就像翻書一樣直接。

良質,我班門弄斧理解其中的一層含義是“直覺+判斷”。這些都是形而上的,看不見,也摸不著,不好解釋,但又確實存在。擁有好的良質,你的直覺和判斷會很準。特別是在自然科學,尤其是數學,今日諸多數學定理都是在直覺和判斷下“猜”出來的。

 本書探討了有關摩托車修理藝術,禪,宗教,自然科學,教育,哲學,數學,個人修行。包含如此廣泛,誰敢說這僅僅是一部文學作品呢?

9 《禪與摩托車維修藝術 羅伯特·M·波西格》

;

計算機專業必讀哪些經典書籍?

在所有關乎技藝方面的工作,背後都有一個“道”或類似於“禪”的東西,一通百通。有時,你就得放棄已有的工匠情結,更多地要把自己的理念,思想都揉合在一個物件上,這時技術只是一個副產品罷了。今天iPhone的成功,絕不是因為它做工精細,品質優良,重要的是它帶給人們簡潔,方便的理念,將生活中的例子融合到了上面,屏幕翻頁就像翻書一樣直接。

良質,我班門弄斧理解其中的一層含義是“直覺+判斷”。這些都是形而上的,看不見,也摸不著,不好解釋,但又確實存在。擁有好的良質,你的直覺和判斷會很準。特別是在自然科學,尤其是數學,今日諸多數學定理都是在直覺和判斷下“猜”出來的。

 本書探討了有關摩托車修理藝術,禪,宗教,自然科學,教育,哲學,數學,個人修行。包含如此廣泛,誰敢說這僅僅是一部文學作品呢?

10 《人月神話》

計算機專業必讀哪些經典書籍?

這本書的格局我很喜歡這本書。

 這本書從軟件的樂趣和苦惱寫起,體現了老一輩黑客的純粹。也體現了生活哲學:莫忘初心。

 確實,軟件對於一個立志於建設的青年來說是最理想的場景:憑空,憑大腦,憑雙手,憑一臺計算機。

 比爾蓋茨起家的空手套白狼,google的雙人組,twitter的大學寢室傳奇。包括現在寫日誌的豆瓣網創始人咖啡館一週完成故事。

IT業是一個傳奇的行業,傳奇是軟件的自然屬性。

 我也喜歡作者寬闊的視野。

彙總目錄:

一.編程實踐系列:

1 .《代碼整潔之道》

2 .《卓有成效的程序員》

3 .《程序員的職業素養》

4 .《重構與模式》

5 .《代碼大全》

6 .《實現模式》

7 .《程序員修煉之道》

8 .《高性能MySQL》

9 .《修改代碼的藝術》

10. 《計算機程序的構造和解釋》

11 .《重構:改善既有代碼的設計(中文版)》

12 .《調試九法——軟硬件錯誤的排查之道》

13 .《算法設計與分析基礎第3版》

14 .《實用J2EE設計模式編程指南》

15 .《編寫可讀代碼的藝術-完整版(帶書籤)》

16 .《大話設計模式(帶目錄完整版)》

17 .《程序設計方法》

18 .《七週七語言:理解多種編程範型》

19 .《程序設計語言——實踐之路》

20 .《程序設計實踐中文版》

21 .《編碼:隱匿在計算機軟硬件背後的語言(美)佩措爾德》

22 .《編程原本》

二.架構與設計系列:

1 .《敏捷軟件開發:原則、實踐與模式》

2 .《深入淺出設計模式》

3 .《Unix編程藝術》

4 .《企業應用架構模式》

5 .《領域驅動設計.軟件核心複雜性應對之道.軟件核心複雜性應對之道》

6 .《企業集成模式:設計、構建及部署消息傳遞解決方案》

7 .《架構之美》

8 .《面向模式的軟件架構_卷5_模式與模式語言》

9 .《億級流量網站架構核心技術 跟開濤學搭建高可用高併發系統》

10. 《領域特定語言》

11 .《元素模式》

12 .《設計模式:可複用面向對象軟件的基礎》

13 .《設計模式:Java語言中的應用》

14 .《編程珠璣(第2版)(第一部)》

15 .《編程珠璣(編程珠璣續篇)(第二部)》

16 .《淘寶技術這十年 完整版》

17 .《軟件架構的藝術》(簡稱架構之美)

18 .《軟件框架設計的藝術》

19 .《軟件測試的藝術(原書第2版)》

20 .《HeadFirst設計模式》

21 .《編程語言實現模式》

三.方法學系列:

1 .《用戶故事與敏捷方法完整中文版》

2 .《金礦:精益管理 挖掘利潤 (法)伯樂著》

3 .《[解析極限編程:擁抱變化(原書第2版)》

4 .《持續交付-發佈可靠軟件的系統方法完整版》

5 .《重構極限編程 XP的實踐與反思》

6 .《系統化思維導論》

7 .《程序員的思維修煉:開發認知潛能的九堂課》

8 .《高效程序員的45個習慣:敏捷開發修煉之道》

9 .《禪與摩托車維修藝術 羅伯特·M·波西格》

10. 《人月神話》

四.思想與領導力系列:

1. 《卓有成效的管理者》

2 .《你的燈亮著嗎》

3 .《成為技術領導者》

4 .《第五項修煉》

5 .《思考快與慢》

6 .《麥肯錫方法》

五.奇門遁甲系列:

1 .《軟件調試的藝術》

2 .《世界是數字的.Brian.W.Kernighan》

3 .《極客與團隊》

4 .《計算的本質:深入剖析程序和計算機》

5 .《計算機科學概論(原書第3版)》

6 .《計算機系統概論》

7 .《人件(原書第3版)》

8 .《深入理解計算機系統》

六.互聯網大佬奇蹟傳記系列:

1 .《史蒂夫·喬布斯傳》

2 .《沃茲傳:與蘋果一起瘋狂》

3 .《圖靈的祕密 他的生平、思想及論文解讀》

4 .《蘋果首席設計師_喬納森傳》

5 .《雷軍:人因夢想而偉大》

6 .《馬雲傳》

7 .《企鵝凶猛:馬化騰的中國功夫》

8 .《拒絕平庸 周鴻禕和他的創士記》

9 .《比爾蓋茨全傳》

10. 《阿桑奇自傳》

11 .《馬雲:我的成功不是偶然,給年輕人的創業課.任雪峰》

12 .《編程人生_15位軟件先驅訪談錄》

13 .《史玉柱自述:我的營銷心得》

14 .《一網打盡貝佐斯與亞馬遜時代》

15 .《世界因你不同:李開復自傳》

16 .《編程大師訪談錄》

17 .《DOOM啟世錄》

18 .《奇思妙想:15位計算機天才及其重大發現》

19 .《孵化Twitter 從蠻荒到IPO的狂野旅程》

總結:天下沒有不勞而獲的果實,望各位年輕的朋友,想學技術的朋友,在決心扎入技術道路的路上披荊斬棘,把書弄懂了,再去敲代碼,把原理弄懂了,再去實踐,將會帶給你的人生,你的工作,你的未來一個美夢。

覺得不錯給個讚唄ヾ(◍°∇°◍)ノ゙~

學習從來不是一個人的事情,要有個相互監督的夥伴,工作需要學習C/C++或者為了入行、轉行學習C/C++的夥伴可以私信回覆小編“學習”領取全套免費C/C++學習資料、

計算機專業必讀哪些經典書籍?

相關推薦

推薦中...