前言(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)的博士导师教我们软件工程。在他的推荐与熏陶下,我也开始慢慢接触了基本经典的英语技术书籍,不过遗憾的是当时真的看不懂,原因主要是:

  • 一则是因为英语实在太差,当时来讲,英语对我来讲除了应付高考、四六级之外,几乎都束之高阁,所以很难看懂这些原著也就不足为怪了(英语较差)。

  • 二则是因为里面讲的知识就比较深入,对于趋近于零基础的编程人员,看起来确实比较枯燥(技术较难)。

  • 再则是因为这些书都比较经典且出版已久,所以国内基本有相应的中译书籍。相对这些英文书籍,中文的版本理解起来更容易、更快一些(有中文版)。

 我与英语技术书籍_Tech Books 我与英语技术书籍_英语技术书籍_02

 我与英语技术书籍_程序员_03 我与英语技术书籍_English_04

         (题外话:去年在新加坡面试系统分析师和架构师职位的时候,细节考得最多的还是这些知识,看来基础还是起着比较重要的作用,所以以后还得慢慢补回来!)

直至毕业后的几年里,随着自己英语和技术水平的提高,技术领域的不断深入,发现一下几个问题:

  • 混沌的图书市场:国内的技术书籍虽然众多,但质量参差不齐。虽然不乏优秀的作者和中文作品,但也有的作者或者书籍东拼西凑,或者炒作概念。殊不知人的一生或者职业生涯,可以掌握在一本好书的手里,也可以堕落在一本坏书的身下!

  • 很难与时俱进:中华文明,千古流传,很多领域比起欧美有过之而无不及,但在计算机或者高科技领域,中国的差距不是短短几年能赶得上的。对于新技术,我们往往要等上短则半年、一年,多则几年才能看到相应的且质量较好的中文书籍推出,那么对于不懂英文的技术者来讲,这就无形落后于其他懂英语的技术者。

基于以上两点,自己逐渐地开始活跃于国外的社区及博客,最后也理所当然地慢慢接受了英语原版书籍。

讲到这里,就不得不提我的.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#也相当不错,不过只粗略浏览了一遍,有机会一定再仔细看一下!

 我与英语技术书籍_英语_05 我与英语技术书籍_Tech Books_06

 我与英语技术书籍_英语_07 我与英语技术书籍_English_08

.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真的写得不错。

 我与英语技术书籍_英语_09 我与英语技术书籍_英语_10

 我与英语技术书籍_英语技术书籍_11 我与英语技术书籍_程序员_12

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》,自己兴趣似乎不是很大,所以一直都没有没有动过。

 我与英语技术书籍_英语_13 我与英语技术书籍_英语_14

 我与英语技术书籍_程序员_15 我与英语技术书籍_Tech Books_16

重构方面的书

谈到重构方面,自己的项目经历比较多,其中书籍也阅读比较多,主要有以下几本对我影响比较大:

 我与英语技术书籍_English_17

 我与英语技术书籍_Tech Books_18
书名:    Refactoring: Improving the Design of Existing Code                                                      
作者:Martin Fowler & Kent Beck…
 我与英语技术书籍_Tech Books_19
书名: Clean Code: A Handbook of Agile Software Craftsmanship
作者: Robert C. Martin
 我与英语技术书籍_Tech Books_20
书名: Refactoring to Patterns
作者: Joshua Kerievsky
 我与英语技术书籍_英语技术书籍_21
书名: Code Complete: A Practical Handbook of Software Construction, Second Edition
作者: Steve McConnell
 我与英语技术书籍_英语_22
书名: Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
作者: Krzysztof Cwalina & Brad Abrams
 我与英语技术书籍_English_23
书名: Test Driven Development: By Example
作者: Kent Beck
 我与英语技术书籍_英语_24
书名: Design Patterns: Elements of Reusable Object-Oriented Software
作者: the GangOfFour
 我与英语技术书籍_英语技术书籍_25
书名: Head First Design Patterns
作者:Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson
 我与英语技术书籍_English_26
书名: Agile Principles, Patterns, and Practices in C#
作者: Robert C. Martin, Micah Martin

