关于c语言学习 谭浩强的书

2007-11-16 13:22:58|  分类: PROGRAMME |  标签: |举报 |字号 订阅

 
 

      广大有志于从事IT行业的同志们,在你们进入这一行之前千万请看这篇文章!太经典了!对你绝对有启发!

 

千万别买谭浩强和等级考试的书!!!!!!


整理别人的言论,请大家踊跃讨论!!!!!!!!!!!!


1:书皮上面有那么多的牛人题词,估计也许是自己的水平太低。

2:ANSI只给了两种方式:
int main(void) {/*...*/}
和 int main(int argc, char *argv[]){/*...*/}
其它的形式都是不标准的,属未定义行为,老潭就好这个。

3:如果你有兴趣,不妨查查近二十年来老谭写过的书。老先生的主要作品是:Basic语言教程、C语言教程这两种书。他的书现在的版本与十年前的相比,多少也有点“与时俱进”,根据语法变化做了点修改。但是改不掉的是他那种糟糕的编码风格、好钻“未定义行为”在某种编译环境中的具体表现的牛角尖而且颇为自已能用很多篇幅讨论这样无聊的问题而沾沾自喜的性格,以及对程序设计中很多方面的错误理解和解说。
有意思的是,这两种书他前后大概各出过七、八本——在不同的出版社、用不同的书名、列入不同名称的从书系列,而且它们面向的都是初学者这个读者群体。如果说一本书出版了六、七年后,在出新版本的时候他打算找另外一家出版社出,这倒无可厚非。问题在于,现在他是在两、三年时间内会在不同的出版社用不同的名称(有时干脆就是相同的)出几本内容基本相同的初级编程教材。说刻薄点,他的这种干法只能解释为:老先生自知来日无多,要赶紧把贬值速度如同老蒋逃离大陆前夕的国民*法币的“谭浩强”这个无形资产尽可能多的*,以为子孙多积攒点遗产。
说句公道话:老谭虽然水平不高,但是在中国计算机教育的早期他的确作出了不少贡献。因为那时全国上下懂计算机的人很少、总体水平极低,所以以老谭之碌碌,仍能对大伙有所帮助。但是人贵有自知之明:你的时代已经过去了,你就应该知趣地退在一边看年轻人的表演。这方面王选先生就很值得学习。王先生自已说过:在90年代初的时候他就深切地体会到自己对新技术的学习和掌握已经赶不上身边的年轻人了,所以他自觉退出科研一线,让有能力和活力的年轻学者挑大梁。反观谭先生,不但隔个一年半载的就要把他那泛黄的书稿拿出来掸掸灰、改几个字,然后找家出版社出版,而且,他老先生还成立了一个所谓“谭浩强工作室”,组织一伙写手写了一批同样的碌碌之作——其中某些书涉及的领域,相信谭先生自己恐怕知之甚少。以王选先生之学识和名望,尚知其力有不逮。老谭,你为什么不惭愧?!

4:建议老谭好好看看The C Programming Language,好好学学C语言。
我最烦学生拿着他书里一个语句里面好多++的问题来问我。
我不教C语言,只教C语言版数据结构,发现计算机专业没有一个C语言学得好的学生,对此很无奈。都是老潭的教材闹的,我发现凡是C标准上说的is undefined老潭讨论起来就特别来劲。

5:老谭后面的写的也是漏洞百出的。例子程序也是臭不可闻的,有些编译不过去(例如把不同的指针类型用等号赋值,用过C的人都知道不同类型的指针在赋值前需要进行转换,C标准里也规定了),有些执行不了(例如老谭改字符串常量的值),不知道他写完书有没有把书上的例子编程序试一下。还有老谭跟本就没写过或者阅读过20行以上的程序,书中的许多东西都是老谭想当然之作,有些地方想法很幼稚。所以请大家不要和这个没写过程序的人学编程了。

6:这位谭教授涉猎颇广,从C,BASIC到网页制作、Word应用可以说应有尽有,谭甚至主编过一本如何使用Windows 98的书,比如如何用画笔程序画画,也许7-11岁的孩子们会喜欢,对此我非常理解,因为这些书的发行量很大,可以赚很多钱,只是,在你决定买他的发行量达400万的《C程序设计》时,是否应该考虑一下,会不会有其它更好的选择。

