vlambda博客
学习文章列表

C语言学习—给学习C语言初学者的建议

C语言是一门“古老”而又很有前途的计算机编程语言。

近十年来,它在编程语言排行榜(TIOBE)稳居前三。因此,C语言绝对是值得初学者学习的一门语言。笔者从事C语言教学十多年的经验来看,有以下一些建议可供C语言初学者参考与借鉴。

C语言学习—给学习C语言初学者的建议

(1)保持好奇心

这是一个现实的问题,如果你是非计算机专业的大学生,大部分人对C语言是恐惧的,因为(挂科率高)你懂得……。而如果你是小学生或初中生,倒也不用担心,因为你们的勇气和好奇心都比大学生强大很多。当然,无论是谁,保持好奇心是你学习不断前进的永恒动力。

2)掌握有效的学习方法

C语言是一门公认的不易入门的语言(否则也不会那么多大学生“惨叫”了^_^),因为涉及的内容比较多( 特别是语法繁多 )。从这么多年的教学实践来看,传统教学和学习存在一些问题。

千万不要一看到英文就头大,尽管我也是这样,并不是看不懂(毕竟也接受过CET4、6级哑巴英语的教育,还是能看懂的)。man的帮助是最好的教材并且很多国外的论坛对技术的描述是很清楚的,也是很简单的,更重要的是,你会在上面看到些在国内论坛上看不到的东西(计算机的技术一直都是由西方向东方传递,希望有朝一日老外都到我们中国的论坛上来寻找技术资料)。

如果你想学习C/C语言可以来这个群,首先是330,中间是859,最后是766,里面可以学习和交流,也有资料可以下载。

目前,我们高校也在进行C语言教学方式的改革,概括起来几个阶段:

(a) 理解和体验阶段

阅读和理解现有的程序,一般是教材资料的程序,每个程序都必须亲手打一遍。在输入代码的同时,一定要了解每一个语句的意义和运算符号的意义。

(b) 修改阶段:

完成了第一阶段的学习后(一般2-4节课),开始根据给定的源代码进行简单的修改,这个阶段可以实现一点点自己的想法,同时也能将相关的语法掌握的更加熟练。

(c) 模仿阶段:

当我们可以进行简单修改代码后,可以尝试模仿现有程序的代码,编写自己的代码,比如,我们学会了求解梯形面积的程序后,我们可以编写求解三角形的面积。

此时的模仿,不仅仅是模仿代码结构,还需要模仿问题的分析方法,有数学问题,也有实际生活问题,这也是初步培养逻辑思维和计算思维的过程。

(d) 独立阅读代码阶段

在编写程序之前,阅读现有的程序,可以提高程序的理解能力,学会其他人编写程序的思想,也可以是同学的程序,找出同学程序的错误或不同写法,都是很好的学习编程的方式。

(e) 独立分析问题阶段

这个阶段和第4阶段同时进行,独立分析问题就是将现实的问题运用计算思维去解决,即通过问题分解、模块划分、算法设计和代码编写,最后调试程序。

在学习过程中,需要注意的是:

  1. 不要过分纠结于语法细节

  2. 程序逻辑分析问题;

    在编写代码的过程中逐步掌握语法规则。

  3. 调试代码的时候,需要了解程序的问题边界

    例如数据的适用范围,在调试过程中,需要将各种边界数据进行输入,观察程序结果是否正确,进行相应的修改。

(3) 学习的主要内容

C语言的主要内容有以下8个方面:

内容

难度

基本语法

数组

★★

函数

★★★

结构体

★★

程序结构

★★★

指针

★★★★★

编译预处理

★★

文件

★★★★★

根据学习层次和要求的不同,课程内容的范围和难度会有所不同。一般以培养逻辑思维计算思维为主的入门学习者,主要集中在基本语法程序结构数组函数结构体

对于高阶的学习者还会包括其他几个方面,特别是指针的学习难度较大,入门不太容易,但是指针是C语言的精华,有人说“不学指针,等于没有学C语言”。

(4)应用C语言

掌握C语言的基本程序编写方法并不难,难得是如何使用C语言解决问题。这是个很大的话题,总的来说还需要学习数据结构,掌握常规的算法,然后和不同的应用领域结合编写所需的程序,程序员根据程序要求,需要对开发的领域比较了解。例如,开发嵌入式程序就需要了解对应的硬件接口功能。

如果只是培养自身的编程逻辑,计算思维,那么可以结合具体的领域,运用程序设计思想分析具体问题。既然是一种思维,它必定是个人综合能力的潜在组成部分。

不学C语言,可能你不会有什么损失;但是,学了C语言,你必将有所收获,或许还会收获适应未来数字世界的金钥匙。所以,请你保持好奇心,使用良好的学习方法坚持学,C语言将不会是障碍!

我说的简单,其实我提到的每本书至少都够你研究很长时间的,所以希望初学者别着急不骄不躁,相信只要努力过,一定会成为高手的。

在写代码的时候大家要注意养成好的代码习惯和风格还有抽象能力。

借用乔布斯的话来鼓励大学生朋友们:Stay Hungry , Stay Foolish