c语言学习方法

上传人:lc****zq 文档编号:45029342 上传时间:2018-06-14 格式:DOC 页数:4 大小:30.50KB
返回 下载 相关 举报
c语言学习方法_第1页
第1页 / 共4页
c语言学习方法_第2页
第2页 / 共4页
c语言学习方法_第3页
第3页 / 共4页
c语言学习方法_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言学习方法》由会员分享,可在线阅读,更多相关《c语言学习方法(4页珍藏版)》请在金锄头文库上搜索。

1、千万不要把自己陷到 TC2 里面,把路子走得宽一些, VC 、 gcc 、 Dev-C+ 、 Eclipse ,广阔天地,精彩无限。 经典书籍要读,手册和在线文档要经常查, Internet 更是提供了接触最新知识的机会。这 里推荐两个网站: http:/ 和 http:/ (注:站长另谋新欢, 此站已关) 。后者是一名哈工大的学生在大四时创办的,以钻研深层技术为目标,被一位微 软的员工评论为 “ 牛人处处有, PureC 特别多 ” 。但真正能把全世界的牛人集中在一起 的地方是 Newsgroup : news:/comp.lang.c 。如果你不知道 Newsgroup 是什么,就马上 去

2、搜索引擎找答案吧( http:/ 是一个适合新手的 Newsgroup 入口) 。搜 索引擎是最重要得知识来源,首推 。可惜工大校园内的机房基本都不能出国 访问,所以 也勉为其难地不得不用一下,尽管它搜出信息的可用性和可信性都 差一些。在此特别说明一下,英文阅读能力十分重要,别回避英文信息,因为总会有你不 能回避的那一天。硬着头皮冲上去,很快你就会发现读英文比读中文快乐很多。 转自 哈尔滨工业大学 计算机语言基础教研室 孙志岗 题记:本来题目想叫做 “ 从 C 到无穷大 ” ,太晦涩了。后来又想用 “C 、 D 、 E 、 F” ,太不知所云了。于是,用了这个题目,它的缩写恰好就是 CDE

3、F 。不管用什么样的题目,我所想表达的都一个意思,那就是 C 语言课程结束以后,我们该干什么。我们都学过很多课程,每门课程都有大纲,有教材。严格按照大纲学习,把教材烂熟于胸,这是一贯的学习策略,并靠此斩落考试无数,一路杀入大学。如果你学习 C 语言的目的仅仅是为了期末考试,至多再加上一个 “ 二级 ” ,那么请不要再继续阅读本文,因为后面的文字只会给你带来负面作用。一门真正的大学课程的学习应该是永无止境的,没有任何机构可以给它划个框框说哪些该学哪些不用学,也不会有任何教材能解答你未来会遇到的所有疑问。本文仅希望帮助那些热爱编程,并把编程当作未来旅程中不可缺少的元素的同学。帮助大家把 C 作为一

4、个起点,去开拓无尽的未来。怎样学会怎样学会 CC 是永远学不会的!是永远学不会的!仅从语法上说, C 可能是所有高级语言中最简单的,最常用的关键字不会超过 30 个,语法规则也不复杂,没有需要死记硬背的 “ 习惯用法 ” 。如果 C 语言就像英语一样只是单词、语法,那么课程结束后所有人都可以说学会 C 了。每种自然语言都能用简单的文字与语法来描述复杂的大观世界,但并不是每个人都可以像爱因斯坦、霍金、马克思、李白、金庸等等那样用语言表达出令人景仰的内容。即便与你身边的人相比较,同样说汉语的你们也很难对同一个事物说出完全一样的观点。 C 语言亦然。它是一个语言工具,通过这个工具,我们表达我们对世界

5、的理解,或者具体说,对程序的看法。眼界与思维直接影响着我们写下代码的漂亮程度。如果以总能写下漂亮代码作为学会 C 语言的判断标准的话,那么因为眼界与思维的锻炼是无止境的,所以 C 是永远学不会的,就像我们都还没有真正学会汉语一样。既然 C 有那么多可学的内容,那么我们该学什么呢?学学 C 学什么学什么学 C 的目的并不在于要学会 C ,否则就太狭隘了。我们要利用学习 C 的机会,拓展自己的眼界与思维,锻炼能力,成为世界(包括计算机世界、编程世界)的主宰,而不是 C 语言的奴隶。第一学学习第一学学习“ 学习 ” 是一个主动创造的过程而非被动接受。真正的学习需要主动去寻求广泛的知识,跟踪最新进展,

