前几天在网上看到一篇《C语言与C++不得不说的那点事》的博文http://blog.csdn.net/turingbooks/article/details/7860153#comments。发现是图灵的一本新书《C程序设计伴侣》的片段,故去图灵网站转转。发现这书的争议很大,我也发表了一些自己的见解。我的观点是这回弄不好图灵要出本糟书。我认为截止到今天,按已放出的样章的水平,程序员们是不会掏银子的。在图灵网站上有位言辞激烈的同学,连这本带着《C程序设计》,是狠批到底,不留余地呀。不像我,总觉得要给人家留点面子,斟酌一下词句。

《C程序设计伴侣》到底如何,因为还没有最后定稿,故此不好品评。今天打算谈谈谭浩强的《C程序设计》的事情。毕竟这本《伴侣》之所以争执优劣,很大程度上是因为谭浩强的《C程序设计》。《C程序设计》这本书从91年出版,到今天为止已经4次改版,号称印刷量高达1100万册。平均下来150多个中国人就能有1册。一本书20余年能够到这个地步,无论是因为什么,都是难能可贵的。

但是你去互动等网上书店,看到《C程序设计》的书评,各种批评车载斗量。给予正面力挺的,也多是打感情牌。意思就是这本书总体上还是有功的,不能这么骂。怪哉,这本书既然持续出版20年,发行量1100万。为什么这么多的批评?

我真正开始学习编程是在97年,当时学校给的C语言教材是什么样子,十多年过去已经记不得了。加上工作后并没有使用过C,故此C的水平只能说平平,看到C程序能基本通读一下,好坏只能说说代码风格如何,没法从C本身的角度评价。这次因为这场争论需要看看原书,找了《C程序设计》第三和第四版来了解。

因为时间有限,我只是简单的读了一遍。我觉得我找到了网上为什么那么评价的原因。这本书的核心问题,其实就是国内计算机院校教材的通病,没有适应时代发展,躺在原来的成绩上面睡觉。

《C程序设计》之所以能够取得这么大的印量,20年来长盛不衰。其第一版应该居功至伟。当时我还是小学生呢,平时最多玩玩红白机,最多会在学习机上跑个Basic。还是Helloworld水平的。上了初中,才开始接触电脑。不过也多是在玩儿游戏和少量文字处理。这个时期,普遍的就是缺。会用电脑的缺,程序员更缺。很多人开始考计算机等级考试。一级和二级的报名考证很火。就类似于改革开放刚开始的几年,什么方面都缺,只要有就是好东西,根本不吝好坏,起码比没有好。《C程序设计》在国内院校教材里面,还是水平线以上的,可以算是一本好书了。那么在这种市场环境下,《C程序设计》取得成功很正常。大量的学生通过这本书入门,自然对这本书有了感情。但是也要看到,这本书的定位也就是让你能够写些最简单的程序,能够期末考试通过,最多考个二级证。不能让你真正能够用C去吃饭。

我在学校里面学编程是97年开始的。学校先是QB(QuickBasic,不是某传销魔兽),然后是Pascal,接着是C和8086汇编。感觉就是学了一大堆,写的代码最大的也没500行。出来的东西和市场上面的软件一比,连个玩具也算不上。后来3年级开VisualBasic和VisualFoxpro,才算能做出个玩具了。《C程序设计》就是为这种教学环境编写的。让你知道C语言,但是没法实用化。当时也没人说什么软件工程,瀑布模型学校里面好像都没怎么说。根本就不像这些年,敏捷啦、重构啦、代码的可读性啦这些全出来了。这些东西当时想学都没得找资料。连老师带学生,代码都是意大利面条。

前几年上电大,成人再教育。老师教编程,我发现虽然语言变了,用Java了。但是整体水平仍然和10年前差不多。目标是让你能够期末考试通过,而不是能做出可用的程序来。架构、代码重用、封装、代码可读性这些就没人提过。老师写代码,基本上都是

int a,b;

这种水平的。根本没有代码可读性的概念。

