1. 程式人生 > >我與英語技術書籍

我與英語技術書籍

前言(Introduction)

  前些天寫了一篇《程式猿也愛學英語(上),有圖有真相》,大概介紹了我學英語的一些基本資料以及心得體會,本來接下來該發中篇,但《程式猿也愛學英語(中),有圖有真相》實在太長,為了方便讀者閱讀以及多方面考慮,我把它拆分成了幾篇。前面一篇《學習英文之社群,部落格及原始碼》主要講了社群,部落格以及原始碼,今天這篇我們就來聊一聊英語相關的技術書籍。

  在講今天的內容之前,我先說一下最近熱議的一名印度工程師的感慨文章《孟莎美:令人憂慮,不閱讀的中國人》以及China Daily的時評《War of words over Chinese reading habits》,文章和時評的大致意思是中國人現在看書越來越少,這種現狀很是堪憂。我想隨著網路資訊的日趨發達,不閱讀或者少閱讀是一個全球化的趨勢,這並不僅限於中國,決定因素還是在於閱讀者本身,而不在於哪個具體的國家。另外網路時代在帶來巨大利益的同時,不可否認也會帶來不同程度的弊端,正所謂有利就有弊,任何事物都不可能盡善盡美。

今天我們這篇文中主要講英語技術書籍,所以中文書籍以及其他不是計算機相關的書籍不在此篇論述範疇。關於為什麼我喜歡讀這些技術書籍,我也有一些自己的淺顯心得,這裡也先分享出來:

  1. 當你在接觸一項新技術的時候,書籍往往能給你最系統,最全面的的知識,這是其他碎片化方式無法比擬的。
  2. 當你在做專案的時候,遇到具體的技術問題,或許你能在這些書籍中找到解決方案,也或許你會得到解決問題的思路。
  3. 當你在做完專案的時候,如果你能回過頭來看看相應的書籍,你會得到意想不到的收穫。正所謂理論指導實踐,實踐證明理論,理論總結並昇華實踐。
  4. 當你心情煩躁的時候,看書能使你保持心靜,保持一種積極向上的心態。
  5. 當你認為自己知足或者滿足或者有些許驕傲的時候,那麼看書能使你保持冷靜、避免浮躁,從而取得更大的進步。
  6. 當你在做技術傳播與分享的時候,那麼書籍往往是你最好的參考素材。
  7. 最後,一個人的精力實在有限,書籍往往能夠使我們更高效、更快捷的理解乃至學會我們想要獲得的知識。

前面廢話了這麼多,那麼下面我們就具體來聊一聊英語的相關技術書籍,需要強調的是文中的觀點只是自己的學習心得和一些體會,屬一家之言且鑑於本人學識淺薄,如有不對的地方,也請大家見諒並指正。

二. 本文所涉及的內容(Contents)

  1. 前言(Introduction)
  2. 本文所涉及的內容(Contents)
  3. 英語原文技術書籍(English Books)
  4. 關於電子書(About eBook)
  5. 總結&待續...(Summary & To Be Continued…)

英語原文技術書籍(English Books)

我與英文技術書籍的第一次邂逅

  最早接觸英語原文技術書籍是在大學的時候,當時我們學院的一個普林斯頓大學(Princeton University)的博士導師教我們軟體工程。在他的推薦與薰陶下,我也開始慢慢接觸了基本經典的英語技術書籍,不過遺憾的是當時真的看不懂,原因主要是:

  • 一則是因為英語實在太差,當時來講,英語對我來講除了應付高考、四六級之外,幾乎都束之高閣,所以很難看懂這些原著也就不足為怪了(英語較差)。
  • 二則是因為裡面講的知識就比較深入,對於趨近於零基礎的程式設計人員,看起來確實比較枯燥(技術較難)。
  • 再則是因為這些書都比較經典且出版已久,所以國內基本有相應的中譯書籍。相對這些英文書籍,中文的版本理解起來更容易、更快一些(有中文版)。

image_thumb11image_thumb101image_thumb91image

(題外話:去年在新加坡面試系統分析師和架構師職位的時候,細節考得最多的還是這些知識,看來基礎還是起著比較重要的作用,所以以後還得慢慢補回來!)

