程序员成长系列--应该读的通用技术书籍列表
曾經看過一篇文章,說程序員分為5種境界,比詩人還多2重境界。
| ?第一重,芳辰追逸趣,禁苑信多奇。在這個階段,我們大多是還沒有入門 第二重,壯志饑餐胡虜肉,笑談渴飲匈奴血。在這個階段,其實我們已經入門 第三重,昨夜西風凋碧樹。獨上高樓,望盡天涯路。處在這一階段的人,多已經過了第二重天的癲狂期,開始思考為什么了 ?第四重,衣帶漸寬終不悔,為伊消得人憔悴。終于,找到了一個方向,找到了一本或者幾本看起來能夠詮釋我們心中郁結的書。 第五重,會當凌絕頂,一覽眾山小。也許是一個機緣巧合,也許是一個上天的恩賜,有一天你突然頓悟了,然后發現其實世界就是萬法歸一,這就是道。 |
那么怎么通過讀書突破一個又一個境界那?從今天開始,我將分幾篇說明一下程序員成長需要的那些方面的知識和能力,從點從面上做一些說明。不到之處請指導。
讀書推薦前10部!
1、《代碼大全(第2版)?》 史蒂夫·邁克康奈爾??
推薦數:1684?適合達到第三層的程序員 “優秀的編程實踐的百科全書,《代碼大全》注重個人技術,其中所有東西加起來, 就是我們本能所說的“編寫整潔的代碼”。這本書有50頁在談論代碼布局。” —— Joel Spolsky 對于新手來說,這本書中的觀念有點高階了。到你準備閱讀此書時,你應該已經知道并實踐過書中99%的觀念。– esac Steve McConnell的原作《代碼大全》(第1版)是公認的關于編程的最佳實踐指南之一, 在過去的十多年間,本書一直在幫助開發人員編寫更好的軟件。 現在,作者將這本經典著作全新演繹,融入了最前沿的實踐技術,加入了上百個嶄新的代碼示例, 充分展示了軟件構建的藝術性和科學性。 McConnell匯集了來自研究機構、學術界以及業界日常實踐的主要知識, 把最高效的技術和最重要的原理交織融會為這本既清晰又實用的指南。 無論您的經驗水平如何,也不管您在怎樣的開發環境中工作,也無論項目是大是小, 本書都將激發您的思維并幫助您構建高品質的代碼。 《代碼大全(第2版))》做了全面的更新,增加了很多與時俱進的內容,包括對新語言、新的開發過程與方法論的討論等等。 ? 購買地址? 2、《程序員修煉之道:從小工到專家*亨特(Andrew Hunt)》點擊書名購買推薦數:1504?適合達到第1層的程序員 對于那些已經學習過編程機制的程序員來說,這是一本卓越的書。 或許他們還是在校生,但對要自己做什么,還感覺不是很安全。 就像草圖和架構之間的差別。雖然你在學校課堂上學到的是畫圖,你也可以畫的很漂亮, 但如果你覺得你不太知道從哪兒下手,如果某人要你獨自畫一個P2P的音樂交換網絡圖,那這本書就適合你了。—— Joel 《程序員修煉之道:從小工到專家》內容簡介:《程序員修煉之道》由一系列獨立的部分組成, 涵蓋的主題從個人責任、職業發展,知道用于使代碼保持靈活、并且易于改編和復用的各種架構技術, 利用許多富有娛樂性的奇聞軼事、有思想性的例子及有趣的類比, 全面闡釋了軟件開發的許多不同方面的最佳實踐和重大陷阱。 無論你是初學者,是有經驗的程序員,還是軟件項目經理,《程序員修煉之道:從小工到專家》都適合你閱讀。
3、《計算機程序的構造和解釋(原書第2版)》?點擊購買推薦數:916?適合達到第三層的程序員
就個人而言,這本書目前為止對我影響醉倒的一本編程書。 《代碼大全》、《重構》和《設計模式》這些經典書會教給你高效的工作習慣和交易細節。 其他像《人件集》、《計算機編程心理學》和《人月神話》這些書會深入軟件開發的心理層面。 其他書籍則處理算法。這些書都有自己所屬的位置。 然而《計算機程序的構造和解釋》與這些不同。 這是一本會啟發你的書,它會燃起你編寫出色程序的熱情; 它還將教會你認識并欣賞美; 它會讓你有種敬畏,讓你難以抑制地渴望學習更多的東西。 其他書或許會讓你成為一位更出色的程序員,但此書將一定會讓你成為一名程序員。 同時,你將會學到其他東西,函數式編程(第三章)、惰性計算、元編程、虛擬機、解釋器和編譯器。 一些人認為此書不適合新手。 個人認為,雖然我并不完全認同要有一些編程經驗才能讀此書,但我還是一定推薦給初學者。 畢竟這本書是寫給著名的6.001,是麻省理工學院的入門編程課程。 此書或許需要多做努力(尤其你在做練習的時候,你也應當如此),但這個價是對得起這本書的。 4、《c程序設計教程 譚浩強C語言入門經典開發書籍》
推薦數:774?適合達到第1層的程序員 這本書簡潔易讀,會教給你三件事:C 編程語言;如何像程序員一樣思考;底層計算模型。 (這對理解“底層”非常重要)—— Nathan 《C程序設計語言》(第2版新版)講述深入淺出,配合典型例證,通俗易懂,實用性強, 適合作為大專院校計算機專業或非計算機專業的C語言教材,也可以作為從事計算機相關軟硬件開發的技術人員的參考書。 《C程序設計語言》(第2版新版)原著即為C語言的設計者之一Dennis M.Ritchie和著名的計算機科學家Brian W.Kernighan合著的 一本介紹C語言的權威經典著作。 我們現在見到的大量論述C語言程序設計的教材和專著均以此書為藍本。 原著第1版中介紹的C語言成為后來廣泛使用的C語言版本——標準C的基礎。 人們熟知的“hello,world”程序就是由本書首次引入的,現在,這一程序已經成為所有程序設計語言入門的第一課。 5、《算法導論 原書第3版/第三版 中文版》
推薦數:671?適合達到第三層的程序員 《代碼大全》教你如何正確編程; 《人月神話》教你如何正確管理; 《設計模式》教你如何正確設計…… 在我看來,代碼只是一個工具,并非精髓。 開發軟件的主要部分是創建新算法或重新實現現有算法。 其他部分則像重新組裝樂高磚塊或創建“管理”層。 我依然夢想這樣的工作,我的大部分時間(>50%)是在寫算法,其他“管理”細節則留給其他人…… —— Ran Biron
6、《重構:改善既有代碼的設計 正版》推薦數:617?適合達到第三層的程序員
《重構:改善既有代碼的設計》清晰地揭示了重構的過程,解釋了重構的原理和最佳實踐方式, 并給出了何時以及何地應該開始挖掘代碼以求改善。 書中給出了70多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術。 《重構:改善既有代碼的設計》提出的重構準則將幫助你一次一小步地修改你的代碼,從而減少了開發過程中的風險。 《重構:改善既有代碼的設計》適合軟件開發人員、項目管理人員等閱讀, 也可作為高等院校計算機及相關專業師生的參考讀物。 我想我不得不推薦《重構》:改進現有代碼的設計。—— Martin 我必須承認,我最喜歡的編程語錄是出自這本書:任何一個傻瓜都能寫出計算機能理解的程序, 而優秀的程序員卻能寫出別人能讀得懂的程序。—— Martin Fowler 7、《Head First 設計模式(中文版)》
推薦數:617?適合達到第三層的程序員 自1995年出版以來,本書一直名列Amazon和各大書店銷售榜前列。 近10年后,本書仍是Addison-Wesley公司2003年最暢銷的圖書之一。 中文版銷售逾4萬冊。 就我而言,我認為四人幫編著的《設計模式》是一本極為有用的書。 雖然此書并不像其他建議一樣有關“元”編程,但它強調封裝諸如模式一類的優秀編程技術, 因而鼓勵其他人提出新模式和反模式(antipatterns),并運用于編程對話中。—— Chris Jester-Young 8、《人月神話(32周年中文紀念版)》
推薦數:588?適合達到第1層的程序員 在軟件領域,很少能有像《人月神話》一樣具有深遠影響力并且暢銷不衰的著作。 Brooks博士為人們管理復雜項目提供了最具洞察力的見解。 既有很多發人深省的觀點,又有大量軟件工程的實踐。 本書內容來自Brooks博士在IBM公司System/360家族和OS/360中的項目管理經驗。 該書英文原版一經面世,即引起業內人士的強烈反響,后又譯為德、法、日、俄中等多種語言,全球銷量數百萬冊。 確立了其在行業內的經典地位。 9、《計算機程序設計藝術卷4A組合算法1英文版精/圖靈原版》
推薦數:542 ?適合達到第5層的程序員 《計算機程序設計藝術》系列著作對計算機領域產生了深遠的影響。 這一系列堪稱一項浩大的工程,自1962年開始編寫,計劃出版7卷,目前已經出版了4卷。 《美國科學家》雜志曾將這套書與愛因斯坦的《相對論》等書并列稱為20世紀最重要的12本物理學著作。 目前Knuth正將畢生精力投入到這部史詩性著作的撰寫中。 這是高德納傾注心血寫的一本書。—— Peter Coulton 10、《編譯原理(第二版)》?推薦數:462?適合達到第4層的程序員
? 我從沒忘過此書的第一版封面。 此書讓我知道了編譯器是多么地神奇絕妙。- DB |
當然了,這里的排名并不具有什么權威性,但絕對可以說都是好書,這11本外還有很多書雖然票數不是那么多,但大家估計都耳熟能詳,比如《Effective C++》(中文版《Effective C++:改善程序與設計的55個具體做法(第三版)中文版?》),《Clean Code》(中文版《代碼整潔之道》),《Effective Java》(中文版《Effective Java中文版(第2版)》等 。
記得有位先哲曾說過:一種編程語言的重要性并不在于語言本身,而是在于這種語言來體現出來的編程思維模式。所以說,并不是你用到的書才去讀,讀書是一種習慣。
前十部書屬于比較通用的技術書籍。下一篇,推薦前端開發工程師/html、js等設計和開發書籍。
也可以看看一下讀后感
[《喬布斯傳》讀后感]
[《人月神話》讀后感及下載購買地址]
總結
以上是生活随笔為你收集整理的程序员成长系列--应该读的通用技术书籍列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据离线流程(小练习)
- 下一篇: [编程题] 字符迷阵