计算机科学与技术部分图书书评
------------------------------------------------------------------------------------
http://www.zahui.com/html/13/27307.htm
------------------------------------------------------------------------------------
[本页面推荐在1024x768分辩率下浏览] 文章类别:其他 |
网站目录: 网站首页 —> 其他 |
转载自:www.csdn.net
这些文摘是我在2003年逛BBS上摘得的。感觉很好,一直没有机会传上来。这是工大计算机版的文章,不知哪些高校的BBS上还有这种专业水准得书评,指导人学习。 第一是OS部分: “今天闲来无事,整理了一下我的书籍,发现买的书虽多,但真正完全读过一边的很少,不尽痛恨自己,暴殄天物,愧对这么多大师不说也对不起我可怜的money呀,:(。于是乎想起自己在本科时代的那段浑浑噩噩的时光,那时候倒是也想读书,读好书,但是不知道什么书好,什么书该读,什么不该读。我想现在的不少同学也可能有一样的感觉,于是我觉得把我这几年来读过的书推荐一下,还是很有必要的,希望学弟学妹们能够充分利用时间,把自己培养的棒棒的:-) ok,闲话少说,let's begin……… 1) 操作系统方面: 如果你对操作系统原理很好奇,想一探究竟,推荐你必读的几本书,记住不要在汤子赢的书上浪费精力,看过以下的书,就知道什么是水平上的差距了:) “Abraham Silberschatz”的两本书: 1. 《实用操作系统概念(影印版)》高教出版社 2. 《操作系统概念(第六版影印版)》高教出版社 这个作者的level是顶尖级的,来自贝尔实验室,是目前世界上操作系统方面的领军人物,我个人认为比坦尼伯姆要强,虽然坦也很强:),这两本书第二本和第一本很多地方相似,区别在于第二本理论偏重一些,第一本实例讨论的更多一些。这两本书别看很厚,但是写的非常流畅,属于比较易读的一类。 3.《现代操作系统》---“坦尼伯姆”,这本书我没完整看过,只是大略的翻过,是第4本书的升级版,里面添加了一些新的操作系统方面的讨论,原理部分比第四本稍有增强。个人认为,是除了前面两本之外的最好的书。 4.《操作系统-设计与实现》---这个比较有名了,主要是分析minix源代码的书,顺带着讲了下原理,应该说是偏于实践的,可能当年的linus的教材就是这本,影响较大,可以帮助你了解一个文件系统或系统调用之类是如何实现的。当然,和目前的操作系统来讲,稍简单了一些。想做linux kernel hacker的同学此书可以一读。 5.《操作系统:现代观点(第二版试验更新版)》 Operating Systems: A design-Oriented Approach 这两本一般,但是还是比国内抄袭的教材强很多,可以作为补充阅读的书籍。 6.与特定操作系统相关的书: 《understanding linux kernel》:千万别买中文版,那叫一个烂 《linux internal》:这两本我都有电子版,是打印出来看的:( 《linux内核情景分析》:这三本是最nb的linux内核分析书籍,前两本讲2.2内核,第三本讲2.4,好是好,就是钱遭罪,赫赫,要100多块吧。 《4.4BSD操作系统设计与实现》:不说少了,原来berkeley那帮写bsd的其中几个人写的,经典就是它了,前几年我恨不得直接花$去amazon买了:(,不过这几年国内出版业发展真快,原来很多梦寐以求的书,现在都摆上书架了,haha,很有成就感呢~~~ 《unix操作系统设计》:古老的unix设计方面的书籍,应该说这本书在unix世界里面的影响是十分巨大的,很多后来的unix分枝,思想都是缘于此书。里面主要讲解unix各个部分实现时所用的算法,其中一些目前还在使用中。想了解一下unix实现但又没什么时间扣minix或linux内核的朋友可以看看,在这本书上花费几十个小时,绝对超值:) //体系结构部分 2) 计算机系统结构: 我是搞体系结构的,所以对这方面还是比较了解,不免又要批判一下国内的书籍了,李学干的书,我怎么看都像是上古作品,讨论的东西基本上是80年代以前的玩意儿,看了也是白看,它里面介绍的东西,基本上我们是没有可能遇到的。除非你去计算机历史博物馆。清华的郑伟民有两本书,一厚一薄,都叫计算机体系结构,薄的讲的太浅,反正我看完了还是不清楚体系结构是干啥的,做什么用处。厚的我没全看完,但是感觉和李学干的书一样,不少都是copy黄凯的那本高级计算机体系结构,至少我就看见过一张一莫一样的图。讲道这里,不免要推荐一下唐老师的计算机组成原理,(虽然不能是体系结构),这本书相当好,我想这和唐老师严谨认真的治学作风十分不开的,计算机组成原理的书,别的都不用读了,我还没见过比这本更好的。 国外体系方面的书: 1. “hennessy”和“patternson”的《 计算机硬软接口 》和《 计算机量化研究方法 》:作者一个是斯坦福的校长,一个是伯克里的资深教授,体系方面最牛会议的审稿人。这两本书可谓是千锤百炼,绝世好书,呵呵。我都推荐给进入体系实验室的师弟师妹们。硬软接口里面讲 的是简单的处理器体系结构,最难得地方也只讲到流水线,本科水平阅读应该没有问题。它与国内的书不同,并不是从理论方面泛泛而谈,而是针对某个问题,深入讨论,不弄个水落石出决不罢休,这点使得读起来非常过瘾。第二本量化研究方法比较难读,不仅仅是因为英文写的有点晦涩(相对于硬软接口),而且讨论的东西也是最先进的,新接触这一领域的读者比较难于理解,这本书基本上涵盖了2000年以前的微处理器体系结构方面的先进技术,如果你想了解2000年左右微处理器体系结构已经发展到什么程度,可以从这本书读起,它以前的书可以不用读。对了,忘了说明,这两本书都是主要讨论微处理器体系结构的,呵呵,这也是它们的新颖之处,我个人也觉得现在还大讲特将什么向量机有点不合时宜。强烈推荐,看完整两本书,你就会知道处理器到底是如何工作的。另外,千万别买这本书的翻译版,看着闹心,翻译的往往和原意差出好几百里地,浪费时间不说,也对身心健康不好哦 2. “William stalling”的《计算机体系结构-性能设计》:由于看了前两本书,所以这本就不太起眼了。想比较而言,这本书讨论的问题太过于表面化,缺乏对问题的深入剖析,看完之后没有那种刺破肉皮见骨头的快感。不过我觉得这也很正常,因为william stalling只是个科技作家(别看china-pub上好像对他的吹捧好像是个神,其实他也是人),他和前两位世界级的教授根本不在一个数量级上。不过老威倒是也真够狠,什么都写,os阿,网络阿,体系阿,看着比坦尼伯姆还nb。看过这本书之后,我发誓再也不看他的书了。这本书当作科普读物可以,了解一下体系结构。 3. “黄凯”的《高等计算机系统结构》:这本书影响非常大,国内的凡是体系结构的书,基本上很多都是copy这本的。但是,我不得不说,他太老了,老的已经不再适合做体系的教材了。计算机技术发展多么迅速阿,这个10几年前的东西现在怎么应用啊? 里面讲的机器估计以后没人能见到,呵呵,说到这里不得不向大牛cray致敬(虽然大师已经挂了),他的cray机真是太牛了,不让ibm专美与前啊。Sorry,扯远了,这本书如同鸡肋,弃之可惜(毕竟是好书),但食之无味。喜欢跳出微处理器的圈子,试图俯瞰一下计算机体系结构各个领域在1990年以前是什么情况的同志可以look through一下。 4. “坦尼伯母”的《结构化计算机组成》:这本书不是专讲体系结构的,它连从c程序,到编译,汇编,连接加上硬软接口ISA和处理器内部实现统统讲到。一气贯通,让你了解这个程序是咋在处理器上刺溜刺溜跑起来的,对大家对于计算机系统的宏观认识非常有帮助。 //编译原理部分 3)编译原理: 编译这块我了解不多,应该说不怎么了解,我甚至还打算从头学一边编译原理:(,不过这方面的好书我可是注意好久了:现在隆重推荐: 1) 《编译原理:技术与工具》:作者之一就是“lalala, ullman”,我记得是计算机界目前论文被应用最多的一个活人(fix me),他在编译和数据库方面地位很高,这方面我估计李建中老师的门下弟子比我知道的多多了,我就不说了。这本书据说是讲解经典编译原理的宝典,也被称为"龙书"。想学编译?ok,别的书先抛在一边,把这本先读了再说。但是要提醒一下,目前的编译器基本上和体系结合的很紧密了,有的编译器甚至连程序运行时功耗都考虑进去了,所以,要想一窥现在编译器内部构造,光看这本就不够了 2) 《Optimizing Compilers for Modern Architectures: A Dependence-based Approach》 这本书能弥补第一本的不足,讲的都是如何让编译器利用体系结构方面的技术。不过,国内没有出版,不过,别灰心,呵呵,我这里有电子版。如果实在感兴趣,看看编译器是如何根据体系结构进行优化的,可以打印出来读。Ok, 累死我了,先推到这里把,对了,希望在别的领域很有研究的同学也推荐些书,让我们知识共享,经验共享,共同进步,共同提高。 //数据库的 我可以补充一些数据库的: 外国的 首推“ Ullman”老大写的 《数据库系统实现 》 ,这本书看完了,才算知道了数据库是啥。写的比较前沿,关系数据库的实现很完整,可以照着自己写一个小数据库也有一些信息集成的东西,中文翻译的一般。 “date”的《数据库系统导论》写的也不错了,就是东西太多,哪种讲的都不是很深但是很好懂,可以做手册和普及读物。 “stonebreaker”的《reading in database system》是进行数据库研究必须要看的基本上包括了数据库领域的经典论文,范围也很广,包括OO,并行,分布式数据库,决策知识等等前沿,也有codd提出关系模型的经典论文,缺点是都是正规的学术论文,很难懂。 《data mining》,“韩家威”写的,由于他是学e文出身的中国人,因此英文写的很适合中国人看,从某种程度来说,比峰哥翻译的汉语还好懂,而且这本书也很前沿90年代末的数据挖掘最火热的年代的主流算法都有,但是有些算法写的不够详细理解理论很好,照着实现很难。 《数据仓库》,数据仓库的提出者“Inmon”写的,这本书更加适合研究信息系统的人看。对于设计写的很多,对于实现写的不够详细。 选书的时候,有的时候看作者就可以了,响当当的作者就好比一个著名的品牌,有很好的信誉度 Richard Stevens、Andrew Tanenbaum、Frederick Brooks,Jr、Bjarne Stroustrup、Matrin Fowler、Kent Beck、 Ullman好像写过一本非常不错的数据结构的书不过可惜国内还看不到 咱们系用的形式语言教材《An Introduction to Automata Theory, Language and Computation》也是Ullman的大作。也是一本好书,可以正式出版的第二版中删节了不少内容。 “aho&Ullman”《algorithm and data structure》这本书是不错,现在可以用《算法导论》取代了 //C++的 其实感觉《The C++ Programming Language》很不错,广泛而深入。 Lippman的 C++ Primer只翻了一翻,不过明显要比TCPL浅一个层次,但还一本不错的书关于标准库,The C++ Standard Library是一本不错的参考,有电子版和中文翻译。 底层实现的,Stroustrup94年写的Design and Evolution of C++不错,虽然内容并不是C++98的标准,但是里面却折射出Stroustrup在语言设计中的取舍的思想。 要想玩点智力游戏,看看Alex的Modern C++ Design,Loki写的太聪明了。 Stroustrup组织编写的C++ Indepth系列丛书,每本都很不错。 前几天我上传到241的C++ Network Programming V1 & V2的内容就是很不错。 作者名字太长,没记住,不过那本书的参考文献从System Architecture到OS,到Protocols,再到Patterns and Framework,看样子作者十分有功力:) //OO的书 推荐一本OO的书吧《Object-Oriented Software Construction (Second Edition),》Meyer著 软件工程大热,被奉为经典的书不胜枚举,炒作异常。想必主流的东西大家也都知道是什么了。这本书很少能见到推荐他的,甚至连书评都很难见到。究其原因,一可能是作者每到泰山北斗的名气,二就怕是因为它的篇幅了--正文1188页。如此厚重的书,能读完的人都不多。影印版国内出版了好久,而且有两个版本。中文版没有,几乎不可能有。 我读此书的感觉是,作者懂得太多、读过太多,什么都想告诉读者。同样一个问题,在书的不同位置都会涉及到,于是作者都会讲上两句(絮叨),难得的是每次讲得语言还都不太一样。粗浅的说完之后,会语重心长地告诉你,哪些书讲这个讲得特别好,一定要去看。每章之后都列出来bibliographical notes,里面对相关书籍的简短评论都很精彩。总结出的Key Concepts简直可以当作名言警句背下来(书里确实有很多非常漂亮的句子,都快成我的口头禅了)。虽然可以作为读书、学习指导,但这本书当然不是一个书目,它自身仍然是出色的。作者也是OO的先驱者之一,又因为不吝啬笔墨,所以很多问题都讲解得极其透彻、易懂。此书配?/span> |