大家可能之前看过我写的《31 天重构学习笔记索引》和《31天重构学习笔记重新整理下载》,其实在那之前,也就是2010年初,我也在公司做过《重构——OO与设计模式》的内训培训。当时我知道这个专题想在一下午的时间把它讲清楚是非常困难的,这个不像之后培训的WPF、WCF和 Silverlight那么单纯,并且每个人的基础都不一样。当中有还没有毕业的实习生、刚毕业不久的毕业生、工作了数年的工程师及技术大牛们,所以如何把这些知识很好的插入到每个人的知识树上面成了我考虑的重点。

同时当时我的心里也比较矛盾,一方面希望参加培训的同事多一些,另一方面希望人越少越好。前者则是按照常理来考虑的,毕竟培训者都希望自己所做的培训,越受欢迎越好,这样才能使自己的思想得到更多人的认可,同时自己也能实现分享知识的目的。后者则是担心怕讲不好,少一点人就少一点罪过。可是恰巧这一次是历次培训中参加人数最多的一次,来参加培训的同事有一百多人,不过幸好由于会议室坐不下,才分成了两批,这样就可以让我具备了更充分的时间和更好的心态。

总之培训是向内和向外的提炼与升华,正所谓“自己理解的知识未必能使人家理解”,这不仅考验的是技术,阅历以及经验,还考验了一个人的综合能力。

 我与英语技术书籍_Tech Books_27
  1. 多从案例出发想为什么要运用OO和设计模式

  2. UML知识归纳总结及设计工具

  3. 面向对象知识总结(三大特征,五大原则)

  4. 23种设计模式分类总结,Demo实现各种模式

  5. 模式总结和实践指导

  6. 案例分析

WPF方面的书籍

对于WPF,我花的时间和精力最多,之前有写《WPF 基础到企业应用系列》,本想从WPF的起源、背景、历史、现状讲起,然后逐渐过渡到基础、企业应用以及经验总结等,但写到第九篇就转到了Unix&PowerBuilder&Sybase项目组,抱着怀着宁缺毋滥的精神,就没有再继续写下去。如果你感兴趣,也可以看下这几篇:

· 1. WPF 基础到企业应用系列1——开篇有益

· 2. WPF 基础到企业应用系列2——WPF前世今生

· 3. WPF 基础到企业应用系列3——WPF开发漫谈

· 4. WPF 基础到企业应用系列4——WPF千年轮回

· 5. WPF 基础到企业应用系列5——WPF千年轮回 续前缘

· 6. WPF 基础到企业应用系列6——WPF布局全接触

· 7. WPF 基础到企业应用系列7——深入剖析依赖属性(核心篇)

· 8. WPF 基础到企业应用系列8——依赖属性之“风云再起”

其中的所阅读的书籍大概有:

 我与英语技术书籍_英语技术书籍_28

其中最为经典或者阅读最多的要数以下几本:

 我与英语技术书籍_Tech Books_29 我与英语技术书籍_英语_30 我与英语技术书籍_English_31

 我与英语技术书籍_English_32 我与英语技术书籍_英语_33 我与英语技术书籍_Tech Books_34

这里不得不提到Charles Petzold 的  《Applications = Code + Markup A Guide to the Microsoft Windows Presentation Foundation 》,由于当年学习WPF的书籍很少,中文书籍基本没有,所以只有通过MSDN以及英文版的电子书,其中对我影响最大的就是这本。它用Code和XAML两种方式对WPF进行了诠释,并且很多时候能激发出读者举一反三的兴趣和激情,如果大家看过我的WPF基础到企业应用系列,可能会找到很多类似的写法。但是书中基本没有图片,通篇只有文字和代码,而且里面还有比较复杂的数学原理,如果你是WPF初学者,还是建议从比较基础的看起。

同时也分享一下当时给公司所做培训的资料:

 我与英语技术书籍_Tech Books_35

 我与英语技术书籍_Tech Books_36

 我与英语技术书籍_English_37

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少。

 我与英语技术书籍_英语技术书籍_38

基于几个项目的经验以及所阅读的书籍,我也曾在公司做过一次关于Silverlight的分享《Silverlight基础到实战》

 我与英语技术书籍_English_39
  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》。

 我与英语技术书籍_英语_40

