学习计算机的好书书单

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最近一年,多读技术书籍。每有经典著作,买之、藏之、读之、研究之,受益颇深。况置身于一日千变的IT 行业,不读书,便有落后之感,而终日读书于诚惶诚恐之间。从开发语言平台(C/C++、Java系列)、OO思想、设计模式、UML、软件过程(敏捷开发等),到算法、数据结构、软件体系架构,不同层次、不同层面

的书都有涉及,初略统计,购书竟达¥1000以上。

经常被人问及该读何书、从何入门、如何深究,因此给出这个Book Lists。list中的书基本都是我所读过,

并以为经典,当作我的一个读书总结,也可作为大家学习之参考。

我的学习历程还在行进,我的读书之路也在继续,因此这个book lists也在【持续更新中.....................】

——题记

k_eckel's book lists

【语言和平台】

【C/C++】

[1]《C陷阱与缺陷》,Andrew Koenig,高巍译,人民邮电出版社:如果让我推荐一本关于C深入学习和研

究的书,那一定会是《C陷阱与缺陷》。第一看这100多个Page的书,感觉不过如此(少年轻狂:)),第二次看是自己做了一个编译器后,带来就是震撼,再一次看的时候就是恐惧——Andrew Koenig的这本书出

版14年来,在全世界内重印了18次,并且从第3次后就一个字都没有改变!如果你想知道编译过程对程序

设计的影响,如果你想检验自己对底层的把握力度,强烈建议你读读这本书。

[2]《C++编程思想》(第二版),Bruce Eckel,机械工业出版社:Bruce Eckel的《Thinking in C++》和Stanley B.Lippman的《C++ Primer》是C++从新手到进阶的必备书籍,当然个人认为两本中取一本研读即可。我选择的是《Thinking in C++》,原因是觉得《C++ Primer》实在是太厚了(:)实际上绝对全面,我后来

还是在不少地方要参考Lipman的书)。《Thinking In ×××》风格甚至是书名都成为了Bruce的“专利”,后来

的《Java编程思想》(第二版,目前已经有了英文的第三版),以及《Thinking In C#》(目前还没有中文版,并且该书是和Larry O'Brien合作。),都是经典中的经典,强烈推荐阅读。

[3]《Effective C++中文版》(2nd Edition),Scott Meyers,候捷译,华中科技大学出版社:对于这本书,

我认为任何想把C++学好,想用C++做项目开发的都应该好好研读本书。孟岩在该书的印介中如是说:“曾经

在网络讨论组中间看到这样的说法,C++程序员可以分成两类,读过Effective C++的和没读过的。”个人认为,《Effective C++》将面向对象的思想和原则与软件设计、C++开发很好地结合在一起,达到了一种完美统一的境界:你在学习C++技术(以原则条款的方式给出)的同时,OO思想得到了升华和提高。纯粹的OO思想的学习会略显得枯燥和无味,但是以为使用、掌握了一门用于面向对象系统开发语言便以为懂得了OO的开发

与设计(OO的精华)则会显得多么的无知和轻浮。如果大家想真正体验OO设计开发、享受C++的强大与精髓,请读《Effective C++》。

[4]《More Effective C++中文版》,Scott Meyers,候捷译,中国电力出版社:《Effective C++》的完美续集。

[5]《C++沉思录》,Andrew Koenig & Barbara Moo,黄晓春译,人民邮电出版社:这本书的英文名字叫:Ruminations on C++:A Dacade of Programming Insight and Experience,十年程序设计的真知灼见。Andrew Koenig夫妇是世界上著名的C++大师级人物,并且他们也堪称C++领域的“第一神仙眷属”,看看他们在AT&T曾经做过的事情,你就没有办法不去承认这样的书名实在是实至名归,用起来也当之无愧。而Barbara Moo则更是C++领域的女中豪杰。读这本书实在是和无意中的机缘巧合读了Andrew的《C Traps and Pitfalls》,感叹崇拜之余,则买了这本《C++ 沉思录》,该书的特点一是适合学习(教学型的讲解方式),而是适合练习(书中给出了很多的实际的例子进行分析和讲授,甚至包括一个简单的string的库),怪不得C++之父Bjarne Stroustrup如是推荐:对于C++是什么样的以及能够作些什么,他们的先见之明在这本

书中随处可见。他们另外一本书《Accelerate C++》也是C++学习中的经典。

[6]《C++程序设计语言》(特别版),Bjarne Stroustrup,机械工业出版社:如果您在学习或使用C++语言,但是没有上过Bjarne Stroustrup的网站,建议您登录:/~bs/homepage.html。让

我记忆最为深刻的不是Bjarne Stroustrup有型的照片(工作),而是照片下的第4行话:I designed and implemented the C++ programming language.因为这句话世界上就Bjarne Stroustrup有资格如是说。之

