学习啦>学习方法>通用学习方法>学习经验>

如何学好C语言

时间: 威敏1027 分享

  如何学好C语言,下面学习啦小编整理一篇关于怎样学好C语言的文章,希望可以对一些迷惘的同学一丝帮助。

  一:

  现在大一上学期应该只学一门专业课,除了数学与英语课之外,还是有很多的业余时间的,抽出一小部分去了解一些计算机的文化吧。举个例子吧,比如计算”机科学之父”,艾伦.图灵的生平啊什么的,了解一下他是如何以一个数学家的身份去首次提出图灵思想的,再比如他是如何创造性的提出“机器可以思考吗”这样子的论文而开创了AI的先河的。

  这是说了一个人物的了解吧,再比如你可以去了解一下计算机的发展历史啊,比如第一台计算机是在1946年诞生于美国的宾夕法尼亚大学的;再或是去了解一下你们的C语言的发展史,等等等等,这些东西没有必要刻意的去看,兴趣来了偶尔去百度一下子,会开阔一下见识与思维的,而且还可以增加自己对相关领域的兴趣程度。

  这些知识如果要系统的细看的话,可以去看<计算机导论>,或是<计算机科学概论>这两本书讲的是比较系统的,都是简单的提一下计算机科学体系吧,没有深入的讲解部分。

  二:

  计算机科学知识的学习是最注重循序渐进的,注重基础的,万万不可跳跃性的学习,当然你是天才或是个别的话我只能膜拜了,至少我是一步一个脚印学过来的。我们不讨论哪一门语言才适合做大学计算机相关专业的第一门编程课的问题,我们是C语言,也听说很多学校都是以C语言为第一门编程语言对待的,我想大部分都是吧。那我们就把C语言尽自己的最大努力学好吧,有一些学弟学妹会问一些问题,自己不会敲代码怎么办?还有人会说能看懂别人写的代码,但是自己就是敲不出来。

  这些问题我曾经也遇到过吧,首先要明确一个观念:C语言不难学,一点都不难学。这门课程不需要那么多的动脑筋的地方,就我感觉还没有数学难呢,当然这仅仅是一孔之见吧。入门一个语言最重要的是要选择一本好书,一本能够以最简单的描述来表达出基本知识的书,我想很多国内的首学C的人会选择谭老的C吧,我当时也不例外,因为毕竟是国人写的书,在问题描述与问题展开与循序讲解的过程中透漏的思考问题的方式都是符合国人思考方式的,所以易于理解吧,当然如果喜欢读外国的名著当然也是可以的,比如C之父的<C Programing Language>,这当然是传世经典之作了。

  还要明确一个观念是:谭老的书仅仅是作为一个最基本语法的讲解书,看完谭老的书后确实会把很多语法细节学到,但是这也仅仅是语法,只能保证你会用这些语法了,你是知其然而不知其所以然。看完谭老的书后最好把<C Programing Language>这本书看看,而且更要仔细的看,这个时候有了基础后看起来会轻松一些的,会发现有很多原理性的讲解了,而且会有一些谭老书中讲不到的细节。看完了<C Programing Language>后会有一种小小的豁然开朗吧。

  以上说的看书,过程应该是这样子的:看基本语法,看书上的例题,试着自己去敲一遍例题,即使你看懂了例题,但是让你合上书自己敲,我保证还是会出错的,肯定是某些地方理解的不够透彻,再看书,然后再敲,直到无误的敲出为止。慢慢的经过一段时间的坚持练习,会发现自己合上书后敲的时候错误越来越少了。然后是做课后的习题,最开始看懂例题去敲书后习题也是很难下手的,但是要尝试,第二次写习题就不会那么纠结了。编程容不得一点的掺假,必须要动手去敲代码,而且还要准确无误的敲出来。不可手写而不去上机验证。

  还有就是培养一个习惯:先思考清楚问题,然后再去敲代码。因为我们敲代码仅仅是为了用程序设计语言把我们人的思维转换成了计算机可理解的方式了而已。有的同学会看完题目不思考就直接敲,发现总是会出一些错误,然后在那苦逼的各种改啊调试啊等等,这样子不是一个好的编程习惯。

  三:

  认真的看书,做练习题,敲代码。这样子下来一个学期完全可以把C语言学好的,一般性的题目是没问题的。学习了程序设计语言后会发现我们的思维在慢慢的转变,我们思考问题的方式也在更加的严谨了,这是学习编程的结果。

  如果有兴趣的话可以考虑进阶了,去学习<C与指针>,<C专家编程>吧,这两本书会介绍很多在课程老师讲不到的,在一般性的书上看不到的。更多的是站在编译器的角度去看待代码,看待基本的语法了。比如编译器如何编译语言并生成可执行二进制文件的?这个编译的过程是怎样的?编译器又是如何奖产生的.exe文件交给CPU执行的?一个基本语法的规则背后肯定是和编译器的某一项工作原理是契合的,举个例子吧:大家都知道的函数中的普通变量是在函数的调用结束后悔自动销毁的,而我们在函数中定义的静态变量,也就是用static修饰的类型变量,他的内存空间在函数调用结束后是不会销毁的,这是为什么呢?这是因为编译器为我们的程序分配的内存进行了一个分类,把不同类型的变量分门别类的存储,这样子便于管理。至于变量内存空间销毁与否的区别就不在这细说了。当然两本进阶的书我是当时没有看,也是后面的学习中翻了翻的。

  四:

  最后不得不说的是,还要把数学学好,这个好并不是要投入很多的精力在上面,但最起码你要能独立写得出习题,考试不要分太低吧。计算机科学还是很依赖数学的,毕竟图灵与冯诺依曼两位大师都是数学家出身呢。数学更多的是培养一个思考问题的方式吧,通过做一些习题是很锻炼自己对问题的认识与整体把握的。

2664087