侯捷:满汉全席之外

Stanley B. Lippman 所著的C++ Primer 雄踞书坛历久不衰,堪称C++最佳教科书。但是走过十个年头之后,继1237 页的C++ Primer 第3 版,Lippman 又返璞归真地写了这本276 页的Essential C++。有了满汉全席,为何还眷顾清粥小菜?完成了伟大的巨著,何必回头再写这么一本轻薄短小的初学者用书呢?

所有知道Lippman 和C++ Primer 的人,脸上都浮现相同的问号。

轻薄短小并不是判断适合初学与否的依据。Lippman 写过Inside the C++Object Model,280 页小开本,崩掉多少C++老手的牙。本书之所以号称适合初学者,不在于轻薄短小,在于素材选择与组织安排。

关于Lippman 重作冯妇的故事,他自己在前言中有详细的介绍。他的转折,他的选择,他的职责,乃至于这本书的纲要和组织,前言中都有详细的交待。这方面我不必再置一词。

身为C++ Primer,3rd Edition 的译者,以及多本进阶书籍的作者,我必须努力说服自己,才能心甘情愿地将精力与时间用来重复过去的足迹。然而,如果连Lippman 都愿意为初学者再铺一条红地毯,我也愿意为初学者停留一下我的脚步。

我是一名信息教育者,写译书籍,培训人员,在大学开课……。我真正第一线面对大量学习者。借此机会我要表达的是,所谓“初学者”实在是个过于笼统的名词与分类(呃,谈得上分类吗)。一般所谓“初学者”,多半想象是大一新生程度。其实C++语言存在各种“初学者”,有13 岁的,有31 岁的(当然也有41 岁的)。只要是第一次接触这个语言,就是这个语言的初学者,他可能才初次接触计算机,可能浸淫Pascal/C 语言十年之久,也可能已有Smalltalk/Java 三年经验。有人连计算机基本概念都没有,有人已经是经验丰富的软件工程师。这些人面对C++,学习速度、教材需求、各人领悟,相同吗?

大不同矣!

每个人都以自己的方式来诠释“初学者”这个字眼,并不经意地反映出自己的足迹。初学者有很多很多种,“初学者”一词却无法反映他们的真实状态。

固然,轻薄短小的书籍乍见之下让所有读者心情轻松,但如果舍弃太多应该深入的地方不谈,也难免令人行止失据,进退两难。这本小书可以是你的起点,但绝不能够是你的终站。

作为一本优秀教科书,轻薄短小不是重点,素材选择与组织安排,表达的精准与阅读的顺畅,才是重点。

作为一个好的学习者,背景不是重点,重要的是,你是否具备正确的学习态度。起步固然可从轻松小品开始,但如果碰上大部头巨著就退避三舍逃之夭夭,面对任何技术只求快餐速成,学编程语言却从来不编写程序,那就绝对没有成为高手乃至专家的一天。

有些人的学习,自练一身铜筋铁骨,可以在热带丛林中披荆斩棘,在莽莽草原中追奔逐北。有些人的学习,既未习惯大部头书,也未习惯严谨格调,更未习惯自修勤学,是温室里的一朵花,没有自立自强的本钱。

章节的安排,篇幅的份量,索引的保留,习题加解答,以及网上的服务,都使这本小书成为自修妙品、C++专业课程的适当教材。诚挚希望《EssentialC++中文版》的完成,帮助更多人获得C++的学习乐趣——噢,是的,OOP(面向对象编程)可以带给你很多乐趣,我不骗你。

侯捷

2012/09/22

  • 本文节选自《Essential C++中文版》一书
  • [美] Stanley B.Lippman 著
  • 侯捷 译
  • 电子工业出版社出版
分享