于Bjarne Stroustrup本人不劳我多言,之于这本书,大家都知道Bjarne Stroustrup的风格就是有些教条化,

别人也称之为“学院派”,可能读起来比较不是那么上口,我个人也就是有一本e文的影印版本,实话说也没有

真正系统读完过,但是有时候还是在里面查阅了不少知识。不推荐作为入门的书籍,但是建议收藏,至少也是对Bjarne Stroustrup这位给我们带来C++语言的大师的敬畏和敬意。

[7]《深度探索C++面向对象模型》,Stanley B.Lippman,候捷译,华中科技大学出版社:对于Stanley

B.Lippman本应该好好介绍他的另外两本更加知名、流传也更加广泛的书《C++ Primer》和

《EssentialC++》,这两本书(特别是后者)都是C++入门的好书,当然前者也是C++进阶、研习的最好书

籍之一。无奈前者我没有买过,只是在学习和开发中参考、查阅过(电子版本倒是有收藏),而后者则只是初略看过一遍,不好妄加评论。而这本《深度探索C++面向对象模型》我则收藏了,原因有二:一是我对底层

实现比较感兴趣,二是冲着Lipmman的大名,而我自己也在实现一个比C++简单很多的一种学习语言的编译

器(一些介绍:/blog/k_eckel/category/384.html)。在《深度》中,Lippman就

自己当年在AT&T实现CFront编译器的实际经验总结、分析了C++的对象组织模型、函数模型,C++中多态

的实现机制(virtual table的组织)等。这是一本研究的书籍,如果你对C++的使用已经比较自信,但是对底

层实现很感兴趣,这本书则正是你梦寐以求的经典。Stanley B.Lippman的个人主页:

/slip。我也发现一般大师的主页都很简约、简洁,无论是Knuth,还是诸如Bruce Eckel、Bjarne Stroustrup还是这里的Lippman都一样。大家对Lippman的最近的印象应该比较的熟悉,Lippman现在是Microsoft C++/CLI的总架构师,专门负责将传统C++移植到.Net平台上,前一段时间因为需

要曾经花了一段时间研习过C++/CLI,个人觉得虽然比起丑陋的Managed C++,C++/CLI要elegant不少,

但是给Managed C++善后却不是那么的容易,给Lippman +U,也期望C++/CLI走好!

[8]《C++程序设计教程》,钱能,清华大学出版社:之所以这里列出钱能老师《C++程序设计教程》主要是因为个人认为在国内写C++方面的书中就钱老师的书最有份量,我姑且不敢将钱老师的书和上面提到的大师们

的经典比较,但是在国内这样一个浮躁的环境中,钱老师的书也确实给了我不少的希望和期望。大家可能也注意到了,国外大师们的书上都是著名×××著,而国内大部分则是×××编著,不读研不知道编与著的区别,现在

才知道编和著真的可以说是差之毫厘、谬以千里。《C++程序设计教程》实在可以作为C到C++学习的一个

预科读物,推荐大家想学C++但是基础不是很好的研读之。

【Windows程序设计/VC/MFC】

[1]《WINDOWS程序设计》(上、下),Charles Petzold,清华大学出版社:这本书是Windows编程领域

的“圣经”,无法描述其在Windows程序设计领域的影响和功效。而Charles Petzold则是作为仅有的七个人

之一(并且是唯一的作家)被《Window Magazine》和Microsoft公司授予Windows Pioneer奖,以表彰他

对 Microsoft Windows的成功做出的贡献。之于这本书遗憾有二,一是价格不菲(上下两册一共160RMB,

就算打个八折也还是......),二也是最重要的,现在业界实在是比较浮躁,于是我们也跟着要浮躁,很少有人

能够真正静下心来去研习诸如windows程序设计的基本知识,去在没有VC生成的一大堆的MFC垃圾代码的

情况下就写写windows程序了。企业和公司要求的就是一堆的会拖拉点击的熟练的操作人员,他们需要的是

能够立即能够带来商业利益的代码工人,尽管他们也说要求技术功底的深厚。绝大多数的VC程序员都是在完

全没有过windows程序设计经验就去被教着使用MFC进行桌面系统的开发。Java、.Net需要我们学习和熟

悉的地方太多了,以至于我们无法安静下来好好去把内功练到本该具备的级别就要上战场冲锋陷阵了。实际上我也是这般,虽然我看了这本书的绝大部分的内容,也用记事本写了一些简单的windows程序,从WINMAIN 写起,注册窗口、创建、显示、消息循环,然后WinProc的实现,但是我也没有胆量说我对windows程序设

计已可以和像使用C++/Java那样熟练。实际上可能是否要在学习使用VC等之前一定要把windows程序设计非常深入的观点也值得商榷,个人看法是:熟悉windows编程,机制、过程,做一些简单的练习,然后在基

于MFC开发过程中对出现的问题在去参考这方面的资料,再去解决相关的问题(可能要用到windows程序设

相关文档
最新文档