我這一生,從不知道哪位智者是根本不讀書的——沒有,沒有一我的。html
-- <cite>投資大師芒格</cite>程序員
(爲何markdown語法裏的外鏈沒有正常顯示了?)正則表達式
自從開始自學編程以來,就一直但願有人指點該如何逐步的打牢基礎,該讀哪些書籍來加深對計算機科學的理解。最近,我在網上看到有人整理了一些知名程序員推薦的書籍,他們或是接受採訪,或是在本身的博客上,向你們推薦了本身認爲最有價值的編程書籍。以爲應該都是不錯的選擇,因此翻譯過來與你們分享。算法
當今,咱們時刻被筆記本電腦和iPhone包圍,致使忽視了人類歷史上最重要的技術之一:默默無聞的書籍。我不肯定是否是個人圈子過小,可是個人程序員朋友中,日常讀書的人確實不多。恕我直言,真是有點暴殄天物,由於書中提供了讓你大幅提高技能的可貴機會。編程
若是有人問你,「你是否願意付5000美圓,請世界上一名最偉大的程序員當你三個月的導師?」你會怎麼回答?極可能是「那太好啦!」。可是若是給你一樣的選擇,只是此次變成支付50美圓,可是你必須讀書,你還會願意嗎?設計模式
閱讀一本偉大的書籍,就像被一位偉大的導師呵護教導同樣。許多擁有豐富經驗的偉大程序員,選擇將他們的智慧凝聚到書本這種儘管不太防水,可是可攜帶性強的載體中,就是爲了給你提供閱讀的樂趣。你爲何很差好享用這場匯彙集體知識的盛筵呢?api
下面是這個領域中一些頂級程序員的建議。請注意,其中一些書籍被反覆說起。已添加購買連接。markdown
Joel Spolsky畢業於耶魯大學計算機系,目前是Fog Creek軟件公司的CEO。他的網絡日誌"Joel談軟件"(Joel on Software)很是有名,讀者人數能夠排進全世界前100名。網絡
他向你們推薦5本書,分別是:學習
Code Complete: A Practical Handbook of Software Construction, 2nd Edition(代碼大全2)
The Pragmatic Programmer: From Journeyman to Master(程序員修煉之道:從小工到專家)
The Mythical Man-Month: Essays on Software Engineering(人月神話)
Steve Yegge是Amazon的前員工,目前在Google工做,是《程序員的吶喊》一書的做者。
他推薦下面這些書:
The Pragmatic Programmer: From Journeyman to Master(程序員修煉之道:從小工到專家)
Refactoring: Improving the Design of Existing Code(重構:改善既有代碼的設計)
Design Patterns: Elements of Reusable Object-Oriented Software(設計模式:可複用面向對象軟件的基礎)
Concurrent Programming in Java: Design Principles and Patterns(好像沒有中文版)
Mastering Regular Expressions(精通正則表達式(第3版))
The Algorithm Design Manual(算法設計手冊(第2版))
The C Programming Language(C程序設計語言)
The Little Schemer(關於Lisp語言的書,沒有中文版)
知名黑客。每一年都會在本身的博客上,整理推薦Windows平臺的軟件,博文很受人們推崇。他還運營着一個本身的播客。
他推薦了這些書:
Code Complete: A Practical Handbook of Software Construction, 2nd Edition(代碼大全2)
The Pragmatic Programmer: From Journeyman to Master(程序員修煉之道:從小工到專家)
Programming Pearls(編程珠璣)
Refactoring: Improving the Design of Existing Code(重構:改善既有代碼的設計)
The Design of the UNIX Operating System(UNIX操做系統設計)
Design Patterns: Elements of Reusable Object-Oriented Software(設計模式:可複用面向對象軟件的基礎)
Code Complete: A Practical Handbook of Software Construction, 2nd Edition(代碼大全2)
The Pragmatic Programmer: From Journeyman to Master(程序員修煉之道:從小工到專家)
Structure and Interpretation of Computer Programs(計算機程序的構造和解釋)
The C Programming Language(C程序設計語言)
Design Patterns: Elements of Reusable Object-Oriented Software(設計模式:可複用面向對象軟件的基礎)
Refactoring: Improving the Design of Existing Code(重構:改善既有代碼的設計)
The Mythical Man-Month: Essays on Software Engineering(人月神話)
顯然,光讀書不會讓你成爲大師級程序員。要提高技能,你須要的是練習,而且是大量的練習。可是,書籍還是學習「你不知道你不知道的內容」的最好方式之一。
上面推薦的書籍中,不少都是有PDF版的。可是彷佛不適合在簡書上直接放這樣的連接,有須要的朋友請看原文。
原文連接:編程派