大学除了要取得“毕业证”和“学位证”,还必须通过“四级”和“二级”,否则可能会被扣两个证,或者很难找到工作,很难安定下来。这里的第二级是指“计算机等级考试二级”,是对“程序员”和“考核计算机知识的基本技能,用高级计算机语言编程,在计算机上调试”的考试。虽然社会只需要一小部分会编程的人,但令人费解的是,几乎所有的大学生都想通过二级,使得程序设计课程成为必修课。

中考可选语言有C、C++、Java、Delphi、Visual Basic、Visual FoxPro、Access。为什么要学最老的c?这里的原因复杂多样,各派有各的解读,就不一一列举了。总之,中国一定是世界上“懂”C语言人口最多的国家,二级考试不可或缺。

反正这门课既然开了,不学不行,精力都放在上面了,还是好好了解C语言吧。虽然有些无奈,但好在C语言真的是个有趣的家伙,而且越了解越觉得有趣。如果你不相信我,请往下看...

游戏、黑客与C语言

1969年,贝尔实验室是当时科技界的梦想工厂,聚集了世界上最有创造力的科学家和工程师,包括几位诺贝尔奖得主,他们共同创造了无数影响全人类的发明。比如数码相机的核心——CCD,那年诞生在贝尔实验室。

这些家伙的成就看似高不可攀,其实都是人,在某些方面和我们很像。例如,当他们看到一台功能强大的电脑时,首先想到的是用它来玩游戏。在当时,电脑是大型组织可以拥有的奢侈品,在电脑上玩游戏是浪费生命。但是谁在乎呢?追求快乐是最重要的,所以他们不会为了开心的玩游戏而想的少。

那时候还没有商业游戏,想玩游戏就先玩DIY精神,自己编。我自己的游戏被别人喜欢,是当时最值得尊敬的事情。一个叫肯·汤普森的工程师,26岁的二流子,看到阿波罗11号成功登月,感觉很爽。他想试试,于是设计了一款游戏,叫“太空旅行”。在游戏中,玩家驾驶宇宙飞船穿梭在虚拟太阳系中,欣赏美丽的风景,降落在各种行星和卫星的表面。游戏首先写在Mutlics系统上,然后在GECOS系统上重写。能运行这两个系统的机器是重型大型机。虽然计算能力突出,但是显示效果差,机器时间很高。公司玩一次要交75美元。如果老板发现了,可不是闹着玩的。于是他和28岁的同事丹尼斯·m·里奇在整栋楼里搜索免费的“游戏机”。努力是有回报的,但他们真的找到了。

DEC制造的PDP-7小型机,拥有当时最先进的图形处理能力。当时主要是用电脑处理数据,图形能力不是很重要,所以PDP-7更多的时候是静静地躺着,很少使用,直到铁杆玩家ken和dmr发现。

Unix最初是用汇编语言编写的,汇编语言是一种比人更接近机器的语言。计算机能直接理解的语言叫机器语言,它的所有句子都是由“0”和“1”两个数字组成的,根本不让人看得见。当最后一个机器语言程序员发疯的时候,人们终于开始思考如何让计算机懂得人类语言。基本思路是做一个翻译程序,直接把人类语言翻译成机器语言。这个翻译程序叫做“编译器”。但是直接理解人类语言太难了,直到现在也没有实现,所以我们应该妥协,设计一种尽可能接近人类语言,并且能够准确翻译成机器语言的语言。这种语言就是我们常说的编程语言,学习编程的过程其实就是学习用编程语言和编译器说话的过程。第一种编程语言必须离机器最近,离人类远,而且是汇编语言。虽然看起来有点像人类的语言,比如add叫“add”,减法叫“sub”,但是它的语法完全是机器的,每一行语句都严格对应一条机器指令。这个特性使得为一台计算机编写的汇编程序不能在另一台计算机上使用,因为两台计算机的机器语言不同。从技术上讲,汇编语言缺乏可移植性。

Unix的优雅和太空旅行的吸引力,让很多人想在电脑上安装Unix,玩太空旅行。因此,ken和dmr决定使用高级语言编写Unix,这样它就可以在更多类型的机器上运行。

高级语言是除了机器语言和汇编语言之外几乎所有编程语言的总称。它的特点是更接近人类语言,但基本与机器语言无关。不同的高级语言编译器可以把相同的代码翻译成适应不同机器的指令,所以大多数高级语言都有很好的移植性。

故事讲到这里,这本书的主角C语言出现了。在决定使用高级语言后,ken和dmr在语言选择上遇到了麻烦。当时有很多高级语言可供选择,包括BASIC和Fortran,至今仍在使用,但没有受到重视。DIY基因再次发挥作用,他们决定设计一种易于使用的高级语言来重写Unix。那一年是1972年,当ken继续改进Unix的时候,dmr开始在ken早年设计的B语言的基础上设计新的语言,他们一起开发了编译器。这种新语言就随便取名C语言。