C语言在现在的实际工作中,一般只有两种地方用。一个是操作系统内核、编译器、驱动程序这样的底层。非大牛不能操刀。一个是嵌入式、单片机,因为资源太少,只能用C。就是嵌入式市场,因为这些年硬件的发展,C的圈子也在缩小,大量高级语言随着硬件水平的提高而进入这个圈子。C很多时候只是一个教学语言了。TOIBE排行榜上C常年位居第一,其实倒不是其日常用的这么多,而是学生学习编程占了很大一块。《C程序设计》扎根学校,服务目标明确,自然订单源源不断。

但是,最近几年,C在应用开发中也有回暖的趋势。随着Python、Lua等胶水语言开始在国内普及。原来已经在日常开发中不太使用的C开始用于编写对性能有较高要求的模块。编写好后,由脚本语言调用。这种混合编程方式开始流行起来。很多程序员需要重新学习C语言。那么自然,印刷量巨大的《C程序设计》被不少人选择。也许是因为前辈当年就是通过这本书入门的,向后辈推荐。或者因为自己当年读的就是这本,因为它领着自己第一次学会了编程,出于这种感情又去读这本书。但是这本书虽然在院校教材里面算不错的,但是仍然沾染了国内院校教材的很多坏毛病。最主要的问题就是书的目的是为了C语言期末考试或者考二级,而不是让学生能够在实际生产生活中使用C语言编程。内容和习题都是考试型的。其次就是内容陈旧,更新缓慢。即使是最新的第四版,还用VC6作为编程环境。甚至还嫌VC不够老,连Turbo C++都拿出来了。这都哪年的产品了!Borland都被收购多少年了!Turbo C++ 3.0可是92年的产品,今年是2012年。编译器又是不断发展的,不是一个多少年不变的东西。拿20年前的老古董来,真的大丈夫?第四版号称基于C99规范,我想问问,92年的C++编译器支持C99吗?C99新添的特性怎么能编译得过去呀。起码您也安个mingw,用gcc怎么也比TC、VC好吧。而且没盗版问题。支持最新的规范。

而且市场上这些年来引进的国外顶级大牛执笔的经典越来越多。人家的目标不是让你期末考试通过,而是让你能真正用来干活。大家读书,不免拿来比一比,可这一比就坏了。《C程序设计》是大家本来心目中的经典,把它的地位给拔高了。结果和国外的经典一比,差距出来了。要是这本书是现在哪个没名学校的三脚猫教授编的用来赚学生钱的破书,大家理都不理。互动上这种书很多。VFP6都多少年没人用了,还有人出它的新书呢。为什么呢?学校还在教,二级考试里面还有它。有这个市场,自然就有新书出来。我看了几本的介绍,这类书除了学校和考级的买,根本没人要。卖出去多少本我不知道。但是书评是一个也没有。大家根本懒得写书评。甚至不但书评没有,电商也知道这些书零售基本没人要,连介绍都不写。但是 《C程序设计》 是自己心里本来的经典呀,和国外经典比出失落感来了。常言道爱之深责之切,自然是破口大骂。

所以就出现了这种现象。 《C程序设计》销量一直不少,但是书评里面的骂声也越来越高。我认为大家还是对这本书更加客观一些比较好。对这本书的感激和怀念之情没错,91年的第一版当得起。但是对于现在的第三第四版,就不要再期盼其能够做到第一版的地步。因为它就是一本国内院校的教材,就是比较好的院校教材,那也是院校教材。院校教材里面可以矮子里面拔将军,不代表其可以去和国际经典比肩。大家还是让它回归自己的合理地位,做一本合格的院校教材好了。不要给与超过其承受度的期望。如果有后辈询问如何学习C语言时,一定要问清楚其目的。如果只是期末考试或者二级证,以后不大可能做编程,那么推荐这本书还是可以的。如果是真心想要学习C语言,日后吃IT这碗饭的。还是建议其购买真正的经典比较好。既不用误人子弟,让后辈日后抱怨。也让这本《C程序设计》继续在我们的记忆里面保留美好的印象,少挨几句。

