找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 3292|回复: 8

[【计算机类】] [转]计算机科学与技术部分图书书评

[复制链接]
发表于 2005-4-6 10:16:03 | 显示全部楼层 |阅读模式
这些文摘是我在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的先驱者之一,又因为不吝啬笔墨,所以很多问题都讲解得极其透彻、易懂。此书配套光盘含有电子版的全书。这套电子版制作得非常精良,从中也可以看出作者对书的态度,真是精益求精。
虽然只读了1/5,但是已经感到获益匪浅。有机会,我一定要把它读完!我的印象中软件工程的书籍基本上都是大部头的,这个领域的确包
罗万象,很久以前曾经翻过一本软件工程e文的书,觉得实在是难,没办法读下去,可能当时的水平没到,无法领悟精髓啊,sigh,编译,
软件工程和人工智能都应该好好学习,可惜我都错过:(,

这本OOSC应该算得上是OO的Bible了。俺也推荐一本比较有代表性的《Design Patterns: Elements of Reusable Object-Oriented Software》Erich Gamma,et al这本书并不厚实,所以难得称之为Bible,但却被认为是90年代最重要的软件著作之一。本书的四位作者均为面向对象领域的专家。他们用自己在面向对象领域的经验,记录整理了在面向设计中的Models以供后来者参阅,交流。这本书可以带你到OO专家的肩膀上。
这本书目前国内有影印版和中译本,影印版制作比较袖珍,可以随时放在包里,没事儿的时候看上几眼。中译本的翻译也没有什么疏漏。另外,这本书的电子版CD也不错。HTML的版本,可以在不同模式之间Hyper-Link,参考起来要比纸版方便。
真的希望每一个学CS的,搞软件的都能读一读这本书。这本书强烈要求没学过OO,没写过程序的不要看

//网络部分
really good article.
I also would like to recommend some good books on networking.Besides the famous book 《computer Networks》By “Andrew Tanenbaum”, The Book 《comPuter Networks: A Systems Approach》By“ Bruce Davie, Larry Peterson, David ClarK” is also highly recommended.
The book by Tanenbaum illustrates the computer network from a \"classical\" view -- layering and focuses on the architecture consideration and protocol design in the computer network.

The book by Davie et al, on the other hand, shows not only how networks work but also why networks were design as they wer
e, such as end-to-end argument...It also covers many new results in the computing networks in recent years, such as RED, which can be regarded as the first step to active queue management.So I think this book is especially suitable for begining researchers in the network area.
Also, for advanced researchers in networking, they may wish to read the books by “Dimitri Bertsekas”, which provide the fundemental knowledge as well as pratical approaches for communication network design/control/optmization.btw, the book《Computer Architecture: A Quantitative Approach》, by “John Hennessy and David Patterson” is indeed an excellent book. Both authors have worked on the great idea in computer architecture--RISC.


//体系结构
系统结构方向不能不提的另两本书是:“D.Culler”等的一本书和徐志伟、黄凯的一本书。前者影印、翻译版都有,李晓明等译,翻译得比较流畅、准确。我已通读其中的10章,另2章以后有时间会再读。直接读该书影印版遇到的困难会相当大,因为其写作风格口语话,但选词绝对准确,只是国内对相应词汇的用法可能不熟悉。对照阅读对提高专业英语水平极有帮助!我就是主要读影印版,必要时查阅译版,因为译版处理得好,标有原书页码,非常方便查找。该书最大的特点是本着体系结构融合的角度品评各种经典结构和技术的。这符合并倡导了该领域的发展方向。想作体系结构方向研究的人不看该书的话将来在圈内会感到落后的。后一本徐志伟等的书《可扩展并行计算》属于比较简单的那种,之所以提到它的原因是它对相应技术的内容总结叙述得比较好。直接读影印版即可,基本不必要读译版。从该书内容来看,主要由徐志伟所写。因此不必有\"黄凯综合症\"。由于该书总体来书属于简单那种,因此读过以后就可以当工具书来查了。
至于其他领域的好书,我目前没有太多的空闲时间,以后再向大家推荐。
回复

使用道具 举报

发表于 2005-4-6 10:24:54 | 显示全部楼层
嗯,的确不错,还有一个北理的那一篇反思也是很不错的计算机类书籍介绍加书评,谢谢mongehover朋友的推荐。
回复

使用道具 举报

发表于 2005-4-6 11:23:29 | 显示全部楼层
mongehover和noame 对计算机的书籍有研究。
谢谢推荐。
回复

使用道具 举报

发表于 2005-4-6 20:17:37 | 显示全部楼层
国家计算机考试分若干等级,楼主应说明所推荐书籍适合哪些等级,在我看来,决不适合初学者
回复

使用道具 举报

发表于 2005-4-6 20:43:35 | 显示全部楼层
下面是引用coolsila于2005-04-06 20:17发表的:
国家计算机考试分若干等级,楼主应说明所推荐书籍适合哪些等级,在我看来,决不适合初学者

使
回复

使用道具 举报

发表于 2005-4-6 20:55:09 | 显示全部楼层
如果你对操作系统原理很好奇,想一探究竟,推荐你必读的几本书,记住不要在汤子赢的书上浪费精力,看过以下的书,就知道什么是水平上的差距了

什么内存管理、进程管理、作业管理,我宁愿去看管理类书籍也不想再看操作系统原理了
回复

使用道具 举报

发表于 2005-4-7 20:29:25 | 显示全部楼层
这两天实在叫人晕,现在才上来一次,实在惭愧而又ft,让benysu兄辛苦了,我也来灌灌水发泄好了。(咬文嚼字一番)
融融mm提到“研究”二字实在过誉了。呵呵,coolsila兄原来这么讨厌操作系统呀,嘿嘿,我倒是觉得这个比较好玩呀。汤的书由于是国内的部分学校考研的指定书目而且较国内的其他相关书籍可能稍好一点,所以提得较多,对于系统的研究国内的水平当然是不能和国外相提并论的这也是事实。所以我觉得mongehover朋友这个转贴的推荐的确不错,他推荐的书的确是真正的经典,当然有些我的感觉也不是太强烈,估计是没看懂。(因此经典的定义也是别人说的,我翻了一点后的感觉而已

融融mm说得很对,这些书的确不太适合初学者,至少向我这样的初学者是这种感觉,所以我也是从其他的书入手的。建议其他初学朋友也从其他的书开始,对于一个系统的了解我觉得理论和实际应该并重,首先了解大致的原理,然后在实际中去感受,由于现在的操作系统的复杂性所以后面一个环节其实做起来比较难,我当时就是觉得很困惑的,因此如果有一定基础的朋友我建议从《windows操作系统原理》看起,当然希望不要有朋友说晕,说晕也是正常的,但是由于是确实正在使用的东东,所以比较的好联系,而不是比较空泛的内存管理,作业管理的概念。比如对线程的理解我觉得还是从这本书上来的好,当然我想其他的朋友从其他的书中也能了解的。其实这本书给我的感觉是什么都提了一点又都好像不是太深入,要深入就要看更加专题的文章了,但是这类东东又比较封闭。所以相对而言linux就开放的很多,由于是开源又有《莱昂氏源代码分析》(虽然是unix)和《linux内核情景分析》这样深入分析的好书的存在,所以我觉得对于系统感兴趣的朋友,更多的去了解linux一定是有很大帮助的。

最后谈一些我对于等级考试的看法,这个只能说是适合于国情的产物,对于其真正的参考价值而言,我想懂行的老板都清楚,等级最高的四级,给我的感觉和一般高校计算机考研的题目难度差不多,而上机似乎和初级程序员差不多,所以实际意义不大。真正可以考一考的倒是高级程序员,系统分析员的题目感觉有点变态(呵呵,更有可能是自己菜)对于还有一些知名的认证,我觉得看是你从什么方面来考虑你的需要了,呵呵,这也是我喜欢《java夜未眠》的原因,里面的那个侃真叫爽,……,不知不觉灌了不少了,这一篇先放着吧,再还一篇灌灌,有兴趣的朋友一起来灌呀。
回复

使用道具 举报

jacksting 该用户已被删除
发表于 2005-4-7 20:30:37 | 显示全部楼层
唉,IT风光不再。
国内企业只知道榨取,怎么不知道边补充边榨取来得长久呢。
回复

使用道具 举报

丁克难 该用户已被删除
发表于 2005-5-4 09:25:06 | 显示全部楼层
繁杂的门类和较高的门槛!我想楼主已经可以列入大牛的行列了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-4-28 01:31 , Processed in 0.423272 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表