C语言是一门“古老”而又很有前途的计算机编程语言。
近十年来,它在编程语言排行榜(TIOBE)稳居前三。因此,C语言绝对是值得初学者学习的一门语言。笔者从事C语言教学十多年的经验来看,有以下一些建议可供C语言初学者参考与借鉴。
(1)保持好奇心
这是一个现实的问题,如果你是非计算机专业的大学生,大部分人对C语言是恐惧的,因为(挂科率高)你懂得……。而如果你是小学生或初中生,倒也不用担心,因为你们的勇气和好奇心都比大学生强大很多。当然,无论是谁,保持好奇心是你学习不断前进的永恒动力。
2)掌握有效的学习方法
C语言是一门公认的不易入门的语言(否则也不会那么多大学生“惨叫”了^_^),因为涉及的内容比较多( 特别是语法繁多 )。从这么多年的教学实践来看,传统教学和学习存在一些问题。
千万不要一看到英文就头大,尽管我也是这样,并不是看不懂(毕竟也接受过CET4、6级哑巴英语的教育,还是能看懂的)。man的帮助是最好的教材并且很多国外的论坛对技术的描述是很清楚的,也是很简单的,更重要的是,你会在上面看到些在国内论坛上看不到的东西(计算机的技术一直都是由西方向东方传递,希望有朝一日老外都到我们中国的论坛上来寻找技术资料)。
如果你想学习C/C语言可以来这个群,首先是330,中间是859,最后是766,里面可以学习和交流,也有资料可以下载。
目前,我们高校也在进行C语言教学方式的改革,概括起来几个阶段:
(a) 理解和体验阶段
阅读和理解现有的程序,一般是教材资料的程序,每个程序都必须亲手打一遍。在输入代码的同时,一定要了解每一个语句的意义和运算符号的意义。
(b) 修改阶段:
完成了第一阶段的学习后(一般2-4节课),开始根据给定的源代码进行简单的修改,这个阶段可以实现一点点自己的想法,同时也能将相关的语法掌握的更加熟练。
(c) 模仿阶段:
当我们可以进行简单修改代码后,可以尝试模仿现有程序的代码,编写自己的代码,比如,我们学会了求解梯形面积的程序后,我们可以编写求解三角形的面积。
此时的模仿,不仅仅是模仿代码结构,还需要模仿问题的分析方法,有数学问题,也有实际生活问题,这也是初步培养逻辑思维和计算思维的过程。
(d) 独立阅读代码阶段
在编写程序之前,阅读现有的程序,可以提高程序的理解能力,学会其他人编写程序的思想,也可以是同学的程序,找出同学程序的错误或不同写法,都是很好的学习编程的方式。
(e) 独立分析问题阶段
这个阶段和第4阶段同时进行,独立分析问题就是将现实的问题运用计算思维去解决,即通过问题分解、模块划分、算法设计和代码编写,最后调试程序。
在学习过程中,需要注意的是:
不要过分纠结于语法细节;
从程序逻辑分析问题;
在编写代码的过程中逐步掌握语法规则。
调试代码的时候,需要了解程序的问题边界;
例如数据的适用范围,在调试过程中,需要将各种边界数据进行输入,观察程序结果是否正确,进行相应的修改。
(3) 学习的主要内容
C语言的主要内容有以下8个方面:
内容
难度
基本语法 ★
数组 ★★
函数 ★★★
结构体 ★★
程序结构 ★★★
指针 ★★★★★
编译预处理 ★★
文件 ★★★★★
根据学习层次和要求的不同,课程内容的范围和难度会有所不同。一般以培养逻辑思维和计算思维为主的入门学习者,主要集中在基本语法、程序结构、数组、函数及结构体。
对于高阶的学习者还会包括其他几个方面,特别是指针的学习难度较大,入门不太容易,但是指针是C语言的精华,有人说“不学指针,等于没有学C语言”。
(4)应用C语言
掌握C语言的基本程序编写方法并不难,难得是如何使用C语言解决问题。这是个很大的话题,总的来说还需要学习数据结构,掌握常规的算法,然后和不同的应用领域结合编写所需的程序,程序员根据程序要求,需要对开发的领域比较了解。例如,开发嵌入式程序就需要了解对应的硬件接口功能。
如果只是培养自身的编程逻辑,计算思维,那么可以结合具体的领域,运用程序设计思想分析具体问题。既然是一种思维,它必定是个人综合能力的潜在组成部分。
不学C语言,可能你不会有什么损失;但是,学了C语言,你必将有所收获,或许还会收获适应未来数字世界的金钥匙。所以,请你保持好奇心,使用良好的学习方法,坚持学习,C语言将不会是障碍!
我说的简单,其实我提到的每本书至少都够你研究很长时间的,所以希望初学者别着急不骄不躁,相信只要努力过,一定会成为高手的。
在写代码的时候大家要注意养成好的代码习惯和风格还有抽象能力。
借用乔布斯的话来鼓励大学生朋友们:Stay Hungry , Stay Foolish。
网友评论