因《C程序设计伴侣》的争执,谈谭浩强《C程序设计》的批评相关推荐

  1. 在c语言中,字符串topt65的长度是,谭浩强c__程序设计第13章.ppt

    谭浩强c__程序设计第13章 第13章 输入输出流 13.1 C++的输入和输出 13.2 标准输出流 13.3 标准输入流 13.4 文件操作与文件流 13.5 字符串流 13.1 C++的输入和输 ...

  2. 谭浩强C程序设计第五版课后答案视频+代码讲解完整版(合集)持续跟新中~~~

    这里是一个谭浩强C程序设计第五版课后答案的合集 请看下面: 工欲善其事必先利其器 写C语言代码,首先得有安装一个趁手的工具,那么VS系列是最合适不过的了 这里是安装教程: VS2013安装教程和使用 ...

  3. C语言的学习第一天——谭浩强C程序设计第五版

    学习了谭浩强C程序设计第一章 编译器:VS2019 鹏哥C语言:c语言编程 C语言入门 c语言(C语言程序设计教程 c语言视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 ...

  4. 1.5输出图案(由*组成的图形·)C程序设计第四版(谭浩强)

    1.5输出图案(由*组成的图形·)C程序设计第四版(谭浩强) //C程序设计第四版(谭浩强) //章节:第一章 程序设计和c语言 //题号:1.5 //题目:输出图案(由*组成的图形) #includ ...

  5. 谭浩强C程序设计(第五版)P82 习题六(求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积)——中职

    谭浩强C程序设计(第五版)P82 习题六 设圆半径r = 1.5,圆柱高h = 3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积.用scanf输入数据,输出计算结果,输出时要求文字说明,取 小数点 ...

  6. 谭浩强C程序设计第四版答案

    只给出一些需要编程的答案,用的是谭浩强老师的书: 本文持续更新中- C程序设计课本中的一些笔记见:C程序设计笔记 我的目录 只给出一些需要编程的答案,用的是谭浩强老师的书: 本文持续更新中... C程 ...

  7. 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c++程序设计(第三版)第七章的习题总结,主要涉及结构体的内容. 1. 定义一个结构体变量(包括年.月.日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天.注意闰年 ...

  8. 谭浩强C程序设计快速复习笔记

    README 该笔记主要根据岭南学院专插本的考纲进行编写.用到的教材是谭浩强的<C程序设计>第三版 适用人群:对C有一定基础,针对考点快速复习的考生.但不限于岭南学院专插本考生 亮点:①结 ...

  9. c语言程序灵魂编译后,谭浩强C程序设计第4版精讲视频课程

    谭浩强<C程序设计>(第4版)网授精讲班[教材精讲+考研真题串讲] 本课程由资深辅导教师马丽梅老师讲授,全面讲解教材的重点.难点.考点,教会学员理解并掌握该教材中的基本概念.基本原理和基本 ...

最新文章

  1. 从Image Caption Generation理解深度学习
  2. jmeter测试java_使用JMeter测试Java项目
  3. 《程序是怎么跑起来的》第六章
  4. java9 coutdown_Java并发之CountDownLatch
  5. linux 程序包管理5 编译安装
  6. socket实现一个简单的echo服务
  7. nginx中配置angular项目_强大,Nginx配置一键生成
  8. 自学python考哪些证书-Python自学难吗?有哪些课程内容?
  9. 2018年高考631选计算机,2021年高考650分可以上什么大学 650分左右的院校
  10. 蜂巢式技术阵营简化IoT蓝图
  11. Linux中的jobs、fg与bg命令
  12. C语言:动态爱心代码
  13. 记事本下编写并运行Java代码
  14. mybatis中selectOne方法分析
  15. 如何理解TPS、QPS、RT、吞吐量这些性能指标
  16. DOORS入门教程系列:基本概念介绍(一)
  17. gdb调试c语言在poll函数卡住,poll()上的C编程分段错误
  18. Android WebRTC 入门教程(一) -- 使用相机
  19. 目标检测 YOLO系列算法
  20. 打开苹果电脑浏览器的代码

热门文章

  1. jpg图片转换成pdf文件,方法步骤
  2. matlab两曲面的交线,MATLAB画曲线交点和曲面交线
  3. 外文版计算机科学期刊,EI(SCI) 收录国外英文期刊(计算机类)
  4. Go实现http接口压测工具
  5. DynaSLAM源码笔记-检测动态物体部分梳理
  6. [iOS]阿里云人脸身份证校验
  7. 1.10 python 基本数据类型-集合
  8. Latex 希腊字母对应表
  9. 关于 trello 和 slack 的感想及使用经验
  10. 斗球体育直播app看赛事,选用【抓饭直播】