7:编程风格在软件工程中影响到编写一个程序的效率,程序升级时候潜在的隐患,别人能否正确理解你的程序...等等很多方面.打个比方,一个函数void f()括号中没写void 那么根据k&r的风格它可能是有参数的,而根据美国C的风格它就是没参数的.显然不同风格对这个函数理解不同.所以void f()这种歧异风格是以后软件升级和软件管理的隐患.又好像 goto语句,任何一本外国的书都会严重警告读者不要使用.何故?因为 编写大程序时候这种原始控制流语句会破还程序的运行.当然,如果 你 学C语言只是为了考试,那么当然感觉不出goto 有何缺点,因为你只需要写几行的代码而不是真正开发程序!总之当今软件产业最大的耗费资金不是软件开发而是软件维护!如果你1年前编写的程序如果风格不好,那么可能一年后你自己想升级软件时的难度相当于重新构想该软件了!升级这软件的任务由别人来承担时这就更不用说有多难了.
谭浩强更差的地方是没有在书后给出一些编程经验和警告.这无疑使初学者学习事陪功半.对比国外好书 ,每章后面除了经验和警告外还会又系统相关性,这对于C这类系统相关语言是很有必要的.
谭浩强的书讲解也很不透彻,例如什么是头文件就 放到函数那章才提及,大概已经是 第八章了.但外国的好书都是 从一开始就讲头文件是什么,这更有助于读者理解.国外的书还特别有一章讲结构化 编程,而且是放到前五章之内.后面的章节每一个例子都是用结构化写成的.绝对不是谭那种一个main函数到尾的考试编程.在数组和指针上,谭的书是分开两章来教,而且中间隔开一章,而国外的好书是 放到同一章节中讲述,并强调它们的联系与区别.
以上列举了谭书的部分缺点.我所说的国外好书主要是我详细看过的〈C语言解释教程〉,同为入门书, 我感觉教出来的学生纵使本来一样勤奋,但素质都会截然不同.这就是中国高等教育远远不如美国的地方.说明显了就是应试性特强,不注重基础原理, 排版混乱且没特色, 软件工程与软件入门全面脱钩...等等.
   本人说夸张一点,谭这种烂人有当今的显赫威望绝对是中国的悲哀.他严重阻碍了中国软件教育事业的发展,更为可悲可叹, 这里居然有人说他
的书不错真是荒谬之极.

8:读了老谭的书,总觉得谭浩强是一个很少自己编写程序的老学究,四平八稳、中规中矩。他的书里面没有经验建议,也没有自己独到的见解,只有完全正确的规范。合适当工具书(但说起C语言工具书又有哪本书敢和K&R的《The C Programming Language 》争锋)。而国外的很多C语言书是由C语言创始者或拥有几十年经验的质深程序员编写的。这些书里更重要的是融入了作者多年的编程经验。使用了多年的C语言后,随手翻翻这些书,时常会对作者独到见解拍案叫绝、深受启发。但是看谭浩强的书,总是觉得乏味枯燥——典型的中国教材。
举一两个简单的例子:
1.运算符优先级问题
谭浩强的书只是在附录中将ANSI C里有关运算符优先级的规范抄了一遍,区区两页。当然这样最稳妥,最不会出错。
在《Pointers On C》中作者不仅详细解释了运算优先级,还分析了C语言规范中定义不清的地方,也就是告诉读者C语言中哪里存在陷阱。此外还对在各种编译器中的运算结果进行比较。可以看出作者颇费了些心思。
而在另一本书——《实用C语言编程》/《Practical C rogramming》中作者建议道:你只需要记住乘除的优先级高于加减,其它地方一律加上括号。我经历过几次对着运算符优先级表帮别人查软件BUG以后,就把这句话作为编程原则发给每个新来的人。
2.编程风格
谭浩强的书从不涉及编程风格,可能是因为C语言规范中没有这方面的规定,也可能他自己就没意识到编程风格的重要性。
而在很多入门级的编程书中常常都会单辟一章详细介绍编程风格,因为良好的编程习惯要从一开始培养。养成好习惯很难,坏习惯一学就会。
我们对刚到公司的大学毕业生做的最多的培训就是编程风格培训。因为他们常常对缩进式风格、匈牙利命名法、注释的重要性等等都一无所知。但即使这样常常也达不到效果,因为这些学生早就在学校里养成了只要能实现功能,其他都无所谓的习惯。这应该算谁的责任?
我不是说谭浩强的书不好,只是觉得国内大学里的这帮教授的实践经验太少。所以写出来的书同国外的经典书籍比起来整整差了一个档次。当然这些在刚刚接触C语言时是感觉不到的。但过了多年后才发觉以前走了不少的弯路,自己花了几年总结的经验教训,实际上在很多国外的优秀书籍里早就有了。

 