6、综合思考判断各方观点,动手实践检验,进而形成自己的观点,再将其传播出去。 C 语言的学习也符合这个规律。经典书籍要读,手册和在线文档要经常查, Internet 更是提供了接触最新知识的机会。这里推荐两个网站: http:/ 和 http:/ (注:站长另谋新欢,此站已关) 。后者是一名哈工大的学生在大四时创办的,以钻研深层技术为目标,被一位微软的员工评论为 “ 牛人处处有, PureC 特别多 ” 。但真正能把全世界的牛人集中在一起的地方是 Newsgroup : news:/comp.lang.c 。如果你不知道 Newsgroup 是什么,就马上去搜索引擎找答案吧( http:/ 是一个

7、适合新手的 Newsgroup 入口) 。搜索引擎是最重要得知识来源,首推 。可惜工大校园内的机房基本都不能出国访问,所以 也勉为其难地不得不用一下,尽管它搜出信息的可用性和可信性都差一些。在此特别说明一下,英文阅读能力十分重要,别回避英文信息,因为总会有你不能回避的那一天。硬着头皮冲上去,很快你就会发现读英文比读中文快乐很多。如果对学到的知识一概接受,那就无趣了。当阅读范围扩张,会发现即便是权威的观点也会有很多矛盾,也会看到总有所谓 “ 真理 ” 被推翻。所以,带着 “ 怀疑 ” 的态度去阅读,可能更有利于习惯背书的中国学生开拓思维。 C 语言中就有很多历史悬案,喋喋不休地争论至今没有结

8、果,比如缩进该用空格还是 Tab , “” 是否该单列一行 。一定要有自己的观点, “ 尽信书不如无书 ” 吗。学编程,上机的重要性远远大于看书。亲自动手编程序的学习效果比干啃书本要好上 0xFFFFFFFF 倍。上机不要就是敲书上的例子,那只能锻炼出打字员。干点儿有挑战性的事情,比如编个小游戏,做个恶作剧程序,更可以考虑开发共享软件。如果你感到无从着手,那就下载别人的源代码看。同时,千万不要把自己陷到 TC2 里面,把路子走得宽一些, VC 、 gcc 、 Dev-C+ 、 Eclipse ,广阔天地,精彩无限。第二学计算机第二学计算机除了 C+ ,再很难找到别的高级语言像 C 这样与计算机

9、如此接近。只有懂得了 C 语言与计算机的内在原理,才可能轻松、快乐地驾驭 C 。课堂教学能教会你类型、选择、循环、输入输出等,我喜欢称他们为 C 语言的 “ 毛尖 ” ,也就是连 “ 皮毛 ” 都没接触到。当每写下一行代码,不仅能想象到它的执行效果,更能熟知它将给 CPU 、内存和各种计算机设备带来什么时,那种感觉是非常奇妙且令人激动的。这种情况下,你才能感觉到你真正地是在驾驭 C ,用 C 来做一切你想做的事情,而不是在 C 的束缚下蹩手蹩脚地应付各种莫名其妙的问题。为了找到这种感觉,就不要满足于课堂与一本教材,更不要迷信非专业人士捧出的经典。现在我们有如此好的机会可以接触众多的世界级大师、

10、小师的著作,那么就应该抓住机会去直接与它们对话。下面介绍一些适合于入门的顶级教材。 Deitel94 已经出了第四版,不过国内只能买到第二版,它是一本可以把你引上程序设计的正路的书。 Prata04 的作者写了一系列 “Primer” 书,本本经典,数次升级,内容充实。 Kelley97 也是一本经典教材,它的最大好处是没有中文版,可以强迫你用英语去思考。 Roberts94 非常另类,作者是斯坦福大学的计算机系的资深教授,著名的学院派计算机教育专家。它的书教的是编程,而不是 C 语言( scanf() 在 539 页第一次出现) ,所以如果你想学习上乘的编程技术,这本书是非常好的入门读物,但