直至畢業後的幾年裡,隨著自己英語和技術水平的提高,技術領域的不斷深入,發現一下幾個問題:

  • 混沌的圖書市場:國內的技術書籍雖然眾多,但質量參差不齊。雖然不乏優秀的作者和中文作品,但也有的作者或者書籍東拼西湊,或者炒作概念。殊不知人的一生或者職業生涯,可以掌握在一本好書的手裡,也可以墮落在一本壞書的身下!
  • 很難與時俱進:中華文明,千古流傳,很多領域比起歐美有過之而無不及,但在計算機或者高科技領域,中國的差距不是短短几年能趕得上的。對於新技術,我們往往要等上短則半年、一年,多則幾年才能看到相應的且質量較好的中文書籍推出,那麼對於不懂英文的技術者來講,這就無形落後於其他懂英語的技術者。

基於以上兩點,自己逐漸地開始活躍於國外的社群及部落格,最後也理所當然地慢慢接受了英語原版書籍。

  講到這裡,就不得不提我的.NET情緣,當時大學圖書館裡面藏著一些關於NET Framework 1.1以及C#的書籍,自己懷著一種好奇的心態借閱了幾本,但過了幾天總是原封不動的還了回去,這也算是.NET原文書籍的第一印象。原因和我前面提到的一樣——還是因為看不太懂且沒有看中文書籍來得那麼直接!

Wrox Professional C#系列

  因為我在工作主要在外企,所以最初為了應付外企的英語技術筆試和麵試,我看了Professional C# 2005 with .NET 3.0英文版,通過它學到了很多.NET領域專業詞彙的英語表達並且也擴寬了自己的知識面。所以接下來幾年又追著看了Professional C# 4.0 and .NET 4以及Professional C# 2012 and .NET 4.5。

對於Professional C# 2012 and .NET 4.5,我沒有買到原版的書籍,在朋友那裡列印了所有的章節,比起書籍來說重量減少了,攜帶也就比較方便,同時也比電子書看得要舒服很多。

另外,Effective C#: 50 Specific Ways to Improve Your C#也相當不錯,不過只粗略瀏覽了一遍,有機會一定再仔細看一下!

image_thumb112image_thumb211image_thumb4image