9:为什么有许多"初学者"喜欢这本书,因为这些初学者都是笨蛋,可是他们非要挤进这个行业,他们没有成为设计师的资质,永远都是IT业受人摆步的民工.他们看不懂其他书,太厚的也看不完,这本书对笨蛋来说太好了,不太厚,也不太贵,最重要的老潭让他们懂了C++不过是比C多了点东西,所以它要比C厚点.如果他们连这本都没的看,他们就没法学了.所以这本书是IT民工的圣经!!!笨蛋门,苦海无涯,回头是岸。

10:谭的书千篇一律,都是一个样,乱七八糟不知道说什么,他出的许多书的章节都是一样安排的,完全是骗钱。看看《c语言解析教程》(第四版)吧——你就会知道他和国外大师的差距了。

11:我不得不承认,我当年学习c语言的时候就使用这本书,现在看起来,里面的代码确实很不符合软件开发的标准,尤其是代码的命名根本就不符合规范,经常用什么a,b,c啊之类的,但是这本书是最先带我入门的教材,处于对自己“老师”的尊重,决定给3分,书虽然写得不好,但毕竟曾经是自己的老师。不能太过于苛求,毕竟一个年纪这么大的人能够献身于中国的计算机教育事业确实值得尊敬的,想当年计算机不这么普及的时候,那个时候最流行的语言恐怕就是basic了,可是当年谭老的Qbasic创下了2000万册记录,不得不说他也算那个时代的一个英雄,今天我们能够用这么好的高级语言来写代码的同时,不要忘记了哪些曾经用debug,为了不让磁带顺坏而天天在机房捉虫子的程序员,不要忘记我们是站在巨人的肩膀上.........

12:1.代码不规范,书中有大量类似的如下代码:
//4页
main()
{int a,b,sum;
a=123;b=456;
sum=a+b;
printf(“sum is %d\n”,sum);
}

//110页
main()
{float add();
   float a,b,c;
   scanf("%f,%f",&a,&b);
   c=add(a,b);
   printf("sum is %f",c);
   }
float add(x,y)  //过时的声明。
float x,y;
{float z;
   z=x+y;
   return (z);
   }


这样的代码规范吗??我认为应该这样:
#include 〈stdio.h〉

int main()
{
int a, b, c, sum;
a = 123;
b = 456;

sum = a + b;
printf(“sum is %d\n”,sum);

return 0;
}

#include〈stdio.h〉

float add(float, float);

int main()
{
float add();
    float a, b, c;

    scanf("%f,%f", &a, &b);
    c = add(a,b);
    printf("sum is %f",c);

return 0;
}

float add(float x, float y)
{
float z;
    z=x+y;

    return z;
}

虽然我改后的代码不是很标准,但是绝对比原书的好。
把代码写得规范是很重要的!!!!!!!!!!!

2.大量无用细节和讨论。
书中讨论了++运算符。如
k=(++i)+(++i)+(++i)
书中还说什么若i原值等于3,上式等于18,但是我在VC6.0上编译后运行是16!!!!!!!!!!!!

其实像(i++)+(i++)+(i++),(++i)+(++i)+(++i)这些表达式的结果因编译器而异,具有不可移植性况且在软件开发中根本就不用哪些表达式,比如说在linux的内核源代码中也没有用到这类表达式。

所以我认为:没有必要写上面的哪些表达式。把它们提出来,说明一下子哪类结果因编译器而异。在平时编程的时候不要用这类表达式。

很多初学C语言的人都按照书上打上去的程序都不能编译!!这就造成了初学者对C语言的恐惧。

总而言之:这本书很差!!!!真的很差。

奉劝各位初学C语言的人:把谭浩强的《C程序设计》这本烂书拿到厕所里扔掉!!!!

我推荐两本学C语言的书《C语言解析教程》(原书第4版) 麻志毅  译,《C 程序设计语言》(第二版)  徐宝文  译

最后祝大家学习愉快!!

 

13:这本书烂的可以。我举个例子,谭老在将指针时的一段代码:
void copy_string(char *from, char * to)
{
for(;*from!=‘\0‘;from++,to++)
*to=*from;
*to=‘\0‘;
}
void main()
{
char *a="I am a teacher";
char *b="You are a student.";
printf("\nstring a=%s\nstring b=%s\n",a,b);
copy_string(a,b);
printf("\nstring a=%s\nstring b=%s\n",a,b);
}
这个经典的错误早已上教科书了,可谭老师拿它说明用指针和用数组运行结果是一样的。可见谭老师根本不懂C。读过这本书的人(包括我)真是悲哀。