11、如果想学精深的 C 语言,它就帮不上忙了。 Harbison02 是 “ 大全 ” 型的,可能是唯一一个为了随时翻阅而值得收藏的书,所以它不是一个入门书,但当作初学者的辅助参考书非常的不错。课程结束以后,首先要撕烂教材(没错,就是作者里有我名字的那本。撕烂了扔掉,总比让我频频在旧书市看到它更好过一些) ,然后马上去拜读 Kernighan88 。这本由 C 语言的设计者所著的书用极其简练却精确的文字描述着 C ,每次捧卷都能让人对 C 语言的理解更提高一层。如果想获得绝对精确的信息,除了看 C99 别无选择,虽然 C99 很难看。进而可以阅读 Kernighan99 和 Linden94 来提

12、高自己的实际编程能力、扩大见识。前者偏重于技巧与数据结构,后者偏重于经验与原理,尤其是后者还能让你发现原来编程是天底下最有趣的事情。当随着编程量的增加,你犯的错误也越来越多的时候,找来 Maguire93 ,成为 bug 终结者。如果通过学习 C 语言你对计算机的深层原理产生了浓厚的兴趣,那么就看 Bryant02 吧。此外还有一本专门 “ 贬 ”C 语言的书 Koenig89 ,也值得一看。这些书的作者兢兢业业地完成本职工作之余,还把很多相关但不在本书论述范围的内容以参考文献的形式推荐给读者。从参考文献出发,你可以发现更多值得品味的。国人原创的技术书籍虽然不比老外经典,但也有其价值,间或冒个

13、精品。这里推荐一本 林锐 03 ,它论厚重自然不比大师的书,但颇有特点,挺无厘头的,一些即兴的感慨也给编程添加了点点人情味。第三学数学第三学数学我学生阶段最大的憾事就是在本科时不仅没认识到数学的重要性,还对它产生了极其错误的看法,以至于今天一见到数学好的人就景仰得不敢抬头,自惭形秽。当初未遇名师指点,落此下场也算生不逢时。今以我的惨痛遭遇告诫大家,数学真的是百科之母,必须用精力好好孝敬。想体会数学的奇妙及现实、数学与 C 语言的完美结合,就到 http:/ 去在线做题吧。数学在程序设计中被具体化为算法与数据结构,关于它们的书我读的不多,下面的介绍更多的是参考别人的评论而不是我个人的观点。数据结

14、构比较简单,也应该先学习,建议看 Weiss96 ,然后过渡到算法。算法领域里就林林总总彩旗飘飘了, Cormen01 可能是一个很合适的入口,它帮你总览算法,寻找自己感兴趣的领域再继续找别的书籍深入下去。算法领域里最重要的书是 Knuth98 ,非常经典,也非常大部头的三卷本,也非常贵,任何一个能读完哪怕其中一卷的人都足以令人景仰。我现在还只能把它们供奉到书架上。C 以后学什么?以后学什么?虽然 C 永远学不完,但绝不能抱 C 守缺。事实上,前面所述的很多内容已经不是 C 语言的范畴了,它们应该属于用计算机解决实际问题的技术。那么回到语言本身, C 可能是大多数同学学习的第一种计算机语言,但

15、它不应该是最后一种。计算机这个人类发明的最伟大的工具是每个人都无法回避的,随身带几种计算机语言,是潇洒走天下的一个有力保证。诚然说,考试过后还能再用上 C 的人是少数,但能不再编程的人在工科院校里还是很珍稀的。 C 语言强大,号称无所不能,可它并不是解决所有问题的最佳选择。没有任何一种语言可以包打天下,它们都有自己擅长的领域和不擅长的方向。我们必须要针对自己的领域特色选择一种或几种最适合的语言来自学,同时也不需担心学习 C 语言的历程会白费,因为语言之间的 “ 形 ” 虽然不同,但 “ 神 ” 都是相通的。本文第二部分里建议大家学习的内容里很多就是这 “ 神 ” 的一部分。能够超脱语言去思考程序设计的问题,才是真正的领会了编程的要旨。能把自己的思想用语言行云流水地表达出来,才是真正的编程高手。参考文献参考文献注:括号内的书名是英文原名。斜体字的 “ 中 ” 表示有中文版, “ 英 ” 表示有英文影印版, “E” 表示有英文电子版, “ 电 ” 表示有中文电子版(不包括超星格式) ,有删除线的表示该版本已绝版。请不要向我要索要电子版,并且大部分电子版属于盗版,慎重下载。同时因为世界总在变化,我不能保证你读到此文时这些信息依然有效。Deitel94 H. M. Deitel , C 程序设计教程( C How to Program ) 第二版,中。书中错误不少,不

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号