.NET Framework Programming(CLR Via C#)系列

  接觸CLR Via C#系列,是因為同事的一本Applied Microsoft® .NET Framework Programming。因為之前看過李建中的翻譯版《.NET 框架程式設計》,所以再重複讀起來就比較的容易。後來由於專案的關係,自己免費獲得了幾本中文技術書籍,其中的《框架設計:CLR Via C#》(第2版),大概翻閱了幾章,發現翻譯質量真的不是那麼盡如人意,所以看完幾章後就擱置到書架上了,後面在新加坡國家圖書館才讀完了它的原文版。另外,去年讀了大部分CLR Via C# Third Edition,上個月開始在讀CLR Via C# Fourth Edition,不得不說Jeffrey Richter真的寫得不錯。

image_thumb3111image_thumbimage_thumb111image_thumb2111

Inside Microsoft SQL Server系列

同樣,之前免費獲得一本《Microsoft SQL Server 2005技術內幕: T-SQL程式設計》,看完之後發現翻譯質量還可以且自己收穫也頗多,通過Blog得知這套系列圖書一共包含四本:

  1. 《Microsoft SQL Server 2005技術內幕:T-SQL程式設計》 對應英文原版:《Inside Microsoft SQL Server 2005 T-SQL Programming》
  2. 《Microsoft SQL Server 2005技術內幕:T-SQL查詢》 對應英文原版:《Inside Microsoft SQL Server 2005 T-SQL Querying》
  3. 《Microsoft SQL Server 2005技術內幕:查詢、調整和優化》 對應英文原版:《Inside Microsoft SQL Server 2005 Query Tuning and Optimization》
  4. 《Microsoft SQL Server 2005技術內幕:儲存引擎》 對應英文原版:《Inside Microsoft SQL Server 2005 The Storage Engine》

  於是產生了購買的想法,但考慮到當時正在搬家,所以後來就通過電子書先後看完了其英文版《Inside Microsoft SQL Server 2005 T-SQL Querying》和《Inside Microsoft SQL Server 2005 Query Tuning and Optimization》。至於《Inside Microsoft SQL Server 2005 The Storage Engine》,自己興趣似乎不是很大,所以一直都沒有沒有動過。

cover2_thumbcover1_thumbcover3_thumbcover4_thumb

重構方面的書

談到重構方面,自己的專案經歷比較多,其中書籍也閱讀比較多,主要有以下幾本對我影響比較大:

image

image_thumb8
書名: Refactoring: Improving the Design of Existing Code
作者:Martin Fowler & Kent Beck…
image_thumb9
書名: Clean Code: A Handbook of Agile Software Craftsmanship
作者: Robert C. Martin
image_thumb10
書名: Refactoring to Patterns
作者: Joshua Kerievsky
image_thumb11
書名: Code Complete: A Practical Handbook of Software Construction, Second Edition
作者: Steve McConnell
image_thumb12
書名: Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
作者: Krzysztof Cwalina & Brad Abrams
image_thumb13
書名: Test Driven Development: By Example
作者: Kent Beck
image
書名: Design Patterns: Elements of Reusable Object-Oriented Software
作者: the GangOfFour
image
書名: Head First Design Patterns
作者:Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson
image
書名: Agile Principles, Patterns, and Practices in C#
作者: Robert C. Martin, Micah Martin

  大家可能之前看過我寫的《31 天重構學習筆記索引》和《31天重構學習筆記重新整理下載》,其實在那之前,也就是2010年初,我也在公司做過《重構——OO與設計模式》的內訓培訓。當時我知道這個專題想在一下午的時間把它講清楚是非常困難的,這個不像之後培訓的WPF、WCF和 Silverlight那麼單純,並且每個人的基礎都不一樣。當中有還沒有畢業的實習生、剛畢業不久的畢業生、工作了數年的工程師及技術大牛們,所以如何把這些知識很好的插入到每個人的知識樹上面成了我考慮的重點。

  同時當時我的心裡也比較矛盾,一方面希望參加培訓的同事多一些,另一方面希望人越少越好。前者則是按照常理來考慮的,畢竟培訓者都希望自己所做的培訓,越受歡迎越好,這樣才能使自己的思想得到更多人的認可,同時自己也能實現分享知識的目的。後者則是擔心怕講不好,少一點人就少一點罪過。可是恰巧這一次是歷次培訓中參加人數最多的一次,來參加培訓的同事有一百多人,不過幸好由於會議室坐不下,才分成了兩批,這樣就可以讓我具備了更充分的時間和更好的心態。

總之培訓是向內和向外的提煉與昇華,正所謂“自己理解的知識未必能使人家理解”,這不僅考驗的是技術,閱歷以及經驗,還考驗了一個人的綜合能力。

image
  1. 多從案例出發想為什麼要運用OO和設計模式
  2. UML知識歸納總結及設計工具
  3. 面向物件知識總結(三大特徵,五大原則)
  4. 23種設計模式分類總結,Demo實現各種模式
  5. 模式總結和實踐指導
  6. 案例分析

WPF方面的書籍

  對於WPF,我花的時間和精力最多,之前有寫《WPF 基礎到企業應用系列》,本想從WPF的起源、背景、歷史、現狀講起,然後逐漸過渡到基礎、企業應用以及經驗總結等,但寫到第九篇就轉到了Unix&PowerBuilder&Sybase專案組,抱著懷著寧缺毋濫的精神,就沒有再繼續寫下去。如果你感興趣,也可以看下這幾篇:

其中的所閱讀的書籍大概有:

image

其中最為經典或者閱讀最多的要數以下幾本:

imageimageimage_thumb311

imageimageimage

  這裡不得不提到Charles Petzold 的 《Applications = Code + Markup A Guide to the Microsoft Windows Presentation Foundation 》,由於當年學習WPF的書籍很少,中文書籍基本沒有,所以只有通過MSDN以及英文版的電子書,其中對我影響最大的就是這本。它用Code和XAML兩種方式對WPF進行了詮釋,並且很多時候能激發出讀者舉一反三的興趣和激情,如果大家看過我的WPF基礎到企業應用系列,可能會找到很多類似的寫法。但是書中基本沒有圖片,通篇只有文字和程式碼,而且裡面還有比較複雜的數學原理,如果你是WPF初學者,還是建議從比較基礎的看起。

同時也分享一下當時給公司所做培訓的資料:

2010-10-21 17-08-322010-10-21 16-54-49聖殿騎士

WPF企業內訓全程實錄(上)主要講解歷史淵源、概念引入、基本闡述以及WPF的每個知識點。

WPF企業內訓全程實錄(中)主要圍繞WPF開發模式、WPF團隊協作和MVVM框架三個議題進行闡述。

WPF企業內訓全程實錄(下)著重強調結合其他技術共同打造WPF專案、相關效能優化、以及部署與更新問題。

具體包括WPF的各個基礎概念:

  1. Application、Window、Navigation、Dispatcher: 這裡強調一個應用程式的基本組成部分,也就是說它是每一個專案都會遇到的概念!
  2. 框架結構及類繼承結構: 沒有一個巨集觀的認識作為燈塔,是一件很危險的事情,尤其在做深入研究的時候!
  3. XAML基礎: 作為WPF的主打概念,它似乎起著不可估量的作用,這也是大家接觸WPF的首要概念!
  4. 佈局基礎: 每一個應用程式,如果沒有良好的佈局,似乎是一個不可想象的事情,在WPF中提供了很多佈局元素,同時也提供了很多擴充套件點!
  5. WPF的邏輯樹和視覺樹: 它很有作用,但也很頭痛,很多錯誤不得不歸功於它!
  6. 依賴屬性、路由事件、Binding、命令: 核心中的核心,所以我們把它列為重點講解物件,後面分開闡述!
  7. 資源、樣式、模板: 在很多程度上,它吸取了之前WEB方面的優勢,這三個功能在很大程度上提高了複用,同時也規範了專案!
  8. 尺寸縮放、定位與變換元素: 由於是向量元素,所以在做各種圖形影象操作的時候就比較如魚得水!
  9. WPF控制元件分類介紹與使用技巧: 微軟的每一種UI相關的技術都會伴隨強大的控制元件庫,有了它們可以大大減輕開發的難度!
  10. 使用者控制元件和自定義控制元件開發: 和WinForm、ASP.NET一樣,開發自定義控制元件也很簡單且類似,這裡強調控制元件的多種分類以及區別對待!
  11. 多語言、面板和主題: 開發一個稍微大型的應用程式都會遇到多語言、面板和主題,在WPF中做這些元素也非常簡單!
  12. 2D圖形: WPF建立和使用2D圖形主要集中在3個重要的資料型別之上——Drawing,Visual,Shape,所以需要分別進行研究!
  13. 3D圖形: WPF之所以能帶來絢麗且強大的3D圖形功能,這得歸功於DirectX 技術,並且提供的介面也非常簡單,這也使大量動畫應用成為可能!
  14. 動畫(幾種動畫的應用):動畫無疑是WPF中最吸引人的特色之一,因為一想到動畫大家可能都會提到Flash,WPF的確也使動畫變得非常簡單!
  15. 音訊、視訊、語音: 這裡強調的影音相關的功能,由於直接使用DirectX,所以較之前的技術,WPF在顯示效果和質量上可謂是質的飛躍!
  16. 文件、列印、報表: 強調企業使用的一般功能,在WPF中也得到了很好的實現,這也是大量管理應用程式使用WPF的前提!
  17. Win32、Windows Form以及ActiveX之間的互用性:這裡強調與其他技術之間互用的相容性,當然,在WPF中對這些技術提供了很好的支援!
  18. 部署及更新應用程式:和其他客戶端技術一樣,WPF的部署與自動更新也比較容易,除了傳統的三種方法以外,還提供了XBAP的方式,不過已經逐漸被Silverlight所取代。
  19. WPF的開發模式:其他層可以保持不變,針對Presentation提供了MVC 模式、MVP模式 、MVVM 模式。
  20. 專案和效能相關:WPF在諸多方面都做得很好,除了滿足其他客戶端技術的功能外,也有自己的獨特一面。在效能方面,只要多注意一些細節,就可以超過預期的滿足企業的需求。

Silverlight方面的書籍

Silverlight方面的書籍:不得不承認當年Silverlight確實很火,以至於大家沒有理由不相信今後它沒有用武之地,同樣我也是大家中的一員,所以我花在上面的時間不比WPF少。

image

基於幾個專案的經驗以及所閱讀的書籍,我也曾在公司做過一次關於Silverlight的分享《Silverlight基礎到實戰》

image
  1. Silverlight基本、XAML、邏輯樹與可視樹、依賴屬性、路由事件、命令
  2. WPF控制元件、尺寸縮放、定位與變換元素、使用面板做佈局、構建並部署應用程式
  3. 資源、資料繫結、樣式、模板、多語言、面板和主題
  4. 2D圖形、3D圖形、動畫、音訊、視訊、語音和文件
  5. 使用者控制元件和自定義控制元件
  6. Silverlight的模式概要及例項(MVC Demo、MVP Demo、MVVM Demo)
  7. 效能優化
  8. 一個完整Silverlight專案架構和完整專案

Remoting & Web Service==》WCF==》Web API:

  從最開始的WinForm+Remoting和ASP.NET+Web Service到WCF再到今天我們用的Web API,由於專案對這些知識用得比較多,看的書籍自然也不少。這不,今年年初專案服務層從WCF換成Web API + SignalR ,就和同事邊學邊用終於完成了重構。為了繼續深入學習和研究,到現在還沒看完《ASP.NET MVC 4 AND THE WEB API》。

image

還記得三年多以前在公司做的一次內訓《WCF剖析及深入應用》,也正是基於自己從Remoting & Web Service==》WCF的使用經驗以及書籍的歸納總結。

imageimageimage

雲端計算以及Windows Azure方面的書籍

三年多以前,關於雲端計算以及Windows Azure的相關中文資料,國內市場基本沒有。所以當時做專案主要參考微軟的白皮書和一些相關的英語書籍,主要如下:

image

但主要有三本對我影響較大:

imageimageimage

  記得2010年我釋出了一篇《實戰第一個雲程式》,有幸得到張亞勤博士的推薦,還以為Windows Azure會馬上落地中國。但一晃時間就過了三年多了,國內的企業仍然不能用Windows Azure。同時因為當時專案轉移到Unix以及PowerBuilder&Sybase專案的重構,所以自己也放棄了MSDN視訊錄製與雲端計算寫書的邀請,現在想起來還是很遺憾的。

其他方面(PowerBuilder&Sybase,Win Form,My SQL,ASP.NET,HTML5,Unix 等)

  • Unix&PowerBuilder&Sybase方面的書籍:前些年做外包專案,一個偶然的機會進入了Unix&PowerBuilder&Sybase專案組,隨後就大量閱讀一些相關書籍(主要是其正版軟體裡面附帶的幾本PowerBuilder和Sybase操作手冊以及The Art of Unix Programming)。正是因為這些書籍加上自己平時操練的Demo,最後發現自己逐漸成了專案組的核心開發人員(幫助同事解決疑難雜症,Review Code或者效能調優,或者做一些比較大的Code改動等)。
  • Win Form和ASP.NET方面的書籍:對於這兩種技術,自己接觸最久且使用最多。期間也看了不少的書籍,但看過之後沒有留下什麼大的印象,大多是為了應付專案需要或者當時經驗很淺,沒有細心去總結,對此現在感覺甚是遺憾。
  • HTML5:作為現在炙手可熱的技術,作為技術者,我也不例外的跟了上去,其中拉拉扯扯瀏覽了基本相關的書籍(不能算看,只能說是囫圇吞棗),主要是沒有相關的專案,所以只能停留在Demo階段。尤其是去年分享《園友們趕快行動起來,免費獲得微軟MCSD證書!》的那段時間,為了應付那個免費考試,自己也下足了力氣。
  • 面試的書籍:其實我個人不太喜歡成功學方面的書籍,但面試的書籍卻看了幾本,原因很簡單:因為可以從別人的面試中學習到經驗和教訓,同時也可以看看自己有哪些方面有待改進或者提高……

當然,在這些年中,我也先後看了一些其他的一些非技術英文書籍,其中包括技術、管理和小說等,由於不屬於本篇範疇之內,所以這裡就不再詳細羅列,免得跑題越跑越遠!

最後,我個人的經驗是“書籍不至於多,而在於精!”——首先選擇一本自己感興趣或者工作中要用到的技術,然後認認真真讀完它,你會發現自己除了收穫了魚之外,也自然而然的學會了如何捕魚!

關於電子書(About eBook)

我收藏的電子書

關於電子書,我自己從2005年開始陸陸續續收集了幾百本,內容涉及也比較的廣泛,最主要是根據當時的興趣,學習和工作的需要而下載的。

image161_thumb1

之前在國內沒有意識到正版與盜版的重要性,直到來到新加坡後才逐漸改變這個習慣,在此深表慚愧!

有人或許會問到如何利用時間與讀書相關的問題,其實只要你保持閱讀的習慣,看完一本書是非常快的!

另外,我使用的電子書下載網站很多,前些年收集了很多網站,到後來就從固定的一兩個站點下載。現在看電子書越來越少了,究其原因,主要有以下幾個考慮:

  • 工作比較忙,電子書一多,也就沒有時間和耐心一一看完。
  • 自己也在寫書,所以也逐漸意識到使用盜版是不對的。為了尊重作者,如果有資金,我還是更願意買正版的。
  • 現在公司書籍很多且新加坡圖書館也比較方便。

所以相對於電子書而言,我越來越青睞紙質書。

電子書下載網站

既然前面說到了電子書下載的問題,那麼我這裡就介紹兩個比較實用的給大家:

優點:裡面的書籍分類非常的清晰明瞭,而且不用註冊就能免費下載,你也可以通過網站的搜尋功能進行查詢你需要的書。

有待改進的地方:裡面的電子書還是太少,很多時候不能找到自己所需要的書籍。

皮皮書屋 收集的書籍專攻電腦科學以及相關延伸學科。

優點:裡面的書籍非常的多,基本上包括了計算機學科的方方面面並且下載也非常的方便簡單,另外搜尋功能也比較實用。

有待改進的地方:分類不夠詳細,排序功能欠缺。

image110_thumb2 image119_thumb2

另外,萬能的網友也總結了很多實用的網站,這個就需要大家去淘,比如在Google或者百度輸入“免費國外電子書”,就會出現一大堆的文章及連結,所以我這裡就不一一羅列這些網站。

電子書推薦

最後我也放上一些公認比較好的電子書(基本涵蓋了作業系統、資料庫、編譯原理、資料結構,演算法,具體語言程式設計以及程式猿工作效率,管理等)。其中有些書自己以前讀過,有些書看了一些或者正在讀,有些書還未讀且想讀。

Modern Operating Systems by Andrew S. Tanenbaum
The Art of Unix Programming
Code Complete (2nd edition) by Steve McConnell
Structure and Interpretation of Computer Programs by MIT professors Harold Abelson and Gerald Jay Sussman, with Julie Sussman.
The C Programming Language by Kernighan and Ritchie
The Pragmatic Programmer by Andrew Hunt and David Thomas
Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
Design Patterns by the Gang of Four
Refactoring: Improving the Design of Existing Code Martin Fowler
The Art of Computer Programming by Donald Knuth
Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
Gödel, Escher, Bach by Douglas Hofstadter
The Mythical Man Month by Frederick Brooks
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
CODE by Charles Petzold
Programming Pearls by Jon Bentley
Working Effectively with Legacy Code by Michael C. Feathers
Peopleware by Demarco and Lister
Coders at Work by Peter Seibel
Founders at Work
Surely You're Joking, Mr. Feynman!
Patterns of Enterprise Application Architecture by Martin Fowler
The Little Schemer
The Seasoned Schemer
The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
Test-Driven Development: By Example by Kent Beck
Practices of an Agile Developer
Don't Make Me Think
The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
Writing Secure Code (2nd Edition) by Michael Howard
Introduction to Functional Programming by Philip Wadler and Richard Bird
The Productive Programmer
The Art of Deception by Kevin Mitnick
No Bugs! by David Thielen
Rework by Jason Freid and DHH
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
Domain Driven Designs by Eric Evans
The Design of Everyday Things by Donald Norman
Best Software Writing I by Joel Spolsky
The Practice of Programming by Kernighan and Pike
Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
Software Estimation: Demystifying the Black Art by Steve McConnel
The Passionate Programmer (My Job Went To India) by Chad Fowler
Hackers: Heroes of the Computer Revolution
Algorithms + Data Structures = Programs
Writing Solid Code
JavaScript - The Good Parts
Getting Real by 37 Signals
Foundations of Programming by Karl Seguin
Computer Graphics: Principles and Practice in C (2nd Edition)
The Elements of Computing Systems
Refactoring to Patterns by Joshua Kerievsky
Things That Make Us Smart by Donald Norman
The Timeless Way of Building by Christopher Alexander
The Deadline: A Novel About Project Management by Tom DeMarco
Computer Systems - A Programmer's Perspective
Agile Principles, Patterns, and Practices in C# by Robert C. Martin
Growing Object-Oriented Software, Guided by Tests
Framework Design Guidelines by Brad Abrams
Object Thinking by Dr. David West
Advanced Programming in the UNIX Environment by W. Richard Stevens
Hackers and Painters: Big Ideas from the Computer Age
The Soul of a New Machine by Tracy Kidder
CLR via C# by Jeffrey Richter
The Timeless Way of Building by Christopher Alexander
Design Patterns in C# by Steve Metsker
Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
About Face - The Essentials of Interaction Design
Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
Computational Beauty of Nature
Writing Solid Code by Steve Maguire
Philip and Alex's Guide to Web Publishing
Object-Oriented Analysis and Design with Applications by Grady Booch
Inside Microsoft SQL Server 2005 T-SQL Programming
Inside Microsoft SQL Server 2005 T-SQL Querying
Inside Microsoft SQL Server 2005 Query Tuning and Optimization
Inside Microsoft SQL Server 2005 The Storage Engine
Professional C# 2012 and .NET 4.5
Applied Microsoft® .NET Framework Programming
Masterminds of Programming
Computability by N. J. Cutland

同時,為了尊重作者以及版權,建議有資金的同學積極購買正版!

使用電子書的總結

我個人認為:電子書不在於多,而在於你到底有沒有認真去看完,而在於你看完之後是否找到你所需要的東西,也就是說看完之後有沒有什麼收穫,所以也希望各位朋友能認清這一點,不然下再多的電子書也枉然!比如我在做專案的時候,我就需要去複習和鞏固相關的知識,然後再在專案中進行實踐。我在做重構的時候,也需要一些重構的書籍作為參考,畢竟這些書都凝聚了作者們的智慧和經驗;我在做公司內部培訓的時候,書籍是我最好的輔助資料;我在面試或者被面試的時候,同樣書籍可以讓我重新鞏固所學知識。

另外,每個人的時間和精力都很有限,所以選擇適合自己的書是非常重要的!這個就需要根據自身所處的具體情況來權衡,但是如果你現在有充裕時間或者精力,不妨先從以下幾個方面開始,也許你會收到事半功倍的效果:

  1. 作業系統方面的書籍
  2. 計算機組成原理方面的書籍
  3. 技術網路基礎方面的書籍
  4. 資料庫原理方面的書籍
  5. 資料結構和演算法方面的書籍
  6. 編譯原理方面的書籍
  7. 基礎數學知識方面的書籍

總結&待續...(Summary & To Be Continued…)

  正如我前面所說,《程式猿也愛學英語,有圖有真相(中)》實在太長,為了方便讀者閱讀以及多方面考慮,我把它拆分成了幾篇。今天這篇我們講了英語相關的技術書籍,那麼下篇我們將接著說其他的幾個主題,希望能對大家有幫助。

  最後需要強調的是隨著網路時代的不斷髮展,我們的時間也逐漸被新聞,QQ,電影,電視,遊戲以及微博等打成碎片,所以如何把時間充分利用起來是我們每個人進行閱讀之前的必修課!另外,如果大家有什麼問題或者建議,你可以通過 聖殿騎士微博 聯絡我。真心希望能和大家一起學習並共同進步!

image_thumb161

備註:

  1. 我不是牛人,只是一枚普普通通在海外漂泊的程式猿。寫作本文只是自己一時興起,或者說是自己的興趣使然,保持交流和分享的心態釋出出來。文中的觀點只是自己的學習心得和體會,屬一家之言且鑑於本人不是學英語出身,如有不對的地方,也請大家見諒並指正。

  2. 歡迎轉載,但請註明作者、出處及保持內容完整(因為本文只是自己個人的一些粗淺認知,錯誤在所難免,也希望讀者能反饋一些資訊,及時糾正和更新以上內容)。

  3. 最後,如果你覺得文章對你有所幫助,別忘了推薦或者分享,因為有你的支援,才是我續寫下篇的動力和源泉!