This is an article written by someone else. I like it, so copy it here.
我把好书分成两种: 1、经典 2、字典
所谓经典,就是简洁精准的把一个新世界展示给你的那种。
看过经典,你了解的不仅仅是一件东西“是什么”,同时还包括了“为什么”,并且——更重要的——还可以让你明白,在这个新世界里如何建造自己的家园甚至是优化、改造这个世界本身。
比如,c++ primer就是一本经典;被称为“龙书”的那本编译原理同样也是经典。
所谓字典,就是清晰精确的把所有概念、细节有序组织起来,使得你可以以最快的速度查找到最相关的标准答案——所谓标准答案,自然必须在精确性、权威性、深度等等方面都达到足够的标准。
比如,c圣经就是一本优秀的字典——甚至很多地方都达到了经典的标准。
很显然,学一样东西,应该从经典入门,掌握世界的大体布局;然后动手实践,有不理解的就继续阅读经典;当所有东西都有眉目了,再有不会或拿不准的,就该去查字典了。
谭的书之所以不好,原因就是他以写字典的口气写经典,内容干巴巴的,读完好像关于C什么都知道了,其实两眼一抹黑,什么有用的东西都做不出来;可是拿来当字典用呢,这本书又太浅、太旧,错谬过多,以至于毫无工程参考价值。
——最坏、最危险的东西,并不是把错误的东西教给你,而是有意无意的隐瞒了一部分真相,最终导致你形成错误的世界观。
技术上的东西,除了某些标准之外,被做成现在的样子,必然都是有很充分的原因的,
基本上,它们不是很明显的、赤裸裸的为某个设计目的服务,就是因为这样那样的原因而不得不以一种“看似绕了弯路”的方式赤裸裸的为某个工程目的服务。
越是精巧、艰难的技术,需要绕的弯路往往也就越多。
比如编译原理就必须先抓规律,从如何由一大堆字符中独立拆分出语句开始引入终结符概念,然后再拐向文法以及文法的推导,最后才能绕回来,写出可以自动编译高级语言源码的程序来。
所以,一本好的入门书,绝对不能只讲什么概念如何定义——一个老外可能仅仅靠一本新华字典学会汉语吗?——而是应该想办法把学习者带入这门学问出现之前的
状态,一点一点让他们明白当时面对的是什么问题、如何解决;原始简陋的解决方案又有什么问题、为解决这个又要走什么弯路,最后才和你一起把正确的东西引出
来。
它给你的感觉,不应该像是一个宗教领袖或一本圣经,喋喋不休的给你灌输一大堆“心诚则灵”“听我的没坏处”“我经历过,所以我知道”的“不容置疑”的“真
理”;相反,它应该像是和你一起工作的、聪明绝顶的同事:你们一起遇到了很多很多麻烦,但他都想办法解决了——于是你跟着也学聪明了。
(比如,龙书给我的感觉就是:一个得意的炫耀自己如何攻克世界难题的伙计,由于他把自己处理麻烦的技巧、思路都公布了,所以我也学会解决编译问题了)
相比之下,中国的课本——不仅仅是编程语言方面,几乎是所有科目——都是一个为考试而学习的人作的读书笔记。所以读来如同背字典一般乏味;为了“降低”这
种背字典的负担,“好”的中国课本还会搞出一陀陀黑体字,以提醒读者这些内容会被考到、那些内容“超了范围”,把乏味的《小学生生字字典》搞的更加乏味和
无用。
ps:我摘抄了其中最认同的两段,是
shan_ghost贴的,看了后感觉太精到了,特此留存。
原文地址
阅读(1054) | 评论(0) | 转发(0) |