当你在接触一项新技术的时候,书籍往往能给你最系统,最全面的的知识,这是其他碎片化方式无法比拟的。
当你在做项目的时候,遇到具体的技术问题,或许你能在这些书籍中找到解决方案,也或许你会得到解决问题的思路。
当你在做完项目的时候,如果你能回过头来看看相应的书籍,你会得到意想不到的收获。正所谓理论指导实践,实践证明理论,理论总结并升华实践。
当你心情烦躁的时候,看书能使你保持心静,保持一种积极向上的心态。
当你认为自己知足或者满足或者有些许骄傲的时候,那么看书能使你保持冷静、避免浮躁,从而取得更大的进步。
最后,一个人的精力实在有限,书籍往往能够使我们更高效、更快捷的理解乃至学会我们想要获得的知识。
前言(Introduction)
本文所涉及的内容(Contents)
英语原文技术书籍(EnglishBooks)
关于电子书(AbouteBook)
总结&待续...(Summary&ToBeContinued…)
最早接触英语原文技术书籍是在大学的时候,当时我们学院的一个普林斯顿大学(PrincetonUniversity)的博士导师教我们软件工程。在他的推荐与熏陶下,我也开始慢慢接触了基本经典的英语技术书籍,不过遗憾的是当时真的看不懂,原因主要是:
一则是因为英语实在太差,当时来讲,英语对我来讲除了应付高考、四六级之外,几乎都束之高阁,所以很难看懂这些原著也就不足为怪了(英语较差)。
二则是因为里面讲的知识就比较深入,对于趋近于零基础的编程人员,看起来确实比较枯燥(技术较难)。
再则是因为这些书都比较经典且出版已久,所以国内基本有相应的中译书籍。相对这些英文书籍,中文的版本理解起来更容易、更快一些(有中文版)。
(题外话:去年在新加坡面试系统分析师和架构师职位的时候,细节考得最多的还是这些知识,看来基础还是起着比较重要的作用,所以以后还得慢慢补回来!)
直至毕业后的几年里,随着自己英语和技术水平的提高,技术领域的不断深入,发现一下几个问题:
混沌的图书市场:国内的技术书籍虽然众多,但质量参差不齐。虽然不乏优秀的作者和中文作品,但也有的作者或者书籍东拼西凑,或者炒作概念。殊不知人的一生或者职业生涯,可以掌握在一本好书的手里,也可以堕落在一本坏书的身下!
很难与时俱进:中华文明,千古流传,很多领域比起欧美有过之而无不及,但在计算机或者高科技领域,中国的差距不是短短几年能赶得上的。对于新技术,我们往往要等上短则半年、一年,多则几年才能看到相应的且质量较好的中文书籍推出,那么对于不懂英文的技术者来讲,这就无形落后于其他懂英语的技术者。
基于以上两点,自己逐渐地开始活跃于国外的社区及博客,最后也理所当然地慢慢接受了英语原版书籍。
讲到这里,就不得不提我的.NET情缘,当时大学图书馆里面藏着一些关于NETFramework1.1以及C#的书籍,自己怀着一种好奇的心态借阅了几本,但过了几天总是原封不动的还了回去,这也算是.NET原文书籍的第一印象。原因和我前面提到的一样——还是因为看不太懂且没有看中文书籍来得那么直接!
因为我在工作主要在外企,所以最初为了应付外企的英语技术笔试和面试,我看了ProfessionalC#2005with.NET3.0英文版,通过它学到了很多.NET领域专业词汇的英语表达并且也扩宽了自己的知识面。所以接下来几年又追着看了ProfessionalC#4.0and.NET4以及ProfessionalC#2012and.NET4.5。
对于ProfessionalC#2012and.NET4.5,我没有买到原版的书籍,在朋友那里打印了所有的章节,比起书籍来说重量减少了,携带也就比较方便,同时也比电子书看得要舒服很多。
另外,EffectiveC#:50SpecificWaystoImproveYourC#也相当不错,不过只粗略浏览了一遍,有机会一定再仔细看一下!
同样,之前免费获得一本《MicrosoftSQLServer2005技术内幕:T-SQL程序设计》,看完之后发现翻译质量还可以且自己收获也颇多,通过Blog得知这套系列图书一共包含四本:
《MicrosoftSQLServer2005技术内幕:T-SQL程序设计》对应英文原版:《InsideMicrosoftSQLServer2005T-SQLProgramming》
《MicrosoftSQLServer2005技术内幕:T-SQL查询》对应英文原版:《InsideMicrosoftSQLServer2005T-SQLQuerying》
《MicrosoftSQLServer2005技术内幕:查询、调整和优化》对应英文原版:《InsideMicrosoftSQLServer2005QueryTuningandOptimization》
《MicrosoftSQLServer2005技术内幕:存储引擎》对应英文原版:《InsideMicrosoftSQLServer2005TheStorageEngine》
于是产生了购买的想法,但考虑到当时正在搬家,所以后来就通过电子书先后看完了其英文版《InsideMicrosoftSQLServer2005T-SQLQuerying》和《InsideMicrosoftSQLServer2005QueryTuningandOptimization》。至于《InsideMicrosoftSQLServer2005TheStorageEngine》,自己兴趣似乎不是很大,所以一直都没有没有动过。
谈到重构方面,自己的项目经历比较多,其中书籍也阅读比较多,主要有以下几本对我影响比较大:
总之培训是向内和向外的提炼与升华,正所谓“自己理解的知识未必能使人家理解”,这不仅考验的是技术,阅历以及经验,还考验了一个人的综合能力。
多从案例出发想为什么要运用OO和设计模式
UML知识归纳总结及设计工具
面向对象知识总结(三大特征,五大原则)
23种设计模式分类总结,Demo实现各种模式
模式总结和实践指导
案例分析
·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——依赖属性之“风云再起”
其中的所阅读的书籍大概有:
其中最为经典或者阅读最多的要数以下几本:
这里不得不提到CharlesPetzold的《Applications=Code+MarkupAGuidetotheMicrosoftWindowsPresentationFoundation》,由于当年学习WPF的书籍很少,中文书籍基本没有,所以只有通过MSDN以及英文版的电子书,其中对我影响大的就是这本。它用Code和XAML两种方式对WPF进行了诠释,并且很多时候能激发出读者举一反三的兴趣和激情,如果大家看过我的WPF基础到企业应用系列,可能会找到很多类似的写法。但是书中基本没有图片,通篇只有文字和代码,而且里面还有比较复杂的数学原理,如果你是WPF初学者,还是建议从比较基础的看起。
WPF企业内训全程实录(上)主要讲解历史渊源、概念引入、基本阐述以及WPF的每个知识点。
WPF企业内训全程实录(中)主要围绕WPF开发模式、WPF团队协作和MVVM框架三个议题进行阐述。
具体包括WPF的各个基础概念:
Application、Window、Navigation、Dispatcher:这里强调一个应用程序的基本组成部分,也就是说它是每一个项目都会遇到的概念!
框架结构及类继承结构:没有一个宏观的认识作为灯塔,是一件很危险的事情,尤其在做深入研究的时候!
XAML基础:作为WPF的主打概念,它似乎起着不可估量的作用,这也是大家接触WPF的首要概念!
布局基础:每一个应用程序,如果没有良好的布局,似乎是一个不可想象的事情,在WPF中提供了很多布局元素,同时也提供了很多扩展点!
WPF的逻辑树和视觉树:它很有作用,但也很头痛,很多错误不得不归功于它!
依赖属性、路由事件、Binding、命令:核心中的核心,所以我们把它列为重点讲解对象,后面分开阐述!
资源、样式、模板:在很多程度上,它吸取了之前WEB方面的优势,这三个功能在很大程度上提高了复用,同时也规范了项目!
尺寸缩放、定位与变换元素:由于是矢量元素,所以在做各种图形图像操作的时候就比较如鱼得水!
用户控件和自定义控件开发:和WinForm、ASP.NET一样,开发自定义控件也很简单且类似,这里强调控件的多种分类以及区别对待!
多语言、皮肤和主题:开发一个稍微大型的应用程序都会遇到多语言、皮肤和主题,在WPF中做这些元素也非常简单!
2D图形:WPF创建和使用2D图形主要集中在3个重要的数据类型之上——Drawing,Visual,Shape,所以需要分别进行研究!
3D图形:WPF之所以能带来绚丽且强大的3D图形功能,这得归功于DirectX技术,并且提供的接口也非常简单,这也使大量动画应用成为可能!
动画(几种动画的应用):动画无疑是WPF中最吸引人的特色之一,因为一想到动画大家可能都会提到Flash,WPF的确也使动画变得非常简单!
文档、打印、报表:强调企业使用的一般功能,在WPF中也得到了很好的实现,这也是大量管理应用程序使用WPF的前提!
Win32、WindowsForm以及ActiveX之间的互用性:这里强调与其他技术之间互用的兼容性,当然,在WPF中对这些技术提供了很好的支持!
部署及更新应用程序:和其他客户端技术一样,WPF的部署与自动更新也比较容易,除了传统的三种方法以外,还提供了XBAP的方式,不过已经逐渐被Silverlight所取代。
WPF的开发模式:其他层可以保持不变,针对Presentation提供了MVC模式、MVP模式、MVVM模式。
Silverlight基本、XAML、逻辑树与可视树、依赖属性、路由事件、命令
WPF控件、尺寸缩放、定位与变换元素、使用面板做布局、构建并部署应用程序
资源、数据绑定、样式、模板、多语言、皮肤和主题
2D图形、3D图形、动画、音频、视频、语音和文档
用户控件和自定义控件
Silverlight的模式概要及实例(MVCDemo、MVPDemo、MVVMDemo)
性能优化
一个完整Silverlight项目架构和完整项目
从最开始的WinForm+Remoting和ASP.NET+WebService到WCF再到今天我们用的WebAPI,由于项目对这些知识用得比较多,看的书籍自然也不少。这不,今年年初项目服务层从WCF换成WebAPI+SignalR,就和同事边学边用终于完成了重构。为了继续深入学习和研究,到现在还没看完《ASP.NETMVC4ANDTHEWEBAPI》。
还记得三年多以前在公司做的一次内训《WCF剖析及深入应用》,也正是基于自己从Remoting&WebService==》WCF的使用经验以及书籍的归纳总结。
但主要有三本对我影响较大:
WinForm和ASP.NET方面的书籍:对于这两种技术,自己接触最久且使用最多。期间也看了不少的书籍,但看过之后没有留下什么大的印象,大多是为了应付项目需要或者当时经验很浅,没有细心去总结,对此现在感觉甚是遗憾。
面试的书籍:其实我个人不太喜欢成功学方面的书籍,但面试的书籍却看了几本,原因很简单:因为可以从别人的面试中学习到经验和教训,同时也可以看看自己有哪些方面有待改进或者提高……
当然,在这些年中,我也先后看了一些其他的一些非技术英文书籍,其中包括技术、管理和小说等,由于不属于本篇范畴之内,所以这里就不再详细罗列,免得跑题越跑越远!
最后,我个人的经验是“书籍不至于多,而在于精!”——首先选择一本自己感兴趣或者工作中要用到的技术,然后认认真真读完它,你会发现自己除了收获了鱼之外,也自然而然的学会了如何捕鱼!
关于电子书,我自己从2005年开始陆陆续续收集了几百本,内容涉及也比较的广泛,最主要是根据当时的兴趣,学习和工作的需要而下载的。
之前在国内没有意识到正版与盗版的重要性,直到来到新加坡后才逐渐改变这个习惯,在此深表惭愧!
另外,我使用的电子书下载网站很多,前些年收集了很多网站,到后来就从固定的一两个站点下载。现在看电子书越来越少了,究其原因,主要有以下几个考虑:
自己也在写书,所以也逐渐意识到使用盗版是不对的。为了尊重作者,如果有资金,我还是更愿意买正版的。
现在公司书籍很多且新加坡图书馆也比较方便。
所以相对于电子书而言,我越来越青睐纸质书。
既然前面说到了电子书下载的问题,那么我这里就介绍两个比较实用的给大家:
FreeComputerBooks是一个比较齐全的计算机方面的电子书网站
优点:里面的书籍分类非常的清晰明了,而且不用注册就能免费下载,你也可以通过网站的搜索功能进行查找你需要的书。
有待改进的地方:里面的电子书还是太少,很多时候不能找到自己所需要的书籍。
优点:里面的书籍非常的多,基本上包括了计算机学科的方方面面并且下载也非常的方便简单,另外搜索功能也比较实用。
有待改进的地方:分类不够详细,排序功能欠缺。
最后我也放上一些公认比较好的电子书(基本涵盖了操作系统、数据库、编译原理、数据结构,算法,具体语言编程以及程序猿工作效率,管理等)。其中有些书自己以前读过,有些书看了一些或者正在读,有些书还未读且想读。