14:我觉的这本书根本不用说的,只要看到的都说很烂,简直就是误导人,不但错误百出,而且该详细不详细该简略的不简略,有很多地方都在无谓的细节上打转,譬如说什么运算符优先级之类的,外国老师说的好:如果你不知道,就加上括号得了。
  这本书写得很符号中国应试教育得模式,如果你看得好得,我觉得计算机二级你肯定过了,不过写程序肯定是个傻瓜。 只所以把谭捧得厉害,其实是因为学校都统一定这本书,可是大家不平得是,清华把这种烂书拿给我们一般高校当教材,自己却全部用国外原版教材,或者好得译本。。。。。。。
     除了候捷得书(他是*的),中国人写的那些计算机书简直。。。。。(不好意思说),只是客观事实,根本就是文化传统问题,外国书可以把很复杂的东西讲的很简单,但看看那些中国作者,开篇都是一些大的概念,满篇都是各种缩写,简单的也讲的复杂了。
     如果对谭还报有一点好感的朋友们,如果你们仅仅去看一本中流的外国书,我觉的你们肯定改变看法了。 就别说wrox出版社,和
hz(译本)的书了]

15:我们老师说这本子书误人子弟.
你们不要找我啊.
这是我老师说的.
他是北航计算机学院的晏海华.有事找他理论.

16:白痴一样的垃圾书
害了一批人
最近随便翻了翻,讲右移〉〉,居然大言不惭,貌似非常肯定的语气说:"右移相当于除2",我靠,稍微有点常识也不能说这样的蠢话吧?然后后面马上又含糊其词的说,对于〉〉,有些机器补0,有些机器补1,至于到底补什么,估计老谭自己都不知道。这种垃圾就应该和禁书一样封了,想我们当年上课老师还推荐这书,现在想想都觉得恶心!!什么是欺世盗名?老谭就是!!
送支鲜花支持    扔个鸡蛋反对
正在读取本评论的讨论,请稍侯……

17:错别字比第一版增加了n的n次方那么多倍,真不知道清华大学出版社的那帮人是干什么吃的。
另外,第二版增加的C++部分我觉得多余。

18:我看过的所有讲C的书中,这本绝对绝对是最差,最烂的。
写程序的风格很烂,满篇无意义的讨论。

 

19:书的内容有些老,一些内容过于专门化(但又没有讲出关键),另一些内容不是很准确。一个例子是,“Turbo C 和目前使用的多数 C 版本对这两种方法都允许使用,两种方法等价,ANSI 新标准推荐前一种方法,……”(PP. 146)两种方法并不是完全等价的:采用老方式时,编译器可能已经关闭了类型检查。

    对 C++ 的介绍没有必要,因为仅靠两章的内容根本没法说清;学习 C++ 最好避免 C 的技巧。我的观点是,C++ 与 C 应尽可能的分开。

    最后一章指出的一些错误仍是属于 K&R C 风格的;按照 16.2 节指出的步骤,一个程序似乎应该先写到纸上。难道 Unix 的源代码也是先写到纸上再录入的吗?

20:建议不要看该书,尤其不要做后面的习题,特别不要购买配套练习题。

这本书不是学习的途径,会指引你误入歧途。

真的,不是骗你。

21:我对看这本书的读者建议是:

    该书比较适合对C有点掌握的人用来做[排除错误]的练习,比如:可以通过对书中美妙“术语”的斟酌,来加深自己对计算机科学术语的理解;可以通过修改书中已书写“优良”的代码来改善自己书写代码的风格和加深对程序可读性的理解。如此等等。当然还可以有其他很多的提高,只要你肯对书中的内容大力斟酌喽。(特别注意:若你是菜鸟,就不要轻易尝试[排除错误]了。)

最后,推荐初学C和程序设计的朋友去北大裘宗燕老师的网站上看看,肯定不会让你失望的!网址如下:

http://www.math.pku.edu.cn/teachers/qiuzy/

22:跟你说我们班主任(教C语言的)的编码风格和谭的很象。。超浓缩豆腐块。我看在眼里笑在心理。哈哈。更可笑的是已经培养出好几个班上的超浓缩豆腐块。。哈哈

23:谭浩强?老朽而已,原来在清华念过书,因搞共青团工作比较卖力而留校。其实大家都清楚:这类人在大学里是很被人看不起的

24:此书“几年来发行量达270万册,创同类书发行量的全国纪录。”呜呼!那是在全国人民见不到好书的情况下出现的,是全国人民的悲哀!另外,有些教师懒惰,10年间没有换过讲稿,使得这种垃圾教材得以苟延残喘。

