为什么这么多人黑谭浩强的c语言教材?
大一考计算机二级就只看了这本书,然后很愉快的过了。现在看过一些其他c语言的书,发现还是这本
书更适合初学者,很有帮助的一本书,为什么这么多人黑谭浩强和他的书呢?
基于谭C第四版。
- 存在大量错误,其中有相当的低级错误。
· 校对极其不负责任。
* 29个字符居然只给出了28个。
* 107页程序4,ture和flase各亮相一次。
* “后辍”。
* rintf。
* 153=13+53+33,没有上标。
· 无视事实,特别在宣称按照C99讲解的情况下。
* 关于“究竟在哪里可以定义(声明)变量”完全不清楚。
* “C99中把字符型算作整型”拖了十年。
· 逻辑错误。
* “整型,实型,字符型” char属于整数类型。
* “分号是语句的必要组成部分”。
* “函数调用语句,表达式语句,空语句”。
· 爱下断言,可惜常常是错的。
* “凡是二元运算符都可以与赋值符组合成复合赋值符”。
· 臆测。
* “先定义,后使用”。
* “实数”。
* “C的实数常量都是双精度型”,接着在后面提到“添加f来强制指定类型”。
* “把除了控制语句和输入输出以外的几乎所有基本操作都作为运算符处理”。输入输出调用的
stdio.h中的函数需要函数调用表达式。
* “++只能用于变量,不能用于常量和表达式” 重定义变量。
* “按优先级别顺序执行”。
* “结合性的概念在其它一些高级语言中没有”。
* “while语句的范围只到while后的第一个分号处”。
* “for(a,b,c)s和a;while(b){s c;}无条件等价”。
* “根据常识,偶数不是素数。”无故省略前提。
* “int a[n];是不合法的”。
- 恶劣的习惯。
· VC6。
· 不使用等宽字体,不使用可正常阅读的代码风格。
· 教导匪夷所思的解决问题的方式。例如“编译不通过就改成.cpp继续运行”。
· 在函数体中声明其它函数。
· scanf中使用逗号。
· 建议忽略警告。
· 使用加减32进行大小写转换。
- C语言水平问题,这单独挑出来。
· 类型不清,给出的类型的表居然有七八处错误。完全无法区分int和整型,即整数类型。
· 对“未定义行为”及类似行为的不了解。
* 利用未定义行为检测实现特性,例如使用溢出检测char是否有符号。
· 指针地址不分;数组指针不分。
· 不能区分“函数的返回值类型”以及“函数的类型”。
· 对含有多个字符的character-constant的否认。
· 源字符集和执行字符集合二为一。
· 对自增自减的计算方式的臆测。
· “四则运算中只要有一个是float或者double,结果就是double”。
· 不知道character-constant的类型是int。
· 格式化输入输出的部分大量缺失。
· 臆造的“真”“假”。
· %o,%x输出指针。
- 冗余
· “赋值语句”从“表达式语句”中挑出来。不过这未必不行。
· 多余的变量,典例是flag。
· 算法一章与C关系不大。
· “if (a==true&&b==true)”。
累了,不找了。。
薛非在他的书里说到,很多人明明写的是C但源文件却是CPP,这样一来有的时候他们写的代码在C语法
里根本是错的,但却能通过编译,因为C++里正巧允许这么写。而谭浩强的书里就出现了这种想法,甚
至告诉人*.c编译不过时就改成*.cpp试试。这是什么鬼?
另外谭浩强的书号称符合C99标准,但稍有常识就会明白,这是个笑话。VC++ 6.0跟Windows 98同年发
布,怎么可能支持C99?
更可怕的是书里很早就出现说编译器报warning可以无视,这个想法太危险了。会明显给人一种很敷衍
的感觉,就是这本书根本不像是在教人学C语言,而像是教人怎么应付考试。
好书一箩筐,他写那本坑钱害人,看了他那本书还觉得好那俺现在真的好担心楼主你了。。
不说别的,楼主的代码一定很丑 -_- 审美也有差。。。
楼主有没有想过,如果当初看的是更好的书,现在是不是会有更好的成就呢?
好书随便举一例:
C语言编程:一本全面的C语言入门教程(第三版) (豆瓣)
俺觉得教书育人排第一,名利应该往后靠,故而非常厌恶谭、严这样的人
——补充——
俺其实并不黑谭浩强,因为俺心里空间有限,有很多重要的人需要俺去关心爱护,再也没有多余的角落
留给这种人了,这题是邀请俺俺才说的。
说到书,谭、严错误很多,代码极其不规范,这会给新手带来极其恶劣的影响,这是一点,并且是非常
重要的一点
加之,严蔚敏的书根本不是自己写的,是学生写的,不对,是学生抄的,还是不对,是她指挥学生抄的
。对于此条,俺根本懒得列出证据,因为俺没空!欢迎好同学在评论中补充
当然这种事情在俺朝实属司空见惯,无数大学的院长副院长自编教材都是指挥研究生抄出来的。。。
所以抄袭俺就不追究了,可是严的书语言晦涩故弄玄虚生怕你看懂了,实在非常不适合学习
俺纯粹是本着关怀新手的目的来说这些话,俺只是无名之辈,谭严乃至很多大学的正副院长之流势力广
大触手众多,俺说话做事只是费力不讨好还会被喷,您说呢?
——————
额外的,俺近期会开始写一系列数据结构的入门文章,如果觉得俺对严书评价苛刻,可以关注俺写的数
据结构系列文章,计划是基本概念+应用+练习题模式
俺构思的目录如下:
数组
链表(包括双链表、循环链表)
栈
队列
递归算法(树的遍历需要用到)
二叉树(包括二叉搜索树)
常用平衡树(AVL树与红黑树)
哈希表
图
欢迎补充,也欢迎到时候指正俺的不足之处
我经常有这种错觉:这个世界上有2种C语言。
因为学老谭的这本书,考试比较好考。
中国的这种应试教育,考卷出题除了要设置一些难题,还要在看似简单的题里设置一些陷阱题……
出类似 i = ++i--; (x-y)*(x-y)<100;ch>=’A’&&ch,=’Z’; 这种比绕口令还绕的恶心题目,可
以用来区分那些谁上课认真听课、认真听老师讲题、考试时候认真审题的孩子。
这种题目对出题者能力要求低,易判卷,易设置陷阱。
但实际工作中,把一个表达式写得如此绕的是要遭雷劈的。
因为一大堆前自增后自增让你算,机器运行出来结果还不一样!!!
关键是,,他妈的考试还要考!!!
闹哪样???
过计算机二级都不用读谭浩强,买本练习册刷一遍不就行了?但等你考完了一样什么有用程序都写不出
来。谭浩强的效果是类似的。
发布于 2015-07-19 添加评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
当初学的时候看的Brain和Dennis的那本The C programming language,中文翻译版,薄薄一本,两个
礼拜看完,从pascal成功转c。
第一次看到谭的书就被它的错误和厚度深深折服。有各种不科学的地方,并且还拿个坑爹的不标准的
vc6来说事…摆明了是坑。
我当了9年多的码农,想来也有资格回答这个问题。我当年大一学C语言用的是影印的外文教材,我们学
校非CS专业的就是用的谭浩强的书。当时听其他专业的学生说那本书写得多么易懂易读,于是我们专业
一些英文不太好的同学也去买了那本书。当时我也拿来看了一下,不出两章我就看不下去了,因为错误
实在太明显了。不仅概念错误,连示例代码好多根本就无法运行或者运行结果跟它书上说的是不一致的
。后来,高年级后由于所学的课程更加深入经常需要查阅很多资料发现,国内学者出版的这类书籍几乎
全都是一个尿性。其实都是让他们带的学生做的,甚至我们学校有留校干管理岗位的老师博士论文都让
研究生做枪手。然后这些老师有资格带学生之后会怎样想也想得出来。
国内现在觉得码农好像是个入门门槛很低的职业。各种培训机构层出不穷,相关的出版书籍也非常多。
其实基本上就是骗钱的,那些书的作者很多对自己写的东西都没全面了解,翻译的作品连术语都会解释
错。培训机构的话就更呵呵了,进去10个,有1个能有较好的动手能力就不错了。最重要的是,培训机
构根本就不可能对学生进行系统化的培训,基础非常差。就像我们公司的那些外包人员,有时候给他说
一个基本上算是常识的东西都要解释半天。
现在有互联网很方便,遇到不懂的问题就问度娘。那些外包就是这样,拷贝一些代码来他根本就不知道
为什么会这样。而且还把原来的代码结构搞乱了,这些都是隐患。
真正的技术问题还是要用英文检索才能较准确的找到答案。当然大部分的问题其实在开发具体项目使用
的API的官方网站上都能找到答案,只是大多数都很懒或者觉得英文看起来很累而已。
又回到楼主的问题,如果你只是过二级那么谭的书影响不大,反正你以后基本上也用不上这个技能。但
是对于靠编程这个技能吃饭的人来说,那本书不管是从思维模式还是编码习惯都是误人子弟。我认为这
真的不叫做黑。
谭的书是特殊年代的政治影响学术的产物,而现在学校仍然在大量使用一方面是学校懒老师懒,另外一
方面是行政干扰教学的体现。
老梗了,忘了他吧,没必要纠结他,
因为真的很烂。
因为这些书都过时了,谭浩强不仅不撤下来,也不修改修改赶上时代,还在继续卖过时的东西。
飞龙 SE@SJTU,专注单身二十年。
举个小例子吧,他书里说等号左边不能出现表达式,我暂且不纠结他有没有左值和右值的概念,也不纠
结单个变量就构成表达式,简单的一个p[0]=0就能看出来他这句有问题。
由此可见,谭书的问题不仅仅是过时。就算放到c89那个标准下,他书里面的一些概念还是错误的(比
如i++ + i++)。最可气的是,老谭不懂标准还故弄玄虚,你说你不懂就算了,不写不就完了么,自己
编一些莫名其妙的概念坑人算怎么回事?
让我推书的话,《k & r》、《c语言的科学的艺术》、《c与指针》三本。如果我生在那个时代,我会
选择翻译国外的东西,而不是自己胡编乱造整出一本书。
编辑于 2015-01-27 8 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
int a;
int b;
int c;
从前是本好书,现在不是,不是不好,而是不适合现在,也不怪它,
大学现在教c和c++还是用vc++6.0
学谭浩强的人就满足了吧,我当年学的时候明明有谭浩强的书,学校偏偏用自己出的书,错误百出,错
别字的那种错哦,看上去像盗版的。
我会说我是南邮的吗
人艰不拆……
即使你把老谭的书背下来,也就是知道点零碎不清而且概念混淆的语法而已,在程序员的大道上,你也
就是个学徒的水平
那个时期,并没有太多的选择,所以用他的书无可厚非,但是现在是2015年,不是1985年,好歹要有些
进步罢,c201x都准备来了。
C(编程语言) 谭浩强
谭浩强的 C 语言技术真很牛吗?他写过哪些厉害的程序?
书店网上全是谭浩强的教材。
他书里的代码竟然不用等宽字体 。。。( ̄▽ ̄")
谭老师的这本书的强大在于,把简单的问题讲复杂,把细枝末节的内容讲成长篇大论,把复杂的问题一
带而过,学之前在好比白天在森林外徘徊,想想学好,能走出森林还有点小激动呢。没成想学着谭老师
的书,就好比进了森林迷路还碰到黑天,沉没于无数格式符和语法细节中,好吧,各位看官,我的个人
之见啊。。
------------------------------- 吐槽到此结束------------------
还好在“跑到森林迷路”的时候,找到了K&R中R写的一本C语言书,简洁明快切中要害。自此开始逢谭
必吐的评论。
发布于 2013-12-14 2 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
谭浩强没有编过什么大程序,但这好像并不妨碍他能把计算机语言课讲得很好,能把计算机语言书
写得生动活泼、深入浅出。写书和编程序是两码事,C语言发明者亲自操刀写的那本C语言书可能是世界
上最难懂的C语言书,这里有一个角度的问题。
谭浩强说:“任何人都要有自知之明,任何人都不可能是一个万能科学家,也不可能什么事情都比
别人强。我做的只是入门性的工作,我并不是研究计算机系统的专家,也不是计算机软件编程专家,我
只是计算机教育专家。”
谭浩强不愧为一个出色的党政干部,他不遗余力地奔走呼号,宣传计算机普及工作的意义,作为一
个深谙宣传之道的政治工作者,谭浩强很清楚只要自己的道理在一个角度上能站住脚,就不怕树个靶子
和它争论,理不争不明,最怕的是在寂寞中被遗忘。这和鲁迅当年必须要《呐喊》是一样的道理。
摘
纯粹以“知识点”的方式讲解C语言是这本书最大的问题
void main() {}
相关评论:
薛非 《品悟C》作者
5 人赞同
看看
以其昏昏,使人昭昭?
你就知道老谭的书有多么荒唐了
《品悟C》这本书中讲解的错误90%都来自谭浩强的书
发布于 2013-03-02 8 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
9
赞同反对,不会显示你的姓名
知乎用户 THU.CS PhD student
9 人赞同
谭浩强的C书在系内早就成被嘲弄的对象了。
发布于 2013-11-02 2 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
22
赞同反对,不会显示你的姓名
知乎用户
22 人赞同
他的书总是在关键的地方一带而过,你要是有什么地方不懂看几遍也还是不懂。
发布于 2011-11-05 3 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
15
赞同反对,不会显示你的姓名
D瓜哥 个人主页:http://www.diguage.com/
15 人赞同
谭浩强的C语言的书不是很好。强烈建议你看C语言之父里奇写的《C语言设计》。这本才是经典!
发布于 2011-11-05 1 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
19
赞同反对,不会显示你的姓名
知乎用户 其实我是浮南人
19 人赞同
我能说谭老师的这本书差点毁了我对C的热情么……
读完此书,完全不知编程为何物,
只是给你一个问题,再给你一个答案,然后告诉你应该记住什么,如此反复。
要看真正的好书还是去豆瓣上找吧!
发布于 2013-08-16 1 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
11
赞同反对,不会显示你的姓名
知乎用户 区块链/hyperledger
11 人赞同
很多人说这本书让他c语言入了门,相信我,如果你只看这本书而且看懂了,那你c语言根本不可能入门
。
这本书其实让你花了无数多的时间去掌握了错误的语法,错误的实践。考虑到小白们是一张白纸,要上
两次或者更多次c语言才能纠正回来。
有人说谭浩强一边学c语言一边写书,顿时豁然开朗。一个人能犯那么多初学者的错误本来就是很难相
信的事情。
顺带谭浩强如果写程序妥妥的被开除的水平。
编辑于 2014-09-24 3 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
4
赞同反对,不会显示你的姓名
知乎用户 我就是看看...
4 人赞同
我看的第一本 C 教程就是这本书 ...
我很感谢这本书 他教会了我
看书要认真
要能分清糟粕与精华
要勇于实践并且分析解决书上没有说明的问题
而不是一味地接受
发布于 2015-05-22 8 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
38
赞同反对,不会显示你的姓名
知乎用户 唱歌爱好者
38 人赞同
谭先生年轻的时候是清华的校团委书记,后来是清华计算机系党委书记。
他最有名的书是basic语言编程这本,全球销量第一的技术书籍。
C语言这本是后来按照前一本的流程编写的,这本书最大的问题不是在有多少错误,而是没有能够表达
出C的简洁的力量和美,我觉得这个是最大的遗憾。
i.e. 向都已经上船的K&R致敬。
编辑于 2011-11-05 10 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
23
赞同反对,不会显示你的姓名
Memoria 他们怎么成的角儿啊,得挨多少打啊
23 人赞同
题主是纠结该看哪本 C 的教材么?如果是的话,这个问题的答案其实并不重要。
学习一门语言不能只看一本教材,当遇到疑惑的时候就要跳出教材的限制,去网上找些资料来看。
我见过许多编程高手说自己是看谭的书入门的,非常推荐他的书;与此同时,也同样有很多高手说看谭
的书一辈子都学不会 C 。
这些人成为高手,难道仅仅是因为看了,或者没看谭的书吗?一本书能这样大量发行,多少有它的优点
,而能不能学会一门语言,教材并不是决定性因素,对于个人的不同情况也许更适合看不同的教材,但
是即使没找到最适合自己的教材,又有何妨呢?
时不时看到一些人说被xx的书毁了热情之类的,要我说他们就这点热情,随便来点挫折就不行了,所谓
xx的书只不过是借口罢了。
编辑于 2014-03-04 2 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
15
赞同反对,不会显示你的姓名
李鹏 indie game
15 人赞同
只说书的话可以黑的地方太多了......
-----------------------------------------------------------------------------------------
---
不过,不能脱离时代看问题......
谭浩强写c语言教材的时间是上世纪80年代,C89标准都还没有出来,那时总共就没多少中文的编程语言
参考资料,有的那点也在学校和科研单位什么的......
在这种环境下,他写的c语言教材居然可以让小学生(比如我)轻松读懂学会,以当年的标准来说,可
以算是水平很高的教材了......
其实,直到90年代初可以在新华书店里面买到的c语言教材,或多或少都是相互参考或抄袭的,有错误
和疏漏的地方大家都一样,所以除非你有条件直接阅读英文资料(那可是在没有互联网的年代哦),他
的书还是很好的入门教材……
到了90年代中后期,要是你还是用他的书学编程,我觉得应该怪你的老师居然敢拿这书来教你,不应该
怪人家谭浩强......
-----------------------------------------------------------------------------------------
---
要知道人家当年搞的是“计算机教育普及”,书是附带的成果,并且书的目标读者里面本来就有要包含
中小学生的哦,八九十年代那种英文词汇量才几百的小学生哦,main 都不认识的,printf 不知道是
print+f 的,就算知道了也不可能知道 f 代表 format 因为没学过这个词啊,例子里面变量名如果不
用 a, b, c 、 i, j, k 的话,他那400万读者(截至90年代)中,一大票人的编程之路就要断绝在中
小学阶段了......
做下对比的话, K&R 的书是70年代写的,大家都说好,可最早的中译本不也是2000零几年才有的
吗......
编辑于 2015-02-22 3 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
6
赞同反对,不会显示你的姓名
知乎用户 天地有大美而不言,四时有名法而不议,万…
6 人赞同
个人觉得对谭老师的书还是有点话说的
当时初学编程,以为堂哥推荐我他的书,当时买来看看,觉得挺浅显易懂,但是这本书我看了不下三遍
,还是不会编程,我当时以为还是我书没看透。
后来接触《The C programming Language》个人感觉这本书非常棒,棒在哪里?习题!看这本书不做习
题等于白看。
但是我同样不推荐新手入门用这本书,这本书对于初学者而言太难。建议看一边老谭的书,明白C语言
是怎么回事儿,然后赶紧放下,看《The C Programming Language》这样最好。
推荐先看老谭的书的原因是,这书非常简单,你能很快明白具体概念,语法是怎么回事儿,然后转到《
The C Programming Language》开始真正的学C吧。
发布于 2014-01-11 2 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
2
赞同反对,不会显示你的姓名
知乎用户 兴趣使然的程序员
2 人赞同
我觉得这本书至少是一本水平民化还能看的入门书。这是我的第一本c语言的书,虽然现在也看不下去
了,但是当初看的时候似乎还看得津津有味(⊙▽⊙)
现在很多同学问我c/c++怎么学我也经常推荐这本。为啥?因为抓考点啊!至于理不理解内容嘛,很多
人这辈子也就只学这么一学期编程,学的好还不如考得高来得实在。
发布于 2014-01-12 添加评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
9
赞同反对,不会显示你的姓名
Jan-Z 程序员,Linux, Python, C, C++...
9 人赞同
不管怎样,我是看谭浩强老师的书入门的。
1)对于一个完全不懂编程知识的人来说,谭浩强的书确实很好理解,很好入门。
2)至于有错误、编程风格不好、例子不好之类的,我倒觉得没什么大问题。错误,会有勘误修正;编
程风格靠自己培养;例子写得漂不漂亮,对于一个首次学习编程的人来说不重要。
发布于 2011-11-04 9 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
3
赞同反对,不会显示你的姓名
文丑 三十辐共一毂,当其无,有车之用。
3 人赞同
曾经在一下午的心灰意冷之后,抄着他的书写了一段代码仍然报错,我差点以为我是智障。
发布于 2016-07-11 添加评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
4
赞同反对,不会显示你的姓名
Neo 软件工程师
4 人赞同
谭的书建议就别看了,如果非要推荐一本的话,建议还是K&R 的<<C Programming Language>>,经典.
发布于 2012-07-04 3 条评论 感谢 分享 收藏 ? 没有帮助 ? 举报 ? 作者保留权利
更多
我来回答这个问题
|