Page
[本站原创]《Effective丛书点评》Preface(封首语) About C++ 教程、阅读笔记等。
Preface
也不知道,这些文字到底算是什么。就算是再上线上纲,它们也顶多可以算是些“C++读书笔记”。关于C++,及至于程序设计的规范,图书市场上的书,已经是多如牛毛,吸引着无数初入业界的学生和研究者的目光。然而,正如一本好书可以使人终身受益,一本坏书亦可以使人终身受害。对于很多人而言,选购一本图书不仅意味着“把它作为参考”,无论这本书上的内容是对是错,他们都认为既然是“书上写的”,就足以拿出来作为最后的仲裁依据。尽管近些年来,图书的质量在严重地下降,但是很多虔诚的初学者仍然把他们在书店里挑回的某本印装精湛的C++图书作为自己求学之路上的圣经。
事实上,有关C++的最丰富的信息来源:C++ Report杂志、C/C++ User’s Journal杂志、comp.lang.c++.moderate新闻组,却极少有人能够去关注。由于经济能力有限及为琐事所困,我本人也只能隔三差五地去看上一看,很少能够插上了话去。好在有一批精干的技术作家,时常地把杂志及论坛中的话题作了高水平的总结,并结合C++程序设计的基本观念,锤炼出一本本的C++技术书籍的精品。每每拿到这些沉甸甸的书籍,我的心总是在颤抖。心中原有的幼稚的框架被一次次打得粉碎,而一些简单有力的概念,却一次次地被证实。在这条漫漫的长路中,风景如画却又曲径通幽,山穷水复却又柳暗花明。请原谅我的文字拙劣,但我心中存着宛如情诗般的赞美,上帝却让我找不到合适的词句来表达,这凄苦可有谁能读懂?
多年来,我一直有一个心愿,就是把自己这些年读过的C++技术方面的好书用某种不可思议的方法“融合”起来,成为一本既全面又权威的“另一本书”(Yet another book)。但是,一个思想还在动荡的年轻人,要做好这件事,需要付出多大的努力呢?他没有百万行程序代码维护的经验,他不了解人性的阴暗一面,他缺乏文学专业的磨练,他贪玩儿,他有约会。谁能说这些不重要呢?但不幸的是,“这个年轻人”有着长久的激情,他也有一种历史责任感,他不迷信权威,他自信满满……他开始动笔写了。更不幸的是,“这个年轻人”就是我自己。
长时间地浸泡在读书中,一些浮躁而错误的观念被逐渐地滤去,而一些表面上看起来平淡无奇的细节却在几乎所有的重要书籍中反复出现,并逐渐地被放大成一幅幅曼妙无比的图景。没有人能够一开始就意识到那些闪着金光的字句,究竟是经过了多少系统的精炼。一个人在逐渐地被引导着见了一些世面以后,则在写下每一行代码之前,都会谨小慎微。这当然未必就是好事,进度的压力和经理的怒吼会将最初的“完美”设计无情地打成碎片。面对着各式各样的平台,各式各样的编译器,代码撰写者到底要怎么样把握自己的命运,证明自己的实力?多年的实践使我看清,目前的问题还是集中在极为基础的领域。如果不把地基深深地植入地下,就绝对不可能有摩天大楼的高耸入云。如果一个人还需要在“为何iostream少了一个.h”这种低阶问题上反复纠缠,又何以能指望他们能够关注template partial specialization、SmartPointers及更高阶的议题?其实要解决这些问题,除了读书、读好书以外,我是真的找不出任何好的办法。可是,人的时间是多么地有限啊!人用来学习的时间更是多么地有限啊!人又是多么容易转移注意力啊!多少人情愿在时尚的数码消费品上一掷千金,在购买区区数十个RMB的书上,却是那样的吝啬。到处去找电子书的下载,然后堆在硬磁碟的某个角落,蜻蜓点水还比他们认真些。我向来不指望那些不严肃的学生读书能有任何的收获,我的这个笔记也不是为他们准备。我所谓的严肃,包含着两层意思,一个意思是对正确的东西从善如流,一个意思是对错误的东西嫉恶如仇。对于生活中的很多事情太过严肃,其实并不可取。只是“严肃”实在是做学问的第一要义,否则还不如混混社会算了,学什么C++呢?
……