◇◇新语丝(www.xys.org)(xys3.dxiong.com)(www.xysforum.org)(xys2.dropin.org)◇◇ 说说谭浩强教材的缺点 作者:时进 谭浩强的计算机教材是大大有名。我最早学编程是读了他编写的BASIC教材,对初学者 来说确实是讲得很好。后来我自学C语言的时候也用了他的C语言教材(以及其它教材)。 基本上来说是觉得一步一步讲得很好。----那是我10年前学习的时候的感觉。 然而,最近我教一两个学生好好学一下C语言,就要求他们再读一遍谭浩强的C语言教 程,把书中的习题都做一遍,我再逐个检查。结果就发现这些学生有一些共同的毛病。 首先是源代码格式混乱。当然,从本质上来说,写出的程序只要符合语法、逻辑正确 就行,但是从实践上来说,现在都比较重视可读性,要求讲究源代码的格式清楚,以便于 检查和交流。例如大括号和缩进,K&R推荐的格式是:   if (x == y) {     ..   } else {     ...   } 或者下面这个也可以接受:   if (x == y)   {     ..   } else   {     ...   } 但是潭浩强的教材中的源码格式很不统一,经常看到一些奇怪的大括号和缩进方式。 例如下面这一段(《C程序设计(第三版)》,p99): if(a>b) { t=a; a=b; b=t; } 这种写法算哪门子独特风格?实在是难看得要死!如果学生规规矩矩地照着输入,结 果一定就是学会敲空格缩进(而不是用TAB键)。而且按这种写法,如果有两三个层次, 读起来简直要让人发疯(学生确实写出了这样的源码)。我当时很不明白为什么学生的 代码风格会是这个样子,一翻书,显然是谭浩强教的。 有人强调谭老师的教材的入门性,可以理解,但是源码风格算不算入门级的问题?学 生使用这个教材就会养成这样奇怪的源码风格,毕业后无论是去工作还是读研,都需要别 人纠正才行。 第二,学生学完全书之后,对"编译"、"链接"、"生成"这些环节模糊清楚。通 观全书,对这几个概念只是在上机步骤中简单地提及,不够重视,讲得不透。 第三,更糟的是,虽然书中有一章讲到了程序调试(第三版,第14章),但都是理 论性的话居多,根本没有讲任何在集成开发环境中的调试手段。学生在学完之后,根本就 不懂设置断点、添加监视、逐句运行之类的常规调试方法。----难道这不算是学生入门级 时需要学习的东西吗? 最后,我要顺便说一句,在入门学习C语言时通常都需要使用集成开发环境,一般都 是使用 Borland 公司的 Turbo C 2.0 和 Borland C++ 3.1,或者是微软公司的 Visual C++ 6.0,但是从我个人的实践来看,前两个原来都是设计在DOS环境下用的,在Windows 下用就有点不大合适,后一个对入门者来说是杀鸡用牛刀。虽然也另外有人给 TC2 或 BC31 做了外壳(例如有一个"TCwin"),但是也不包括任何调试功能。对初学者(甚至 对一些用C语言的科学工作者)来说,我觉得最好的是一个叫做 C-Free 的集成环境。这 是国内某人开发的共享软件(www.programarts.com),Windows程序,中文界面,标 准版(不含调试功能)免费,专业版(含调试功能)需要付费注册。----这算是给别人做 广告吧。 (XYS20090313) ◇◇新语丝(www.xys.org)(xys3.dxiong.com)(www.xysforum.org)(xys2.dropin.org)◇◇