« March 2004 | Main | August 2004 »

April 16, 2004

聊聊我的技术书架–C++(2)

继续写我的C++书籍


上次写到了深入浅出MFC,不过昨天翻抽屉的时候,又找到了一本漏写的——《Visual C++ 6.0技术内幕》英文版叫做《Inside Visual 6》。


这书也算赫赫有名,是侯捷所谓“MFC四大天王”之一。Kruglinski著,微软出版社出版。此书强于Document-view,细致入微,由浅入深。初学到精通都和是看。实在是本好书。比较糟糕的是翻译得太差。所以只能算7折的效果。这本书说来惭愧,我多次试图看,但始终未能看下去,最终只看了一小部分。基本还是本新书。
现在用VC也少多了,就算用,也用不着查这本书了,这书放在我手上有点浪费。干脆,送人了吧。
看到此篇blog的朋友,如果你VC处于刚刚入门的状况,而且又有志学好,学精,请你跟我(huoju@bj1860.net)联系,此书免费奉送。(最好是北京的,否则太麻烦)


再往后,就是一本《Think in C++》。Bruce Eckel著。此君最为有趣,写了书先公布电子版,而且随写随发布。完全不怕别人看了不去买。甚至还宣称,如果你打算打印几页带在路上看,那用电子版正好,比纸书方便。这种Open精神实数难得。不过,看了之后去买书的人照样多的不得了——没办法,人家的书好。不买一本总觉得不踏实。满心欢喜,买了这本书,价钱还算公道。当时觉得赚了。拿回去看的时候,可有点不对劲了。至于怎么不对劲,一哥们总结说:“全是中国字,每个词都明白,但连一块楞是看不懂!”。为什么啊?这还用说,翻译的差啊!看这书也有一个好处,可以提高英语水平。凡是看不懂的,请先想想这个词的英文,然后再想想这个英文单词其他的意思,往往能豁然开朗。在这种状态下看了半本(能坚持这么久,可见其内容之精彩!),我终于受不了了。彻底放弃了。当时还不知道这书能下载到,也真愚昧的可笑。后来知道了有下载,赶快去找来了英文版看。总算圆了这个心愿——尽管也没看完。


下一本不能不说的就是《The C++ Programming Language》,C++之父的作品。英文影印版。这书厚度实在夸张,买回来也没敢看,就当字典备用的。据说国外是学生的教材,真令人惊叹。这书内容同样也是包罗万象,而且权威的要死要死的。凭我的感觉,当字典最合适不过。