1983年,由于Unix和C语言的巨大成功,ken和dmr共同获得了计算机领域的最高奖图灵奖。玩游戏到这样的状态,古今只有这两个人。

Unix和c,其中之一,可以很有钱。但是,他们从一开始就不想申请专利、商标、软件版权等法律保护,而是随心所欲地将一切,包括源代码,到处传播。对他们来说,自己写的程序被别人使用,是最大的幸福,也是最大的财富。正因为如此,很多组织和个人都可以自由的贡献给Unix和C,极大的促进了他们的发展。

从上面的故事中,我们可以发现他们身上很多可爱的地方:以兴趣为出发点做事,不在乎未来会发生什么;富有研究精神,信奉“自己动手,丰衣足食”;愿意分享,不计回报。这些特点是正宗“黑客精神”的集中体现。他们在黑客圈也算是英雄,甚至是先锋,大家都叫他们ken和dmr。几十年过去了,黑客圈里没有第二个人敢叫“ken”,这是英语圈里常见的名字。

Unix和C仍然是年轻黑客在被圈子接受之前必须努力练习的三种技能中的一种和两种。由黑客设计,受到黑客尊重,C语言本身处处闪耀着黑客精神。这种光使它永远保持年轻。

c语言,不是老传说

最流行的歌一定要听的最多,最流行的语言一定要用的最多。现在c语言用的多吗?在业内,一般的回答是:如果某件事可以用X语言做,那一定不能用C语言做。

这里的x可以指任何语言。天啊,好像在说“能听X的歌就一定不能听周杰伦的歌”。这是评价周杰伦还是评价曾轶可?

如果不会用的话这么受欢迎有点让人困惑。Dmr曾经说过一句话:“C很诡异,有缺陷,取得了巨大的成功。”因为它是陌生的,有缺陷的,所以会尽量避免,换成一种弥补这些缺陷的语言;因为它非常成功,所以仍然很受欢迎。一个成功的例子是,在图x-x列出的十种最流行的语言中,除了C语言,其余九种语言中有七种直接使用、间接引用或部分借鉴了C语言的语法,只有Visual Basic和Python语法找不到c的影子,以天下第一的影响力,被人欢迎是有道理的,哪怕是那么爱恨交织。

现在,需要使用C语言的地方大概仅限于以下三个方面:

c语言仍然是编写操作系统的最佳选择。它是为操作系统而生的,可以更直接的处理计算机底层,精致灵活高效。最重要的是,操作系统的开发人员是顶尖的程序员,他们有足够的能力和经验来控制C语言。

在程序运行效率要求高的地方,比如嵌入式领域,c语言也是首选。但是嵌入式系统的硬件性能已经足够强大,功能要求也越来越高,所以C语言空的生存时间在不断缩小。

在现有的C代码需要继承或维护的地方,也需要C语言。有很多影响深远的软件和库本来都是用C开发的,应该继续应用C,但是很多都是用其他语言重写的,那些C代码迟早会被丢弃。

应用这么窄,学起来能有多大用处?

从“没用”的角度得出“学C语言没用”的结论是不公平的。即使是计算机及相关专业,C语言的“有用性”也不是很大。学习C语言的意义在于,它为我们打开了一扇了解计算机的窗口。今天,几乎所有的事情都离不开电脑。你对计算机了解得越多,你就能越好地使用它们。

前卡耐基梅隆大学计算机科学系主任周教授于2006年发表了一篇著名的文章《计算思维》。文章中说“计算机专业的教授应该给大一新生上一门课,叫《如何像计算机科学家一样思考》,针对的是非专业的学生,而不仅仅是计算机专业的学生”,因为“机器学习改变了统计学。.....计算生物学正在改变生物学家的思维方式。同样,计算博弈论正在改变经济学家的思维方式,纳米计算正在改变化学家的思维方式,量子计算正在改变物理学家的思维方式。因此,“计算思维代表了一种普遍的理解和一种普遍的技能,每个人,不仅仅是计算机科学家,都应该对它的研究和应用充满热情”。

不幸的是,很少有学校提供这样的课程。因此,在某种程度上,程序设计课肩负着传播计算思维的责任。这对于不需要使用C语言的学生来说也是最大的意义。

总之,不管你要不要学C,既然这门课已经开始了,而且是由一个好老师带领的,请你抓住这个机会,不要浪费时间。也许过了一个学期,你会发现自己在编程方面的天赋,然后在这方面努力,最终成为一个受人尊敬的黑客。

1.《计算机c语言 【计算机·编程】为什么要学C语言?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《计算机c语言 【计算机·编程】为什么要学C语言?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1764798.html