首页 理论教育为什么要学习C语言?

为什么要学习C语言?

【摘要】:因为学过C语言的人最多,熟悉C语言风格语法的人更多,所以C语言成为思想交流的首选媒介语言。2017年中国软件开发者薪资大调查显示,最赚钱的4种编程语言是:Java、C++、Python、C语言。学习C语言的意义并不在于使用它,而在于它可以让人们了解很多基本原理。对于第二类读者,学习C语言最大的好处是可以更直接地体会计算机最基本的工作模式和方式。这并不是C语言自身决定的,而是中国庞大的C语言教育体系决定的。

现在,还需要使用C语言的地方大概只限于下面3个领域:

(1)C语言仍然是编写操作系统的不二之选。它为操作系统而生,能更直接地与计算机底层打交道,精巧、灵活、高效。最重要的是操作系统的开发者都是最顶尖的程序员,他们有充足的能力和经验驾驭C语言。

(2)在对程序的运行效率有苛求的地方,如现在火爆的“云计算”领域,云平台作为基础架构,对性能的要求非常高,那么C语言就是首选了,因为C语言是目前执行效率最高的高级语言。

(3)在需要继承或维护已有C代码的地方,还需要C语言。有很多影响深远的软件和程序库最早都是用C语言开发的,所以还要继续应用C语言。但是,它们中的很多已经开始使用其他语言重写,那些C语言的代码早晚有一天会被抛弃。

因为学过C语言的人最多,熟悉C语言风格语法的人更多,所以C语言成为思想交流的首选媒介语言。例如,书籍里如果必须要出现程序,最常见的是C语言程序;在涉及编程能力考查的笔试、面试时,C语言通常都是必考的。

坦率地说,C语言应用面有些窄,市场的需求量也不大。不过因为真正能驾驭C语言的人数量很少,小于市场需求,所以程序员的薪水还是较高的。2017年中国软件开发者薪资大调查显示,最赚钱的4种编程语言是:Java、C++、Python、C语言。但对于并不想成为开发高手,或者兴趣不在底层开发的人来说,学它能有多大用处呢?如果单纯从“用不上”这个角度得出“学C语言没有用”的结论,是有失公允的。即便对计算机及相关专业而言,C语言的“用处”也不算大。学习C语言的意义并不在于使用它,而在于它可以让人们了解很多基本原理。

这里不妨根据未来的职业需求,把读者分为三类:

(1)不需要编程;(www.chuimin.cn)

(2)需要编程,但不使用C语言;

(3)需要编程,且要使用C语言。

对于第三类读者,不仅要好好学C语言,而且要精深地学。

对于第二类读者,学习C语言最大的好处是可以更直接地体会计算机最基本的工作模式和方式。换而言之,就是能了解一些计算机底层的原理。这是在其他高级语言中很难体会到的。这些原理虽然也不常直接用到,但它们潜移默化的影响是惊人的,总是能在关键时刻发挥作用。另一个好处是C语言很适合作为入门级语言。这并不是C语言自身决定的,而是中国庞大的C语言教育体系决定的。关于C语言的书籍、资料、论坛、习题和教辅资料等是最多的,而且无一例外都是面向程序设计的初学者。相比之下,其他语言的很多教材是假定读者已经有了一定的编程经验,不介绍或只简单介绍那些通用的基本概念、理论与思维,直接跳到语言自身的特性。当然,像Java、C++等语言也有很好的面向初学者的教材,直接学习它们可以了解更新的编程思想,距离实际应用更近,成效更显著。好在大多数主流编程语言都是与C语言一脉相承的,使得从C语言入门后,再学其他语言,并不会感到困难。

C语言给予第一类读者的最大好处是为读者打开一扇了解计算机的窗口。在几乎做任何事情都离不开计算机的今天,越了解计算机也就意味着越能利用好计算机。

美国卡内基·梅隆大学计算机科学系前系主任周以真教授在2006年发表了一篇著名的文章——《计算思维(Computational Thinking)》。文中谈到“计算机科学的教授应当为大学新生开一门称为‘怎么像计算机科学家一样思维’的课,面向非专业的,而不仅仅是计算机科学专业的学生”,这是因为“机器学习已经改变了统计学。……计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式”,所以“计算思维代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用”。不过遗憾的是,我们现在还很少有学校开设这样的课程。所以程序设计课在某种程度上肩负了传播计算思维的责任。这也是对于不需要编程的学生而言,最大意义之所在。通过学习编程,了解什么是抽象、递归、复用、折中等计算思维,能在各行各业中更有效地利用计算机工具解决复杂问题。