还记得三年多以前在公司做的一次内训《WCF剖析及深入应用》,也正是基于自己从Remoting & Web Service==》WCF的使用经验以及书籍的归纳总结。

 我与英语技术书籍_Tech Books_41

 我与英语技术书籍_程序员_42

 我与英语技术书籍_英语_43

云计算以及Windows Azure方面的书籍

三年多以前,关于云计算以及Windows Azure的相关中文资料,国内市场基本没有。所以当时做项目主要参考微软的白皮书和一些相关的英语书籍,主要如下:

 我与英语技术书籍_Tech Books_44

但主要有三本对我影响较大:

 我与英语技术书籍_程序员_45 我与英语技术书籍_英语技术书籍_46 我与英语技术书籍_英语技术书籍_47

记得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年开始陆陆续续收集了几百本,内容涉及也比较的广泛,最主要是根据当时的兴趣,学习和工作的需要而下载的。

 我与英语技术书籍_程序员_48

之前在国内没有意识到正版与盗版的重要性,直到来到新加坡后才逐渐改变这个习惯,在此深表惭愧!

有人或许会问到如何利用时间与读书相关的问题,其实只要你保持阅读的习惯,看完一本书是非常快的!

另外,我使用的电子书下载网站很多,前些年收集了很多网站,到后来就从固定的一两个站点下载。现在看电子书越来越少了,究其原因,主要有以下几个考虑:

  • 工作比较忙,电子书一多,也就没有时间和耐心一一看完。

  • 自己也在写书,所以也逐渐意识到使用盗版是不对的。为了尊重作者,如果有资金,我还是更愿意买正版的。

  • 现在公司书籍很多且新加坡图书馆也比较方便。

所以相对于电子书而言,我越来越青睐纸质书。

电子书下载网站

既然前面说到了电子书下载的问题,那么我这里就介绍两个比较实用的给大家:

FreeComputerBooks皮皮书屋

FreeComputerBooks 是一个比较齐全的计算机方面的电子书网站

优点:里面的书籍分类非常的清晰明了,而且不用注册就能免费下载,你也可以通过网站的搜索功能进行查找你需要的书。

有待改进的地方:里面的电子书还是太少,很多时候不能找到自己所需要的书籍。

皮皮书屋  收集的书籍专攻计算机科学以及相关延伸学科。

优点:里面的书籍非常的多,基本上包括了计算机学科的方方面面并且下载也非常的方便简单,另外搜索功能也比较实用。

有待改进的地方:分类不够详细,排序功能欠缺。

 我与英语技术书籍_Tech Books_49 我与英语技术书籍_英语_50

另外,万能的网友也总结了很多实用的网站,这个就需要大家去淘,比如在Google或者百度输入“免费国外电子书”,就会出现一大堆的文章及链接,所以我这里就不一一罗列这些网站。

电子书推荐

最后我也放上一些公认比较好的电子书(基本涵盖了操作系统、数据库、编译原理、数据结构,算法,具体语言编程以及程序猿工作效率,管理等)。其中有些书自己以前读过,有些书看了一些或者正在读,有些书还未读且想读。

如果你也对某本书感兴趣,你也可以从这里找到一些相关书籍的介绍http://cspray.github.io/my.so-archive/100-most-influential-programming-books.html

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,电影,电视,游戏以及微博等打成碎片,所以如何把时间充分利用起来是我们每个人进行阅读之前的必修课!另外,如果大家有什么问题或者建议,你可以通过 圣殿骑士微博联系我。真心希望能和大家一起学习并共同进步!

 我与英语技术书籍_英语技术书籍_51

备注:

  1. 我不是牛人,只是一枚普普通通在海外漂泊的程序猿。写作本文只是自己一时兴起,或者说是自己的兴趣使然,保持交流和分享的心态发布出来。文中的观点只是自己的学习心得和体会,属一家之言且鉴于本人不是学英语出身,如有不对的地方,也请大家见谅并指正。

  2. 欢迎转载,但请注明作者、出处及保持内容完整(因为本文只是自己个人的一些粗浅认知,错误在所难免,也希望读者能反馈一些信息,及时纠正和更新以上内容)。

  3. 最后,如果你觉得文章对你有所帮助,别忘了推荐或者分享,因为有你的支持,才是我续写下篇的动力和源泉!