还有几个小薄本值得详细说说,分别是《Essential c++》、《Effective C++》和《Inside The C++ Object Model》。都是侯捷译,华中理工出版。
看起来很相似的3本书,其实味道大有不同。第一本简单,入门书。是C++委员会成员之一的Lippman所著,据说是Lippman写了《C++ Primer》之后,自己也觉得实在太厚了。打算给初学者一本快速入门的书。所以就有了此书。侯捷也是抱着同样的态度翻译的。(向二位致敬)。此书绝对是C++入门的绝佳通道,轻量级,浅显易懂,而且字字句句紧扣C++标准,从一开始就能养成良好的习惯。我的C++是不够纯的。代码属于C和++混合的OO类型。读这本书的时候也有不少问题存在。所以,别以为自己都明白了就看不起入门书,Lippman的书,还是值得一看的。
《Effective C++》,作者是Scott Meyers,成名作。这书不适合初学者。个人认为,应该算中等水平者的饭后甜品。初看其中都是写经验技巧之类,但宝贵之处在于没有停留在“知其然”的水平,而是力争知其“所以然”。作者对每个问题都去探讨其成因,以及相关问题,看似简单,其实涉及到的方方面面完全不小于一本百科全书。这本书,我的读法是放在枕头边,每天睡觉前读上几页,不费太大精力,还能知道不少东西。比较遗憾的是也没读完,后面一些大的主题没能尽读,着实是件遗憾的事情。只能期望将来有时间再返回来看。此书决不送人:)
至于《Inside The C++ Object Model》,可一定要小心。这书可是一块硬骨头,当年不知好歹,拿来就读。真是差点甭了牙齿。这本书的主题是C++的对象模型,可以说,读了这本书,就能自己搞出来一个C++实现。探讨的都是C++的实现机理,所以说是块硬骨头。作者也是Lippman。这书能看完的人估计真没有几个。反正我是没看完。当年好像问过Miracle,他说他也没看完,这让我多少有点平衡。^_^ 总之,没点功底看这书纯属打击自信+浪费时间。到一定水平来看,还是收获多多的。我不算高人,没收获到什么,只是吹牛的时候多了一项——我看了多半本《Inside The C++ Object Model》,你看过吗?嘿嘿。
以上基本都是侯捷译著。没错,我喜欢看侯捷的书,选材精良,翻译精细,文字考究。敬业的作者,优秀的书。可惜没机会跟侯先生当面表达一下敬意:)
最后一本,大部头《C++ Primer》,前面说了,Lippman所作。也是百科全书一类。其实有《The C++ Programming Language》就用不着这本了。但风格上,我更喜欢Lippman。所以又买了一本。中国电力出版社出版。(嘿嘿,这个出版社还真有不小的缘分呢)。C++工作者必备的案头书,没有的话赶快去买。后来同事adex想学C++,我推荐的就是这本。甚至利用点关系搞来一本送他。初学用?没错,这本书就是可以初学用的,就是厚了点,但是内容并不艰深,引导性很好。此书的特点就是全面,太全面了。所以,即可入门也可提高,这书买的还是划算得很。
我的C++书籍大概就这些了。(也许还有,散落天津北京2地,有一些没在手边,记不起来了)。从此之后,没有再买过。这些,足够用了。唯一可惜的是没看过Exceptional C++。去年曾经想买,不过看看china-pub上放出来的样张就倒了胃口。这类书,还是要看侯捷翻译的好。
另一个遗憾,则是没有好好研究stl,只能停留在用的层次。侯捷也有好书,可惜没精力研究,也就不买了罢。
从此之后,用C++的机会越来越少。大半都是自己的玩具类作品。于我来说,这门花费时间最多,投资最大的学问已到积累到一定水平,可惜无用武之地了,这总是件令人憋闷之事……但愿此文能给后来者节约点时间,能学得更好一些。


附:
推荐读法 [Essential C++ & C++ Primer]->C++ Primer(精读)->《Effective C++》&《More Effective C++》。这些读过之后,可读《Inside The C++ Object Model》。当然,到这个时候,如果前面的书都读完大半了(别学我,我哪本都没看多少),就不用我给建议了,你已经是一代高手了:)。

April 13, 2004

聊聊我的技术书架–C++ (1)

今天很想写点什么。抬头看看书架,就写写我书架上的书吧。很多技术短期内基本不会用到了。也许再过一段我会忘记。那是件可惜的事情。就让我记录于此,也算和后来者共享一点点经验。


熟悉我的人都知道,我在技术方面是个比较杂的人,应用的范围也算深入了解了几个不同的领域。所以,就按照技术的分类大概写写,然后再按照应用范围大概写写。如果能有人觉得这篇小东西有一点点用途,那也不枉费我敲了这些字。


C++我用的年头最多,也算掌握得最为熟练。我的C++生涯开始于95年。当时国内还属于“信息的荒岛”,internet刚刚再物理所有了第一个节点,国内大家正迷恋着CFido。资料少的可怜。精心制作的好书也少。我的入门书是一本《Visual 1.0程序设计》(大概是这个名字,年头太多,记不清楚了。)。作者是洪锦魁,台湾人。此书从安装,配置介绍VC,确实是入门到精通的好书。内容细致,举例恰当。读起来也不觉的枯燥。不过遗憾的是,仍然用C的思维来用C++,所以也只能算本入门书了。此书估计现在早已无处可寻。


此书读后,自己摸索着,看着例程,倒是也能写一些小东西。后面一段时间没买什么书。反倒是买了不少D版光盘。其中大半都是有代码文档等等,台湾的居多(大陆网络不发达,但台湾很好。这些信息大半来源于网站)。从中学到了不少东西。


96,97年,VC2.5,VC4相继推出,MFC唱起了重头戏。这时候的VC,我俨然就是不会用了。是啊,从VC1到VC2的差距不小,技术上变动也大。手边也没有找到好书。一次去朋友家玩(可能不少人认识,就是 没脾气 ),看到一本《VC2 21天自学教程》。翻了2页感觉不错,就借回去看。前面1天看了7章,后面一章看了7天。后来还书的时候,没脾气说跟他的感觉完全一样,也正是如此,我才记住了这两个颇似巧合的数字。此书其实就是烂书一本。作者名字记不清了。从这个时候,开始学会了点挑书的技巧–翻译书质量远高于国内原创书。


