几天前,我在上海交大的BBS上看到有人在吐槽国内教科书的质量远不如国外,于是有人提出了写书不如译书的观点。这种貌似【崇洋媚外】的观点,引起了一番热烈的讨论。如果抛开民族主义方面的东西不谈,就从市场竞争机制而言,我们引进国外图书的目的也是为了倒逼国内的图书市场升级,最终目的还是希望我们自己能写出好的教科书。认为只靠翻译外文书籍就行的想法显然是过于幼稚的想法,而且基本上也是缘木求鱼,没有什么可行性。
但话又说回来,就计算机技术类图书而言,这个讨论关于目前国内图书的现状描述是对的,这到底是什么原因呢?我在这里倒是想说说自己的看法。首先,国内教材不好的原因是因为这些教材编写目的是为了考试,而不是应用,而且秉持的也是传统的填鸭式的教育方式,突出的是例题要点,学生会做这些题,背下这些要点,能通过考试,这批教材的任务就完成了。因此他们既没有什么实用价值,也对技术的时效性毫不敏感,不久前大学里还在用DOS+TC环境来教C语言呢。好在近几年算是有些改进了。
上面说的是教材本身的性质,下面我们再来看看写书的人。写上面这些教材的人往往是国立大学里的教授,例如谭浩强。他们本身就出在一个很封闭的环境里,对于商业级的开发了解程度是很低的,这跟国外有很大的区别。当然,现在情况已经在改变当中了,工程师队伍当中已经有相当一部分人开始自己写书了。但写书的人远远不够,这其中的原因就要涉及到很多人对于写书的观念了。我们儒家文化里有个很不好的观念就是做一件事不是为了名就是为了钱,或者说的粗鄙一点:不是为了装逼就是为了当土豪。而且人们普遍认为当了土豪之后才有资格装逼,这还算进步的思想,不进步的人还认为即使当了土豪也没资格装逼,甚至还少数反人类的家伙还认为就因为当了土豪,所以更没资格装逼。国外的人可压根就没这个概念,人家除了娱乐圈、体育界的,似乎也没出名这回事。他们的文化本来就属于show文化,我show了,得到相关社群认可就好。所以他们没有什么【写程序写的很成功了才能写书】的说法。因为大部分人永远到不了那时候,那样的话就没人写书了。
最后再来说说书的内容。事实上,如果你一开始清楚自己写书是为了显示自己的名声,说明自己是个成功的程序员的话,这书往往就没法看了。当然,我们这里不是在说出名有啥不对,而是说如果是基于自己的名声来写这本书的话,很可能你就不会去想如何按照逻辑来论述你的观点,通常会两三句话把你认为对的东西讲出来,这不就是国内这些教材的大问题吗?【我是专家,记住我的话就好】,结果就是书写成了垃圾。
在这个日趋多元的时代,观点立场其实不重要,我们要想让人认可自己,必须要有论述观点的能力。什么时候你能同时说明自己的观点,与反驳自己的观点,你说的话才会值得一听。这里说的自我反驳,不是要我们对着镜子对骂,搞成精神分裂。而是说我们要有能力反驳自己,才有可能做出更好的论述,这个跟要想学好下棋必须要能自己跟自己下是一个道理。要知道,逻辑这件事跟立场是一对天敌,一个人只要有立场,在逻辑上就必有漏洞,正因为这样,辩论才能玩得起来。那怕是最简单的事情,只有两个立场的事情,非黑即白的事情,也是黑有黑的逻辑,白有白的逻辑,黑有黑的bug,白也有白的bug,如果我们压根就不知道自己说的道理会遇到什么现实的,逻辑的挑战,这论述当然到处都是自以为不言自明的东西,结果什么也没说明白。譬如说,我们认为某件东西是a。我们会这样:【我认为是a,当然我知道很多人会认为是b,这些人通常是这样这样这样想的,但我认为他们是不对的,因为如何如何不对。当然还有些人会这样这样说b是对的,我认为这些说法如何如何。所以是a】。这样叫论述。如果写一句【我认为是a】然后就写不出来了,那就比精神分裂严重多了,因为这根本就没有精神。