25:这本书里的程序代码没有用K&R格式,代码被紧贴着写在左花括号{ 的右边。Deitel父子的那本笔者本要好得多。

22:
C程序设计教程    
C How To Program Second Edition

作者: (美)H.M.DEITEL P.J.DEITEL     译者:薛万鹏等译
出版社: 机械工业出版社 ISBN:7-111-07952-3

C primer plus也行。
the C programming language 不适合初学者。

23:我是看着The C++ programming language 入门的,虽然费了很大的劲才慢慢读懂,又在后来的实践中反复阅读一些章节”。后来又翻看了一下c++ primer应该更适合入门者读。优秀的国外c++书籍现在到处都是,也有一些翻译的很好,为什么还需要这么一本垃圾。当年C语言程序设计的辉煌应该说是由当时的客观情况造成的。当时那有这么多优秀书籍。说实话,我看c语言程序设计的时候,只感觉枯燥乏味。现在想起来看这种教条垃圾只会让你编程的思想受到影响。

24:
不知道这位看没看过c++primer,书中的内容一点都不难,初学者完全可以读懂。我是从网上下载C++编程思想学的C++,应该说C++编程思想比c++primer要难,谁说初学者不能学C++primer,那本书就是面向初学者的,高级程序员用得着学C++吗。这本书之所以是垃圾不是因为它简单,是因为它的内容,一个根本就没写过程序的人,一个根本就不懂C++的人根本就不佩写书。

25:从基础学起也不能看一种错误百出的书,也不能看一个根本不懂C++的人写的书。看这本书只能给读者以误导,把初学者引向歧途。你把经典计算机的书比作四大名著并不恰当,世界上面向初学者的书并不是只有老谭会写,那些计算机书本来就是面向出学者的。对于一个刚会写字的小学生我不会让他去读四大名著,但我也不会给他推荐一本到处都是错别子的书去读。掌握面向对象的思想和掌握语法是两个概念吧,这好像没有先后顺序。另外不写软件你学C++干什么,各大高校的计算机软件系的学生学C++都是十个学的到最后有8个放弃的吧,这么不好学的东西难道也要普及吗?

26:C++是要介绍一种面向对象的编程思想,写C++的书不能只介绍语法。谭浩强这种编排方式肯定让初学者误入歧途。所以不要再说他适合出学者。外国的书也不是很难呀,C++primer就很适合初学者。“不要盲目追求什么STROUSTRUP的C++程序设计,不要盲目追求一本上千页的C++PRIMER”连这些东西你都不看,你还写什么程序?“你只要能把老谭教材上每一章后面的习题都自己做出来,你的水平就不会低了”,简直就是一个笑话,我问你老谭他进行过软件开发吗?你以为他的水平有多高呀。从这就话看的出来你根本就不懂软件,语言就是程序设计的一个工具,在软件设计中占的比重很小很小,你看完了C++ Primer,thinking in C++,the C++ programmer language等国外的经典的书只能说你懂了C++的语法,离编程还差的远了,什么算法、操作系统、协议、软件工程等你都要了解。如果真像你说的作完老谭的练习水平就不低了,那这本书真的就是世界图书史上的一个精品。

27:看了个位的评论,感慨颇多,有些人说这本书这有毛病,那有缺点,其实,很多东西谭老已经在前言里明确说明了。对于这本书,我看了一部分,也在机器上运行了书中的程序,起码没出现其他书中的代码印刷错误,起码都运行的了。谭老对本书中的程序已经做了说明,只是用来帮助读者理解c++的,并非实用的程序。有人说,这本书不全面,据我看,任何一本书都不全面,要全面的话,去看标准好了。再说,那么全,有几人能全掌握呢。大家当中国人都几十年了,有几个人能认全现代汉语词典里的字呢?说到底,中国人的毛病:好高骛远,就是不会脚踏实地。说得头头是道,干起来,一塌糊涂。

28:时势创造神话,神化蒙蔽心灵,人们已失去判断力。对老谭的崇拜来自一种惯性,来自一种思维的惰性。各个大学纷纷采用老谭的书并非他的书好的不得了,是因为以前的学习者选择不多,看老谭的书而初入C门径的,现在当他们向后学者传授C语言时,他们又选择老谭的书,原因至少有二。一是图方便,反正已轻车熟路;二是省思考,要让他们选其他的书是对他们的一种折磨,因为跳出老谭的泥潭需要彻底的改造自己,这比新学者更难。
中国的软件产业发展取决于计算机教育的发展,计算机教育的发展必须与时俱进,打破神话跳出老谭的泥潭是第一步!

29:为什么他一出来书就有人骂,书不好呢?还是有一些人看上他出的书啊!
他的书的确教育了很多人,我句话总没错吧!
这书到底那里不好了,我就不懂了。他的水平是不高的,但入门书写的如此之好,你问一下,中国又有几个呢?
中国人能做到如此也不错了,非要和外国人比,你可知道中国与美国软件水平差了差不多20年,同志。
别人是大师,他又是什么啊,他能写的这样的书,可以差不多和大师相比了。
其实大家都没错,错的只不过是眼高了一点,自大了一点。自认为自己水平如何如何,如果你认为自己水平已经达到大师级,那好,你也去出书了,看看能不能与他相比。
如何好书,希望大家都能支持一下。
其实大家都说他编程风格不好,其实中国软件业现在编程风格有几个好的啊!
中国就是这样过来,相信他也是这样过来,你说有什么办法呢?
如果被以前的思想害和深了,你说一下子改的了吗?
如果说风格好的话,我相信中国也要改变一下现状了.
中国前途也要靠这样有水平的人来出书啊!
可能风格不好,但我还是比较支持他一下的.
因为我也是学习他的书过来的,也希望大家都理解一下?
---------------一个三流学校未毕业的学生

30:跟不上时代,水平有限不是老谭的错;想赚钱也不是老谭的错;表现自己对C++所谓的“热爱”和对中国下一代年轻人才的“关心”就更不能说老谭有错了。但是,为了这些就不管三七二十一东拼西凑移花接木打造又一所谓“经典大作”来继续毒害中国广大有志青年,那就是错上加大错!!

31:差的不只是编程风格,谭浩强是个没写过程序的人,对程序了解得很少,作过程序员的人都看得出来,我就不信一个纸上谈兵的人能写出来好书。虽然我没看过这本书,但我看过他写的C我,真是错误连篇呀,我不明白一本书中为什么会有这么多的错误,有些东西初学者都不会犯。一个连C都不懂的人怎么能写好C++。

32:
“中国人能做到如此也不错了,非要和外国人比,你可知道中国与美国软件水平差了差不多20年,同志。”
——如果不跟老外比,那么我们与老外的水平将会差得越来越多。正因为我们差,所以才要学习外国经验!看来*同志的改革做得不好,因为还有你这种人一心一意将井底之蛙做到底。
“自认为自己水平如何如何,如果你认为自己水平已经达到大师级,那好,你也去出书了,看看能不能与他相比。”
——首先,只要会抄,相信很多人都不比他差,即使一个本科生,但是一个无名小卒的书,也不会有人出的。其次,即使水平差的人就不能说吗?没吃过猪肉还没见过猪跑?你去饭店吃饭,菜很难吃,你不抱怨?无论怎么样,他们做的菜比多数人是要好吃的,但是难吃还是难吃,知道吗?
“他的书的确教育了很多人,我句话总没错吧!”
——这句话没错,但是只是时势造人,*说了,要与时俱进。怎么还能停留在20年前的水平?既然如今有更好的书出来,为什么不学习?为什么还让写得不好的人继续出书,浪费资源?

33:谭老师对中国计算机的普级的确做出很大的贡献。
但是我看过谭老师的C语言程序设计。与the c programming language 比起来。真的是差的太远了。从编程的思想,代码的风格来说真的是十分的糟糕。要想真正的成为一名程序员还是不要看谭的书为好。因为养成坏的习惯,后来你发现也很难改正过来了的。
如果是C++的初学者,还是得具有一定的C的基础知识吧。
以偶个人的经验介绍两本C和C++的入门书吧。
C入门书。
The c programming language 机械工来出版社。绝对经典。例子也相当的经典。代码风格良好。
C++入门书
C++ primer plus 电力出版社。真正的大师作品,把原来我模棱两可的东西一下子就说清楚了。

与国人的书对比。国人的书往往都是结构化,条理比较清楚。先给出定义,结果。等。再分析。例子也不是很经典。对系统及编程思想不注生。代码风格差。让人养成很不好的习惯。

国外大师的书,往往是娓娓道来,真正的深入浅出。使你进入其中,慢慢的品偿。等你读完书了。感觉自己也提高了很多。一些比较难的东西,几段文字都让你明白。虽然有些国外书翻译不是很尽人意。但是我们的要求不要太高了。虽然有一些小小的错误。这些很难免的。只要我们知道这是一个错误就行了。

以上是整理别人的言论,请大家踊跃讨论!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

34:这本书大部分都是学校用它,既然学校愿意用肯定有很多原因在其中的。我接触编程就是看谭老师的书。虽然现在感觉他写的并不怎么好。但是在那时还是很读了一阵子的,现在回过头说它好与坏意义不大。
真正想说的是,如果是要应付学校的考试,那么你就读它。
如果是想真正的学会实际上的编程,而你现在还没有入门,在找入门书,那么就看primer比较好一些。

35:请问谭老学习教学程序设计语言这么多年,搞过软件开发吗?举几个例子让大家信服一下.我记得DOS下的程序设计语言您都写遍了,凭清华大学学生会主席这个称号,应该是有水平的,对我们国家计算机的普及确实起了不少作用.但BASIC发行了1200万册,C发行了300万册,看了这些书的人有几个真正在搞软件的?!有几个生活中在起作用的?这不能不是我们教育的悲哀!如果没有一定的高度和经验来教学程序设计语言,一切都是空谈!一句话,没有体现与时俱进!大家扔鸡蛋吧!我是看着他的书入门的,也考过了计算机四级,但现在站在高端来看,您老人家实在应该休息了!应该向王选院士学习一下!

36:是什么原因造就了老谭的书的发行量神话?
是当时落后的教育*和出版*, 其中包括荒唐的非专业学生要考有编程内容的等级考试, 还有职称考试等.
这些现像现在还在,而且还会长期存在. 所以老谭的书还会继续风光.

但是如果你的目标是成为职业程序员的话, 从目前的现状来说, 已经有了那么多的引进书籍, 没有任何必要看他的书, 如果你认为他的书是你觉得最好的入门的书, 只能说明你的思维还不适合编程.

37:老谭的书看了你会养成一 些改不掉的烂毛病 例如 变量命名 i j k ;

38:谭老的C误人子弟,本来就已经贻害多年,该好好清算一下了。非常奇怪为何时至今日,已经有诸多好书可选(机工出的Kernighan新译本现在已经相当不错了,其他的选择也很多,比如Deitel,Schildt),还有这么多人捧臭脚而不知醒悟。一本讲C的充满错误(一上来就说C的数据类型有整型和实型……,弄得国内更多更卑劣的抄袭之作也谭云而亦云,你在哪个版本的C语言标准中见过real这样的类型?显然是老谭当年自学的时候从Fortran移花接木而来)和问题(书中的编程风格问题对工程实践培养简直是一种灾难)的过气教材居然还能每年卖几十万,真是可悲啊!我很怀疑这后面有许多庸师因为没有能力或者懒于更换教材,于是继续参与这场误人子弟的大罪恶,一年就有几十万人受害!另一方面,每年还有这么多人学C,也是让人奇怪的事情。据我所知,有不少学校无论专业为何,都一刀切地开C语言课程,实在想不出一个文科生学了C语言能干什么。

而今,老谭又出手了。近年来老谭组了一个工作室,似乎是要把“品牌”转化为规模,这倒也无可厚非,这年头大家都要挣钱嘛。我曾经以为老谭还有自知之明,不会写自己不可能精通的C++,不料,我错了。

看看这本书吧。老谭在前言里声称:“(写书前)调查了我国大学的程序设计课程的现状和发展趋势,了解了国内外C++的教学和使用情况,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律,并且参阅了国内外数十种有关C++的教材”。

既然调查了发展趋势,至少应该知道Stroustrup将C++作为一门新语言来学习(Learning C++ as a new language)的提倡吧,至少应该知道在C语言的基础上教和学C++,是目前病毒横行、缓冲区溢出等漏洞防不胜防的源头吧,至少应该知道C++中早就建议不用宏、数组和C风格的字符串了吧(Stroustrup标准著作中文版的第13页就是“给C程序员的建议”,总共不过5条,老谭既然从C改版到C++,至少应该把这几行字读上几遍吧);参阅数十种,应该至少包括Stroustrup、Stan Lippman、Koenig&Moo、Deitel和Ivar Horton的作品吧。

可是,这本书前7章几乎就是老谭代表作C语言的翻版:还在大讲其getchar/putchar,scanf/printf!还在大讲其数组(用了整整一章)!不知道辛辛苦苦、穷经皓首、精心开发string等等标准库、不断谆谆教导世人要采用良好编程风格的C++先驱们,知道世界人口最多的国度里,最知名最具代表性的所谓计算机教育家,居然这样教人C++,会做何想法?

中国的权威,可以休矣!

39:我的第一门语言就是潭XX的,BASIC程序设计,但是真是兴奋啊。。
结果接触了,其他的著作后发现,原来以前看的只不过是玩具而已,但是大部分思维方式已经习惯了,改起来真的很吃力!!潭XX你以为你换了一个书的包装就认不出你啦!普及教育?你不要害了下面一代哦!!

40:10年前无书可读的时候,老谭的书不看不行,那时老谭确实起到很大促进作用;现在出版业相对过去发达多了,各种外版书相继引进,再看老谭的书就落伍了。个人认为,老谭应该退出历史舞台,他该做的早已完成,中国的计算机教育应该全盘西化!

41:今天在书店翻了一下,全书共480多页,其中前230页讲的是面向过程的程序设计。这本书从头到尾没提到STL和GP一个字.
既然是谭浩强出的,那么也许今后大学c++的课程都会拿他做教材了,而一些初学程序设计的人也许也会因为仰慕作者大名而用这本入门吧。
唉……

42:我们学校大一下开的就是C++,用的是钱能的教材,感觉差强人意,入门也凑合了,后来在CSDN上的大牛们的推荐下看了国外的教材,感觉都写的太好了,每本C++的书都有自己的特点,〈C++ PRIMER〉是我最喜欢的一本书.
C语言方面的东西后来也有接触,感觉上潭浩强先生的书写的真的不是很好,变量命名感觉就很业余,讲来讲去就那几个算法的例子,看的人头大.本来C++的好书基本上在中国都可以买到了,不知道他老人家为什么还要来参合.而且出手的东西还是那么烂,好象非要搞个有中国特色的C++,PRINTF一大堆.
这本书出来了,估计又会大卖,创造个什么销售奇迹,我想这本书要是拿到国外去卖,估计销量顶多个位数.

43:我是一名学生,也是地地道道的新手。一年前学校里教C,用的就是谭老的经典名著。可以说那个学期从一开始我就是抱着一个菜鸟对编程极大的向往和激动的心理想去好好学好这门课,直到那学期结束的时候,我才发现一个学期用心学习谭老经典的努力换来的并不是我想要的结果。即使最后的考试得到了应该说很不错的分数,然而我茫然觉得一句句的教条和一条条简单的语句除了可以帮助我答对考试中所有的填空题和选择题外,却甚至让我对一些看似很简单的实际编程都觉得无从下手。我想,或许我真的不适合编程这条路。
    今年,不安分的我拿起了一本老外的C++。当然,短短时间学到的只是最粗浅的一点点皮毛,但是,老外的书给了我与从前截然不同的学习体验。从第一章开始就注重实际的编程,而淡化那些只在考试里有用的条条杠杠。学过之后,确实可以编写一些简单的东西了。我深深体会到:这才是编程,这又重新激发起我对编程的向往,至少,我有了继续学习的动力……
    这样的事情也许只是包括我在内的个别现象,但是,就我自己而言,我不敢再看谭老的书了。至少他的书不适合我这个入门者,因为我并不是为了考试得高分才学习这些知识的,我真心希望我学到的对我的将来真正有用。
    以上是我的个人看法。另有一点当作玩笑话,我和我的同学都觉得谭老绝对是世界信息技术界最了不起的人物,这么大年纪却精通如此繁多种数的语言,并且仍然可以继续精通更多的语言回头来诲人不倦,实在让人敬佩不已。

44:靠,书皮儿整的跟《思想道德建设》差不多。小样,新来的吧。

45:这本书我看了目录,浏览了一下内文,没有什么感觉,因为在我的阅读体验里面,谭浩强爷爷无论阐述什么语言,都是用他过去讲BASIC的手法来完成的。
语言设计师的设计思想出发点、语言设施的特色以及由来、语言功能优缺点,从谭浩强爷爷的书里面全然见不到。
在这本书中,既看不到对语言特色的强调(Essential C++,Stanley Lippman),又看不到实践性很强、富含经验之谈的范例演练(Accelerated C++,Andrew Koenig),看不到详实细致的整理和深入浅出的阐释(C++ Primer,Stanley Lippman),更看不到深度的本质阐述(TCPPPL,Bjarne Stroustrup)。
习惯谭浩强爷爷BASIC/C语言书的人恐怕会喜欢这本C++书。
这是一本能让人知其然,不能让人知其所以然的书,这也正是不少国产基础教本与国外基础教本最本质、最能体现基础教育水平差距的特色。

 

转载自http://blog.163.com/cheng_zhe511@126/blog/static/228583012007101612258378/

关于c语言学习 谭浩强的书,布布扣,bubuko.com

关于c语言学习 谭浩强的书

上一篇:Python Special Syntax 7:继承


下一篇:WPF自定义控件数据绑定出现的问题