在这2个年头里面,因为没有研究明白VC,转而改用了BC++。始终为在dos下作了一套直接写屏的函数库颇为自得。BC++很不错,看随机文档就很好,所以也没有买什么书。


98年开始,发现了Borland C++。好东西,兼具C++和delphi的优势,第一眼看到就算迷上了。好不容易才弄到了一个。然后去买了两本书《C++ to How Builder》和《C++BUILDER 4 技术内幕》。前面那本书是问答形式,介绍了大概100多个VCL的小技巧。后面着本可是鼎鼎有名。英文名字是《C++Builder 4 Unleashed 》作者是Charlie Calvert,borland的资深工程师。还记得这家伙吗?kylix bate2的演示就是他做的,当时borland的fans肯定都曾为此激动过。我甚至保存了一张当时drbob上面放出来的照片:

这是我看到的第一本好的技术书籍。作者承诺给读者一个轻松的阅读环境,让读者可以远离电脑,轻轻松松看完。这书正适合当时的大学生活–没有电的时候我就爬在床上看书。


书中探讨了很多内容,包括代码的写作方式,什么样好,什么样不好,关于OOP的好的设计和不好的,VCL的事件委托模型,VCL对数据库的包装等等,可谓事无巨细,一应俱全。其中无数次夸赞Borland工程师的伟大设计——当然,他们确实很伟大。后来看英文版本时候,发现其中对MS的冷嘲热讽颇多,做中文版的时候这些话都被删去了。虽说和技术无关,不过也算比较遗憾。


这本书当时是学校给买的,我那时候正在给学校做一个科研项目。毕业之后把书还给了学校。遗憾了很久。待到毕业前夕,有人到学校卖旧书,碰巧看到了此书。竟然要价只有10块钱。当时一阵心酸。当即买了下来,就算作为永远的纪念吧。


在此之后有一段时间没有买教程类的书籍,一是穷学生,二是看帮助能解决大半问题。只买了一本《BORLAND开发人员指南》和一本坚果出版的 Ray Lischner 著的《delphi技术手册》(此书应该算delphi,但我delphi的书只有这一本,而且是为了CB才买的,也一起算入C++了)。此书是Miracle老兄推荐的,当时他跟我说“想买一本函数库的书,看中了这本。没想到买回来大跌眼镜,不过倒是赚了”。闻听此言,我就去书店翻了翻,当即决定买下。此书详细的介绍了Object Pascal的知识,然后对RTTI做了比较深入的探讨,还有一些比较深入的细节,现在记忆已经开始模糊了。总之是值得一读的书。我喜欢她还有另一个理由,书中每项技术难点都是用C++和delphi对比来讲。这不仅帮助我提高了C++水平,更帮我无意间掌握了delphi,甚至后来用delphi做过2个项目。


在此后,大概是99年,开始发现了侯捷的书很好看。可惜开始大陆没有,只能去网上看电子版。这时候,由于技术的提高,我又开始用VC做一些小型项目了,梦寐以求的想得到一本《深入浅出MFC》。还好侯捷老师开放了电子版。于是每天晚上对着计算机猛读一阵。这本书读得非常爽,读的速度也比较快,始终沉浸在一种打开宝库的发现的快乐中,其间夹杂着对MFC之精巧的敬佩,并为候捷耐心所折服。这本书的内容不用多说了,网上夸赞的文章大把的是。后来终于简体版面世,我第一时间就去买了一本。虽然这本书并没有再读多少次,虽然电子版早已熟读,但,这本书,我一定要买的,以此来表达对侯捷开放电子版的一点敬意。就算如今,已经到了vs.net的时代,如果有人用VC,我仍然会说此书必读。不读则难以懂MFC,不懂MFC则不能懂VC。书扉页上的“山高月小,水落石出”令人心旷神怡。至今我在剖析复杂的技术时候,仍然以此自励。

继《C++BUILDER 4 UNLEASHED》和《DELPHI技术手册》之后,这是另一本对我造成很大影响的书。


…待续

about me:
me.jpg
CC License. Some rights reserved.
署名·非商业用途·保持一致
本站之所有未作特别说明的内容均使用 创作共用协议.
POWERED_BY_MT_3.2