(作者doggyzone是一位淡泊名利的大好人,估计不太愿意主动把这篇帖子转到来。我就越俎代庖了。)
近日在网上看了不少帖子,感到我们的计算机图书市场还真是发生了很大的变化。刚开坛的时候,看到关于图书最多的抱怨是“好书太少”,后来就变成了“烂书太多”,而后是“翻译太烂”,而最近最为热门的论调则莫过于“书价太贵”。可以说是因为无聊,或者是因为确实想搞清楚自己到底在书上画了多少钱,笔者整理了一下自己的书柜。下面是笔者整理的结果和一些零零碎碎的感想:注1:所注的页数都仅仅是把最后一页的页码取了个整数,与实际的页数是有差距的,印张才具有说服力。注2:中括号外的数字代表元/印张,这是一个可资比较的数字。注3:所列书籍仅限于目前在我手中的,放在老家的不少DOS编程、Apple II甚至R1的书都不算,我也记不得自己买过多少书了,而且毕竟那个时代书价和现在不具有可比性。
[书名:C语言大全,电子工业出版社,Herbert Schildt,郭兴社等编译,1990.6.第一版1993.3.第六刷,印张:24.625,32开,770页,定价:12.35,购买价:原价,购买地:青岛市新华书店]0.5感想:这是我中学时代买的为数不多的几本非Apple的书之一。在当时,这是一本“高价”书了,虽然现在看来实在是便宜。那时的计算机书,绝大多数都是电子工业出版社出的。那时书的种类很少,所以一本好书会在相当长的时间里常盛不衰。看看这本书三年六刷的骄人成绩(版权页上的记录是第六刷71300-81400册),再看看我们今天大多数的书,一版一刷之后就销声匿迹,我们该作何感想?这本书本身有些争议,有人认为这本书内容太杂,从语言本身到数据结构、DOS中断、汇编借口、软件工程,简直是无所不包,反而显得重点不突出。但也有人认为这本书的价值就在“全”,是一本名副其实的参考书。就我个人而言,这本书在我学习C语言的初期给了我不少帮助,但在之后,过于芜杂的风格也让我失去了进一步深入的兴趣。现在这本书的第四版早已面世。我个人觉得,如果你感觉K&R的书过于乏味的话,这本书倒是一个不错的入门之选,对一些一般的应用也有不错的参考价值。推荐度(第四版):[][][][
[书名:Windows图形编程,机械工业出版社,袁枫,英宇工作室译,2002.4.第一版第一刷,印张:50.25,16开,790页,带1CD,定价:88,购买价:8折,购买地:上海五角场图书市场角荣书店]1.75感想:这是我今年最大的收获!这本书的价值之高,我只能用“图形编程界的Charles Petzold之书”来形容。这本书事无巨细的风格、深入浅出的讲解,较之Petzold有过之而无不及。而前四章深挖系统原理的作派,又像足了Jeff Richter。作为开发Windows平台下二维图形应用的程序员,案头应当必备这本书。由于CG属于程序开发中一个比较偏的领域,这本书的影响还很有限。我希望写一个书评来大力推介一下,但一直没有找到一个好的切入点。写好书难,写好书评何尝不是?这本书折合每印张的价格,与《深入浅出MFC》不相上下,(内容)质量上也各擅胜场。用纸《深入浅出MFC》略佳而装帧此书稍胜。我觉得,在目前的水平下,这两本书体现的是一个相当合理的价格——当然前提是内容要好,烂书再便宜也当不起“合理”二字。推荐度:[][][][][]
[书名:Visual C++6.0高级编程技术——OpenGL篇,中国铁道出版社,费广正 乔林,2000.9.第一版第一刷,印张:28.5,16开,450页,带1CD,定价:55,购买价:8.5折,购买地:北京海淀图书城附近]1.93感想:这本书是我在北京得知自己考研成功之后,半庆祝半为将来准备买的。但这本书让我略有失望。这本书的两位作者显然在OpenGL上下了很多的功夫,书的内容也称得上是翔实。前面几章介绍在MFC框架下整合OpenGL代码的内容对我很有帮助,但也就仅止于此。后面大量的篇幅介绍了几个例子,可能是作者做过的一些项目,但对我而言,这部分内容味同嚼蜡。几十页几十页的源代码,如果不是和自己的应用很接近或者很有价值,谁会有胃口去读?国内作者写的书经常有这样的特点,在我看来是一种“通病”,就是花大量的篇幅介绍自己做的某一个具体程序,却对原理讲解得很少。连带的一个问题是连篇累牍的铺陈代码,很少作解释(事实是当代码长到一定程度之后,即使要讲解也变得很困难)。书就是给读者以理论上的指导,实作方面的引导宜适可而止。即使是列印代码,我也喜欢那种“夹叙夹议”的风格。从对我的助益来说,我只能说买到了半本好书。相对它1.93的每印张价格而言,这本书着实不算便宜。推荐度:[][][]
[书名:Windows程序设计(第5版),北京大学出版社,Charles Petzold,博彦科技译,1999.11.第一版2001.3.第二刷,印张:86,16开,1350页,带1CD,定价:160,购买价:8折,购买地:北京海淀图书城附近]1.86感想:如果我没记错的话,这是我买的最贵的一本书了,但是我一点也没有觉得它贵,因为这本书实在是物有所值。我曾经在Windows程序设计的大门之外徘徊长达3年的时间(从Windows 3.2到Windows 98,朝代更迭,不变的是我用C/C++没有写出过一个能运行的程序),原因就是我当初不懂得选书的道理,看了一本很薄的《Windows编程短平快》,以致大倒胃口。那本书只有《程序员》杂志那么厚,里面的文字诘屈骜牙,代码含混不清,我实在无法从中得到什么帮助。《深入浅出MFC》为我摆脱了MFC的困惑(此前我已经在微软ATC培训中了解了一点MFC编程的过程,但总归是云山雾罩),而这本《Programming Windows》彻底让我摆脱了视Windows编程为畏途的窘境。关于这本书,书评已经很多了,我不想拾人牙慧。至于价钱,它的每印张单价在计算机书中也属于偏高的,但是它的价值足以让我坦然掏钱。如果说当初我掏钱的时候是颇费了一番踌躇的话,那今天回忆起来,我的遗憾不过是当初踌躇得实在久了一点。推荐度:[][][][][
[书名:Visual Basic 6 XML专业技术,人民邮电出版社,James Britt/Teun Duynstee,高波等译,2000.12.第一版第一刷,印张:36.5,16开,570页,定价:58,购买价:8折,购买地:上海五角场图书市场京版图书]1.59感想:Wrox刚刚进入内地的时候,颇刮起了一点小旋风,如今观之,则盛名太过。我这个人喜欢各种技术都涉及一点,这是在做上一个Project的时候,为了了解XML买的一本书。老实说,除了内容旧一点以外,这本书还算翔实可靠。对我这个XML完全彻底的门外汉,只是翻了其中的几章,就感觉对XML的基本概念了解了,入门了,说明这本书还是有用的。书中的例子还不错,不配光盘使它的价格便宜了不少。我想如果是英文原版的话,我完全可以给这本书打4星。但是买这本书的时候,我是颇费了一点踌躇的。原因是人民邮电出版社的“大名”,不能不让我心生疑窦。人邮的书,在我个人看来,华而不实的多。我实在是在人邮身上花过一点冤枉钱的。不过拿到书,读过之后,我觉得这本书总的(翻译)质量,还不是太差。词不达意的地方是有的,还好以我的程度,多数不至于造成理解上的困难——至于偏差,我不敢说。真的,如果是人邮翻译的书,通常都会在原书的基础上,给人家减掉半星至一星的。我也做翻译,所以我也很理解译者的苦楚。但这本书的翻译语言,我只能说译者(包括审校)欠了少许用心。没办法,看看印张单价吧,谁让人家便宜呢:)推荐度:[][][][
[书名:Visual Basic 6从入门到精通,电子工业出版社,Evangelos Petroutsos,邱仲潘等译,1999.1.第一版第一刷,印张:52.75,16开,830页,定价:86,购买价:8折,购买地:上海五角场图书市场京版图书]1.63感想:我是一个“学在C++,用在VB”的人,但手头一直没有一本VB的书,写程序靠的是学校选修课听来的一点零碎、MSDN和10年BASIC的底子。但是我很清楚的知道,VB和传统的BASIC已经完全不是一码事了。趁手头有个项目,快快去书市买了这本书回来。我出发前抱定的目的,就是非巨厚的书不买。因为以我的经验,像VB这种“大规模”的工具,非大部头不足以涵盖其各个层次的内容。那些三五百页的书,99%内容是一样的,“边际效益”几乎是0。不过老实说,VB的好书真的很少,《24小时学通XXX》倒是很多。这本书大概是VB书里最厚的之一,由于它的厚度,我选了它;而这本书,也没有让我失望。电工这几年在走下坡路是不争的事实。但它出的“从入门到精通”系列保持了一个相当不错的水准。上大学的时候寝室有同学买了《AutoCAD R 14从入门到精通》,被我们争相传阅,奉为圭臬。那个同学近水楼台,AutoCAD的使用水平确实在班里首屈一指。这系列的书,不以讲解学理为重点,重点放在应用,既可以作为入门教材,又可以作为使用时的参考。想想花两本书的价钱,可以买到一本这么全面的书,其实还是合算的。不过就提高的角度讲,这类书在高阶主题上用力似乎有点不足。唉,这完全是我读者求全责备了。推荐度:[][][][]
[书名:Visual Basic第三方控件大全,中国电力出版社,陈涌泉编著,2002.3.第一版第一刷,印张:30.5,16开,480页,带1CD,定价:48,购买价:8折,购买地:上海五角场图书市场京版图书]1.57感想:如果我是拿破伦,这本书就是我的滑铁卢;如果我是索罗斯,这本书就是我的香港。像这种“大杂烩”式的书,我本来根本就不会去买。可是项目催得紧,我这人又有点过于追求完美的小自负。我需要用到一种UI控件,找遍了网上和光盘没找到,自己写又太花时间,在这本书里却发现了介绍。心想:就当是40块钱买了张正版光盘吧!草草掏钱的结果是买来一堆无用的东西。这本书附带光盘上的控件,其实还是从网上down来的,好多是试用版,作者还算有良心没把crack或者注册码一块放进去。控件的版本不一,甚至有VB 4开发的版本。质量也是良莠不齐,我测试了一些,多数纯粹是业余爱好者应景的玩物,根本达不到工业级的强度,有的甚至把我的系统搞瘫痪掉(大哥,我用的是Win2000耶)。至于那个我需要的控件,也和我想像的颇有差距,不堪大用。最后我还是放弃了花哨的UI念头,老老实实的用PictureBox写了个简单的控件,客户还觉得效果满不错的。而我也在心痛的追悼那牺牲掉的四张十元大钞……电力在计算机出版界是后起之秀,我很喜欢电力的书。但是这一本确实让我吃药。怪谁呢?还是怪自己太鲁莽了吧。推荐度:[][](我在考虑是不是要剃它光头,但是那样太非理性了,两星吧,我觉得比较客观)
[书名:COM原理与应用,清华大学出版社,潘爱民,1999.10.第一版,2001.3.第四刷,印张:29.5,16开,460页,定价:39,购买价:8折,购买地:上海五角场图书市场角荣书店]1.32感想:说老实话这本书我买过之后不曾认真看过,也实在有点看不太懂。买这本书的初衷是为了学DirectX作个铺垫,但我发现要完全深入的掌握COM是一件超出我能力范围的事,对学习DirectX好像帮助也不是太直接,于是浅尝辄止。那天荣耀兄评价这本书“虎头蛇尾”,我虽然没有全部读懂,但也有类似的感觉。第一部分讲COM原理,虽然吃力,但我还有所得,后面就越来越觉得像“内容简介”,很多地方都是一笔带过。即便如此,我还是觉得(也仅仅就是觉得而已),这是国人出的为数不多的一本比较有分量的原创书籍。COM本身就是一种有点晦涩的技术,能讲到这个地步实在已经很不容易了。潘先生大概是把这本书定位在“COM从入门到精通”那个程度,但是篇幅所限,也只能如此。四刷近两万册的印数也说明了读者对这本书的肯定。对COM技术,如果只是像我这样有点好奇的话,潘先生的译著《Visual C++技术内幕》里的那一两章应该够了。Kruglinski还真是不简单,这么复杂的技术,在这么短的篇幅里讲解得比较清楚,佩服佩服。清华的书一向比较便宜,这本书也不是教材,为什么定价还这么低呢?是因为出版社有优惠政策?推荐度:[][][][
[书名:JSP程序设计实务入门,中国铁道出版社,李建国等,2001.6.第一版第一刷,印张:23.75,16开,370页,带1CD,定价:40,购买价:8.5折,购买地:北京中关村]1.68感想:在读书上我属于杂食动物,有时候仅仅是一个名词不懂,也不管有用没用,就会抱一本书回来看,看过之后又束之高阁。我2001年5月开始学Java(老板说我上研究生之后要用Java做项目),7月通过SCJP,然后就去买了这本书,目的仅仅是为了搞明白JSP和ASP、和JavaScript之间到底是什么关系。由于抱这这样的心态,我也就没学到什么东西,所以也不好对这本书的内容作什么评价。不过从这本书我终于弄明白了所谓的Server是一个程序而不是一台机器,也算是没有白买一回:)如果读者都像我这么冲动,出版社可高兴坏了。推荐度:[][][][(凭直觉和印象我觉得这本书还算不错)
[书名:C程序设计语言,机械工业出版社,K&R,徐宝文等译,2001.3.第一版2001.8.第二刷,印张:16.5,16开,250页,定价:28,购买价:7.5折,购买地:上海五角场图书市场角荣书店]1.69感想:一本心仪已久的书,可惜相见恨晚。由于下一阶段我们要做三维图形引擎的研究,我决定重新温习一遍C语言,彻底和C++厘清一下——说来惭愧,我到现在也分不太清楚哪些feature是C++特有的——重新找一找结构化程序设计的感觉。关于这本书,还有什么好说的吗?时间已经证明一切了。这里说两句题外话。排版是一本书的“门面”,可是我感觉很多作者和编辑对排版像是缺乏热情似的。最典型的就是用Times New Roman字体来印程序清单,真是要多难看有多难看。即使不像侯先生那样精益求精到追究每个字的字体大小,把英文字体设成Courier应该不难吧?现在如果我翻开一本计算机书,看到里面的代码用了Times New Roman字体,我会毫不犹豫的把它放回书架上去。推荐度:[][][][][
[书名:OpenGL编程权威指南第三版,中国电力出版社,OpenGL体系评审委员会,吴斌等译,2001.8.第一版第一刷,印张:39.5,16开,620页,定价:69,购买价:8.5折,购买地:北京海淀图书城附近]1.75感想:我觉得,买这本书标志着我自己在购书方面的一个思想的转变。因为从很小的时候起(我8岁学编程,8岁就开始买电脑书了),我就不是一个乱花钱的孩子。这么多年过来,买书无数,回头想想却发现,虽然每次我都是抱着“千万不能花冤枉钱”的想法买书,但最后还是冤枉钱花得比有价值的钱多得多。因为那时候没有人告诉我什么样的书是好书,所以我总是挑看上去比较便宜的:装帧比较差的、页数比较少的、价钱比较低的那种书去买,以为书内容都是差不多的。结果散尽千金,换来的却是满满的遗憾。我当时的另一个想法,是买和具体工具相关的书看,总以为那些讲标准的书没有多少用处。比如,我所有的BASIC书都是Apple II的,几乎所有的C语言书都是Turbo C的各种手册,一开始买的那些C++书,也尽是关于VC的。我以为我从这些书里能学到“实用”的知识,结果却把自己早早的厝于一口枯井中,头顶永远是AppWizard那么大的天空。我的思想具体怎么发生转变的按下不表,总之在我第一次接触OpenGL的时候,我就下决心:一,不再买那些薄薄的三四十块钱的书;二、不再买那些讲解具体例子的书;三、不再买那些依赖具体实现的书。在这三个目标的引导下,我买了这本OpenGL的官方指南。市面上OpenGL的书很少,数来数去也就是这一本和另一本《OpenGL权威宝典》比较厚实。我不喜欢后者的名字,于是选了这一本,也就是常说的“OpenGL红宝书”。这本书内容自不必多言,尤其对我这样有基本CG理论知识的读者来说,读起来经常会发出会心一笑。由于是标准委员会“钦定”,内容的权威性是有保障的。在这本书的目录之前,特别附上了三位译者的姓名、照片和简历,这是我第一次在计算机书里看到译者的简历,新鲜之余也对这本书增加了几份信心。当然,瑕不掩瑜,这本书在通篇质量较高的情况下,也有一些需要改进的地方。比如个别图形学术语的运用就欠准确。虽然有这种种不足,并不妨碍我给这本书一个很高的评价。推荐度:[][][][]
[书名:设计模式,机械工业出版社,GoF,李英军等译,2000.9.第一版,2001.3.第三刷,印张:16.5,16开,260页,定价:35,购买价:8折,购买地:上海五角场图书市场角荣书店]2.12感想:我其实以前不怎么喜欢像DP这么“形而上”的书,因为我觉得自己是一个初学者,在写代码的水平没有得到认可之前,就没有资格研究所谓“系统设计”这么高深的领域。但是随着自己代码写得渐渐多起来,我发现自己在方法论的层面上需要一次提高。因为我总是写出一些自己看着恶心的“脏”代码,明知一定有更好的办法改进,却不知道该怎么改进。于是在朋友推荐和我自己搜集信息的基础上。我决定把DP买回家。这里我想说的是,现在网络这么发达,获取信息的渠道如此通畅,读者如果买了一本不合胃口的书,首先应该埋怨的是自己。我在买DP之前,上网广泛关注了有关模式的背景知识(gigix给了我很多有用的信息,还有myan),然后下载阅读了DP电子版的前几章,从知道世界上有“模式”这种东西开始到下定决心去买,大概前后有将近半年的时间。因此我不可能对自己的决定后悔——当然,对DP的难度我还是有点估计不足,这薄薄的不到300页纸我一直啃到现在也不敢说一个“懂”字。DP给我最大的收获是思维方式上的,它让我在利用OO思考问题的空间上扩展了一步。我从学习DP开始意识到OO是一种对思维逻辑的映射,而不是像许多书上写的那样,OO是对客观世界的映射。从此我再也不敢对别人吹嘘自己懂OO了,也不会认为所谓多态就是“画圆和画矩形同形异质”这么简单。这其间发生了一件很有意思的事,就是我和gigix关于建筑与软件的讨论。今天回想起来,我只能用“无知者无畏”来形容自己。其实我既不懂建筑学(别看我是学结构的,结构和建筑的区别比硬件和软件的区别还要大),也不懂模式,完全是凭直觉在和风车作战。也许gigix也觉得我的论调很可笑,而所谓“建筑和软件是否有共通之处”这样的问题,我觉得其无聊程度只有“C++和Java哪个更好”差可比拟。扯太远了,回到这本书上来。几位译者辛苦了,翻译这样一本书,无论对谁都是一种极大的考验。我个人觉得,这本书的翻译可以打80分,不算流畅,但是不影响思考。能做到这一步,我想不带偏见的读者应当可以满意了。这本书本来就不是给初学者读的,相信能读懂这本书的读者,是不会被遣词造句上的问题所难倒的。推荐度:[][][][][]
[书名:深入浅出MFC第二版,华中科技大学出版社,侯俊杰,2001.1.第二版第二刷,印张:46,16开,710页,带1CD,定价:80,购买价:原价,购买地:北京《程序员》杂志社]1.74感想:每次翻开这本书,我都有一种莫名的情愫。这本书在技术之外给我的,比在技术上给我的助益还要多。买这本书,是我人生旅程上的一个转折点。通过这本书,我认识了一位人生的导师。侯先生以他扎实的功底、亲切的文字和强大的精神感染力,不仅廓清了我在MFC上的疑惑,而且廓清了我人生道路上的彷徨。(“又是一个枪手”,为我崇拜的人做枪手,我有荣与焉)我的人生经历,与侯先生颇有几分相似:本科学的是土木,毕业后感觉学非所好,向往自由的生活,热爱程序设计,为了理想,甘愿放弃大学四(五)年的努力。当时的我,正处在一个十字路口:考研结束了,能不能考上还在两可之间。今后是留在建筑领域,求稳定但与志趣不合的生活,还是毅然放弃从前的种种,在已经不算年轻的25岁,重新站上人生旅途的起点线,我必须作出选择。在夜深人静的时候,我一遍又一遍的反复读着jjhou网站上的那篇“走好资讯路”,心里百感交集。没有过那种经历的人,恐怕很难有我那么深刻的共鸣。我想,侯先生十几年前,踏入资策会培训班的前晚,或是决定报考工研院的那夜,是不是也有类似的心路历程呢?从此我便把侯先生看成是我的良师与偶像,jjhou网站成了我另一个精神圣地。我在这里学会了读书、学会了选书、学会了编程,更学会了做人,做一个踏实的人。我把自己以往20多年几无所成的原因,归咎于我的浮躁。如果没有侯捷,没有那本《深入浅出MFC》,我的心态不会像今天这么平稳。由一本书认识一位良师,是我的缘分。回到技术上来,这本书非常好,对初学者(我是指我这样的初学者,已经能写一点程序,但是对MFC没有什么概念,也没有SDK经验的,不是那种连C++保留字都记不全的初学者,也不是那种用SDK写过程序,对Windows脉络有所认识,但对MFC不清楚的初学者)的边际效益尤其高。不过以今天的眼光看来,这本书在组织上可以更好一点,拆成两册是个好主意。我期待明年侯先生的再版。总有人用这本书来攻击侯先生。除了强调这本书确实非常好之外,我还要提醒这些人注意,这本书成书的背景距现在已经有一段时间了,只不过大陆刚刚引进而已。放在当时的背景下,这本书视角独特,剖析清楚,与其他三本并称“四大天王”绝对不是什么“忝列”;即使是今天,这本书也要远远好于市面上类似内容的书。技术会进步,人的水平会提高。当你终于爬上泰山极顶的时候,请不要对你一路走过的较矮山头嗤之以鼻。推荐度:[][][][][(虽然我对这本书有特殊的感情,但单纯从书的角度看,我认为这本书还不是处于一个最理想的状态)
[书名:计算机图形学(第三版),清华大学出版社,孙家广等编著,1998.9.第三版2000.12.第六刷,印张:38,16开,600页,定价:39,购买价:9折,购买地:上海同济大学沪东校区书店]1.02感想:“二十年目睹之怪现状”,教材总是出奇的便宜。当然考虑到主要的消费群体是学生,对教材定价有特别优惠的政策体现了国家对我们的关心。但如果把这种优惠作为搪塞质量低下的理由,那就有违初衷了。当然我这些感想不是针对这本书的。应该说,这本书的内容还是翔实可靠的,涉及到了CG的方方面面,特别是在对数学原理的解析上,明显要高出其他同类教材一筹。作者孙家广院士也是国内CG界有名的人物。综合起来,作为教材,这本书是合格的。我感到不解的是,这本书总是在有意无意的引导读者什么。第5章莫名其妙的加进来一章“交互式图形程序库——GIL”,与上下文逻辑上毫无关联。原来GIL是清华做的一个项目,作者在这一章里口气一下子变得像作广告一样,可以说已经丧失了作为学者的客观性。“为什么要用GIL……主要原因有以下三条:其一,已有的图形程序库太大、太复杂……其二,难以掌握……其三,可移植性差……”。简直是贻笑大方:现在工业级的程序库哪个不是上千上万个函数,“其子过程和子函数个数均在300个以上”,这还算复杂?Windows SDK都有几千个了,又不是每个都要用到,相比之下GIL的70个函数不嫌寒酸了一点吗?说“难以掌握”的依据居然是因为用户手册太长,更是天下奇闻。而既然其他库都“可移植性差”,却在下一小节开宗明义的说“GIL是在目前应用最广泛的Windows 3.x/Windows 95窗口环境下作为软件平台运行的……”,移植性甚至不如OpenGL,自己打自己嘴巴。说自己东西好没关系,最好不要用贬低(尤其是毫无来由的贬低)别人的方法实现。我简单看了一下后面的介绍,这个GIL功能非常简单,仅仅是对Windows GDI部分做了些简单的封装而已,与一个图形应用所需的Application Framework所需的弹性和强度相去甚远。如果在附录里,简单的提一提这个产品,客观的评价它在图形学研究和练习方面的优势(短小精悍),那我想这无损于这本书的价值。但是这样抽刀断水,而且言语如此暧昧肉麻,让人觉得简直有失读书人的节操。言重了言重了,作为一个后进,我是不应该这样评论前辈耄宿的。但是如果上计算机图形学课的时候教材有的选,我prefer《CG:P&P》,虽然它也花了不少篇幅在SPHIGS上,但它没说OpenGL什么坏话。推荐度:[][][](如果没有第五章,我愿意再加半星)
[书名:Visual C++ 6.0技术内幕,清华大学出版社,Kruglinski,潘爱民 王国印译,1999.1.第一版2001.3.第三刷,印张:53.25,16开,820页,带1CD,定价:96,购买价:8.5折,购买地:北京中关村]1.80感想:网上把这本书的第五版骂的狗血淋头,我觉得太过了一点,不过我还是从善如流选了第四版,当时已经有点不太好买了。也许各人的学习方法不一样,我感觉这本书虽然也是好书,但只能算是“中规中矩”而已,还谈不上接Charles Petzold班的程度。这本书原理讲得太少,适合C++底子非常好的人学;另一个感觉就是这本书工具用得太多,初看晕倒,再看罗嗦。侯先生批评它和另一本Jeff Prosise的《Programming Windows with MFC》是两个极端。如果非要我在这两本中间选一本的话,当年我还是会选这本,但如今我会选Jeff那本,因为我已经把IDE玩得比较熟了。我个人觉得,以《深入浅出MFC》辅以《Programming Windows》,效果与这本书相当。我现在用这本书作为某项特殊技术的入门教程,看一遍,心里有个数,然后再到Programming Windows里去找对应的讲解,最后查一遍MSDN。但这本书里那一章COM讲得很好,很深入浅出,是全书的一个亮点,而且远好于Programming Windows的那一章Internet。综观全书,作为MFC入门教材和日常参考,我以为目前还是无出其右者。但是以国内的情况,很少有人会耐着性子把C++学好再进入MFC的,常常就是C/C++/MFC一勺烩了。如果是这样学习,不光是这本,所有的书都太难了些。推荐度:[][][][]
[书名:高级Visual Basic编程,中国电力出版社,Matthew Curland,涂翔云等译,2001.7.第一版第一刷,印张:27,16开,410页,带1CD,定价:55,购买价:8折,购买地:上海五角场图书市场角荣书店]2.04感想:这是一本价值被低估了的书,虽然它的每印张单价很高。因为国内有一种不好的气氛,认为VB就是给“不会编程”的人用的。而VB程序员自己也底气不足,总是试图从程序速度和功能上证明自己并不比其他程序员,尤其是C++程序员“低级”。但他们论证的方法,我以为基本是没有打中要害,因为其实大多数VB程序员自己也并不了解,VB到底是什么东西。这里随便闲扯几句我对VB的认识:我觉得,一种语言不仅仅是关键字和语法的组合,还有它的“范式”也是语言的一部分。用Java写出来的程序和C++“味道”就是不一样,这也许就是gigix津津乐道的“无名特质”。在这个意义上,VB几乎不能称之为一种语言,因为VB的编程思想,在较简单的语法级别上太接近传统的BASIC和C这种过程语言,而在较高的对象模型层次上完全是COM的翻版。所以VB其实是一种COM的描述语言,或者叫做COM的开发工具。所以凡是适合COM存在,适合组件的地方,就是VB大有用武之地的地方。VB天生不适合描述复杂的算法和数据结构,所以它就是适应那些流程化了的、模型非常清楚的应用领域,比如数据库开发,比如MIS。非要争论“VB什么能做什么不能做”,除了争一点口舌之利之外,完全没有意义。事实是,确实几乎没有VB做不了的事情,但是既有VB做起来可能要比C++复杂很多倍,时间成本和机会成本都浪费的地方,也有VB用起来行云流水,但C++就举步维艰的领域。这本《高级Visual Basic编程》,就是告诉世人,VB骨子里到底是什么。作者直指人心,一下子把貌似简单的VB语句背后复杂的机制:虚指针、数组描述符、IUnknown接口、动态绑定、对象模型、函数指针、线程模型甚至内存分配都挖出来了。这样掘地三尺的剖析,就是一位资深的操作系统专家也要好好想上一会,何况大多数水平平平的VB程序员呢?所以这本书,虽然具有金子般的价值,但是注定既不叫座,也没有多少人叫好。而且,这本书本身的难度也证明了,VB对某些高阶应用来说,可能比C++还要复杂。说到VB,我不由得想起一位网友的话,经典,与诸君共勉:“许多只会VB,而不愿意学习别的开发工具的开发人员,其根本原因并不在于VB的强大,而是在于对于其他工具的复杂性难以理解和掌握,因此‘不得不’坚守VB的阵地,同时为防止自己的技术能力受到怀疑,对于任何企图贬低和攻击VB的开发能力的言论都保持着高度的警惕。”不舒服吗?良药苦口。我一边摸摸发烫的双颊,一边去改我那个VB程序去了。推荐度:[][][][][
[书名:Effective C++中文版,华中科技大学出版社,Scott Meyers,侯捷译,2001.9.第一版第一刷,印张:17.75,16开,260页,定价:49.80,购买价:9折,购买地:上海东方激光书店]2.80感想:计算出这本书的每印张价格来的时候,我几乎不敢相信自己的眼睛。如果单以价格衡量,这本书实在可以称得上是“天价”。但我奇怪的是:为什么这本书这么贵,而我从来就没有感觉呢?我的答案是:书的价格,只在购买的那一刹那对你有影响力。当书到了你的手里的时候,它的交换价值对你就不再有意义,代之以它的使用价值——给了你多少知识和帮助。因为这本书确实是好,所以每次我看书的时候都被它的内容所吸引,它的价格早被我忘到脑后去了。所以我怀疑,在网上抱怨书价过高的那些朋友,究竟是在家里或者图书馆读书的时候产生抱怨呢,还是在书店里翻书的版权页的时候产生的抱怨。gigix说,同一主题的书,看多了之后边际效益会剧降。我同意。即使是同一本书,看多遍之后边际效益也会下降。刚刚买到EC++的时候,我几乎除了吃饭睡觉都在看,真正达到“不知肉味”的程度(导致减肥成功,体重从巅峰时期的104陡降到现在的74:)。但是现在呢?我回忆了一下至少5个月完全没有翻过一页了。因为我最近没有用C++写过东西,也因为这本书里的条款,很多我已经领会了。说老实话,EC++里的条款还是相对比较基本的,不像DP要时时温习。由于它对我的边际效益已经降低,所以我现在感觉出这本书有一点贵了。但是这绝对不是你抱怨书贵的理由。评价一本书的价值,当然应该以边际效益最高的时段来作标准。不能说,旧电视机只要200块一台,就断定新电视机2000块太贵,你说是也不是?如果以刚刚买回来的那两个月的边际效益衡量,我觉得完全可以接受。当然,这本书很薄,总价低也是一个因素。如果C++Primer也来2.80/印张,我是真的买不起了(注意,是买不起,不是贵)。而且,这本书制作实在是精美,“不输原版”绝对不是吹嘘。相对来说,电力的《C++Primer》在外观上难以望其项背。推荐度:[][][][]
[书名:图象格式编程指南,清华大学出版社,董士海等编著,1994.4.第一版1994.11.第二刷,印张:18.5,16开,290页,定价:15.80,购买价:原价,购买地:上海同济大学一书店]0.85感想:老书,但是有价值。对JPG格式的剖析很有参考价值。其中XMS和EMS开发那一部分,虽然和正题没有关系,但实在是读者之福。记得当年我在DOS下照抄这段程序,当看到自己真的突破了640K界限的时候,那种幸福的感觉无法用语言形容。国内还是有很多愿意踏踏实实写作的作者的,但要给他们一个好的舞台去表演,要有一个好的机制保障他们的付出没有白费。推荐度:[][][][(买不到了,可能现在实用价值也不大了)
[书名:C++语言的设计和演化,机械工业出版社,Bjarne Stroustrup,裘宗燕译,2002.1.第一版第一刷,印张:24.75,16开,380页,定价:48,购买价:7.5折,购买地:上海五角场图书市场角荣书店]1.94感想:这本书真的很艰深,每次我看不上20页就得睡一觉养养精神。但是这本书确实精彩,每天我上床睡觉之前总要看上20页:)我觉得,学习一样东西,最重要的是学习它的历史,知道它为什么会是今天这个样子。我甚至认为,科学本身就是一种特殊的历史学。我在上学期期末英语考试的作文中写到:科学是一种特殊的历史学,是由一种特殊的历史学家(科学家),用一种特殊的历史语汇(科学术语)记录的特殊的历史文献(学术论文)。很可惜,不知道老师给了我这么精辟的句子多少分:)……虽然C++仅仅是一项技术、一种工具,但我觉得要掌握好这门工具,了解它的发展历史也是同样重要的。清华的教科书有优于其他学校教科书的地方,其中一个就是每本教科书的第一章,必然要从头回顾这门学科的发展历史。我认为这对学生是非常重要的。可惜我们学校的教科书很多都没有这部分,即使有,也写不出清华那么有分量,这是差距。这本书还没有读完,不好就它的内容评论什么。而且这么有难度的书,我只有虚心受教的份。不过说实话,读起来挺吃力的。推荐度:[][][][]
[书名:探索极限编程,人民邮电出版社,William C. Wake,郑荣林译,2002.6.第一版第一刷,印张:11.25,16开,160页,定价:26,购买价:8折,购买地:上海五角场图书市场京版图书]2.31感想:可能是因为是学土木出身的缘故吧,我对软件工程始终推崇重型方法。我觉得“工程”就应该是重型的,现在重不起来是因为软件工业发展的时间太短,经验太少的缘故。不过随着对软件业了解的加深,虽然这个基本思想没有变,但我越来越怀疑在自己的有生之年能不能看到重型方法的春天了。像XP,我觉得它会很有生气,会在相当长的时间里成为有效的软工方法。但是,我依然觉得,XP这样的方法,仅仅是过渡性的、感性的、经验性的,很难产生像重型方法在其他工程领域那样深远的影响(也许现在已经有深远的影响了而我孤陋寡闻也不一定)。邮电出的这一套XP的书,有点“旁门左道”的味道。因为长久以来,我们在计算机技术方面并不怎么民主。GNU的影响远远赶不上Microsoft和与之关系密切的一系列盟友的力量。C++=VC、OA=Office甚至计算机=PC的观念在普罗大众的心目中根深蒂固。而在软工界,XP的影响远远赶不上“钦定”的文档主义。如今Linux已经修成正果,XP也来到中国,百花齐放的日子不远了。虽然我仍然需要坚守Windows这块阵地,但我决不认为Windows API就是程序的全部。而针对今天中国软件企业的规模和水平,我觉得XP比重型方法更有用处,实施的难度和遇到的抵触情绪会小很多。这本书的翻译水准大大超过我对邮电的期望,看来世界上没有做不好的事情,只有用心不用心。作为传统IT出版“五强”之一的邮电,在其他几家江河日下,机械一马当先的情况下,有没有重振雄风的勇气,不是靠一套书来决定的。已经伤透了的心,“有多少爱可以重来”。邮电,走好!推荐度:[][][][]
以上是我的一些杂感,不算书评,因为有很多和原书几乎没有任何关系。我的初衷是研究计算机书的书价组成,现在把这一部分简单的总结如下:1.2001年以前的计算机书(这里都是指质量比较好的,下同),每印张的单价大约在1.6-1.8左右;2001年下半年以后有攀升的趋势,很多书每印张单价都超过2元,我们的计算机书的确是在逐步走高,这是和物价水平一致的。2.关于侯捷先生的书,其实并不算特别贵。《深入浅出MFC》价格只在中上水平,低于内容接近的《Visual C++技术内幕》和《Windows程序设计》。EC++的价格是给人以离谱的感觉,但制作水平要较市面上其他书明显高出一截(最近看到MXC延续了这样的高质量,我很高兴),而且这本书本身总价就不是特别贵,所以对于需要的人来说,我觉得没有什么不好承受的。3.真正让我感觉到不值的,不是那些100元或者接近这个价位的大部头,相反却是那些每印张单价在1.6元左右,总价在30-60上下,内容水分比较多的书(在学校宿舍和家里我还有不少这样的书,这样的书还有个普遍特点就是封面特别俗艳)。而且遗憾的是这样的书往往是原创或者挂原创牌子的,说明我们国内的作者整体水平还有待提高。4.一本书的价值,不仅仅体现在内容上,排版、制作水平也很重要。赏心悦目的书籍能减轻读者阅读的疲劳和焦虑感,提高学习的效率,这部分功用也应该算到书的价值里去。5.出版社与作者的名气,实际是书质量的一种Credit。好的声誉是需要长时间积累才能获得的,而改变业已形成的恶劣印象则需要更多的努力。如果有可能,还是应该一开始就把事情做好。6.读者购书行为也要理性,不能见一本买一本,应该根据自己的兴趣爱好、应用领域和资金情况合理的选择书籍。买一本优质优价的好书效率上远远胜过买若干本质量平平的庸书,而在同一个领域,没有必要重复的购书。至多,有一本讲解理论的教科书,一本比较全面的入门教程和一本足够分量的参考书就够了,尽量避免购买重复主题的书,哪怕两本书内容都很好。7.买书仅仅是第一步,而且是最不重要的一步。书到手之后如何善加利用,真正让花的钱转化成生产力,才是读书人需要认真对待的问题。只要把书的内容吃透,多花点钱少花点钱又有什么关系呢?怕就怕买书的时候斤斤计较,书到手了又叶公好龙,一边抱怨书贵买不起,一边有大量的知识积压。读书和做人一样,是要有定力,有大勇大智慧的。谢谢大家听我罗嗦。