推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

编程语言那么多,为什么偏偏是C语言成了大学的必修课?

   2023-08-06 网络整理佚名1090
核心提示:这是一本给非计算机专业的大学生的C语言的书。“我不是学计算机的,为啥要学C语言?但问题是,如果把学C语言的精力用来学学其它与专业相关度更高的东西,是不是会更好呢?虽然社会只需要少量的人会编程序,但莫名其妙的是几乎所有的大学生都想(或被要求)过二级,导致程序设计课程成为了必修课。这种语言就是我们常说的编程语言,学编程的过程,其实就是学用编程语言说话给编译器听的过程。

谁告诉你你不幸出生在中国?

——何祚庥(中国科学院院士)

这是一本面向非计算机专业的C语言书籍。 “我不学计算机,为什么要学C语言?” 这个问题在中国每年都会被问到数百万次。 被询问的人可能是老师,也可能是兄弟姐妹。 师兄师姐们往往只是假装表情清楚,重复老师依稀记得的话。 这些话大多都是有远见的,比如“以后可能会用到”、“锻炼编程思维很好”、“C语言是学习编程的基础”等等。 这句话并没有什么错。 所谓“技不如人”,多学东西肯定比不学好。 但问题是,如果把学习C语言的精力用来学习其他与专业更相关的东西会不会更好? 既然如此,为什么还要学C语言呢?

最现实的答案来自何祚庥院士:“谁告诉你你不幸出生在中国?”

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

二级考试的可选语言包括 C、C++、Java、.、Basic 和 . 为什么要学最古老的C? 这里的原因复杂多样,每个学校都有自己的解释,我就不一一列举了。 总之,中国一定是世界上“懂”C语言人数最多的国家,二级考试功不可没。

反正这节课既然已经开始了,不学是不可能的,精力也被占用了,所以我们还是认真的看一下C语言吧。 虽然有点无奈,但好在C语言确实是个有趣的家伙,而且越了解它就越有趣。 如果您不相信我,请继续阅读...

游戏、黑客和 C 语言

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

这些家伙的成就看似高不可攀,但其实他们都是凡人,在某些方面和我们很相似。 例如,当他们看到一台功能强大的计算机时,他们首先想到的就是用它来玩游戏。 在那个时代,电脑是只有大型组织才能拥有的奢侈品,在电脑上玩游戏就是浪费钱。 但谁在乎呢,追求乐趣才是最重要的,所以他们得开动脑筋才能玩得开心。

那时候还没有商业游戏,所以想要玩游戏,首先得发挥DIY精神,自己制作一个。 我编的游戏被别人喜欢,这在当时是最有面子的事情。 有一位工程师,名叫Ken(以下简称ken),今年26岁,无所事事。 看到阿波罗11号成功载人登月,他觉得很酷,想自己尝试一下,于是他设计了一款名为《太空》的游戏。 游戏中,玩家驾驶飞船,穿梭在虚拟太阳系中,欣赏美丽的风景,还可以降落在各个行星和卫星的表面。 游戏首先在该系统上编写,后来在GECOS系统上重写。 能够运行这两个系统的机器都是笨重的大型机。 虽然计算能力突出,但显示效果较差,机器时间很高。 公司要支付75美元才能玩一次(当时美国的平均月收入约为200美元)。 如果被老板知道了,那就不是开玩笑了。 于是,他和28岁的同事M.(以下简称dmr)在大楼各处寻找免费的“游戏机”。 功夫不负有心人,他们真的找到了。

DEC公司制造的PDP-7小型机拥有当时最先进的图形处理能力。 当时计算机主要用来处理数据,图形能力并不是很重要,所以PDP-7更多时候静静地躺着,很少被使用,直到像ken和dmr这样的硬核玩家发现了它。

比赛开始。 不过游戏的运行需要操作系统的支持。 PDP-7 当时是“裸机”,没有可以运行的操作系统。 伟大的DIY精神再次发挥了作用,两人撸起袖子开始为PDP-7编写操作系统,并给这个系统起了个名字——Unix。 直到今天,Unix仍然是最值得信赖的操作系统。 它不仅支持军队、政府、电力、电信、银行等大型机构的关键业务,也是苹果Mac系列电脑的动力源泉,甚至是iPod Touch的魅力所在。 部分感谢。

Unix 最初是用汇编语言编写的,这种语言更接近于机器而不是人类。 计算机能直接理解的语言称为机器语言,它的所有句子都是由“0”和“1”两个数字组成,根本不适合人阅读。 当最后一位机器语言程序员发疯时,人们终于开始弄清楚如何让计算机理解人类语言。 基本思想是制作一个直接将人类语言翻译成机器语言的翻译程序。 这个翻译程序被命名为“编译器”。 但是直接理解人类语言太难了,到现在也没有实现,所以我做了妥协,设计了一种尽可能接近人类语言,并且可以准确翻译成机器语言的语言。 这种语言就是我们常说的编程语言。 学习编程的过程,其实就是学习用编程语言与编译器对话的过程。 第一种编程语言绝对是最接近机器而距离人类最远的,它就是汇编语言。 虽然看起来有点像人类语言,比如加法叫“ADD”,减法叫“SUB”,但它的语法完全像机器,每一行语句都严格对应一条机器指令。 用汇编语言编写的程序不能在另一台计算机上使用,因为两台计算机的机器语言不同。 从技术角度来说,汇编语言缺乏“可移植性”。

Unix 的优雅与 Space 的吸引力相结合,让很多人想在自己的计算机上安装 Unix 并玩转 Space。 因此 ken 和 dmr 决定改用高级语言编写 Unix,这样它就可以在更多类型的机器上运行。

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

故事进行到这里,本书的主角C语言登场了。 决定使用高级语言后,ken 和 dmr 在选择语言时遇到了麻烦。 当时有很多高级语言可供选择,包括BASIC等,一直沿用至今,但没有一个受到重视。 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++交流群。 无论你是初学者还是转行者,都欢迎你的加入,大家可以交流,共同成长。

C语言,不朽的传说

最流行的歌曲一定是听得最多的,最流行的语言一定是使用最多的。 现在C语言用得多吗? 业界普遍的答案是:如果某件事可以用X语言完成,那么它一定不能用C语言完成。

这里的X可以指任何语言。 天哪,这仿佛在说“你能听X的歌,就一定不能听周杰伦的歌”。 这是在评判周杰伦还是曾轶可?

哪种编程语言最流行? 每个人都会有自己的主观看法。 或者用客观数据说话。

TIOBE发布了2016年8月编程语言流行度趋势图(最新统计图请访问上述网址)。 可以看到,C语言一直稳居前两名,最近又有重新夺回第一的势头。

有点令人费解的是,没有它也能用,而且还这么受欢迎。 dmr曾经说过一句话:“C是怪异的,充满缺陷的,却取得了巨大的成功。” 因为它很奇怪并且有缺陷,所以会尽可能避免它,并用弥补这些缺陷的语言来代替; 因为它确实取得了巨大的成功。 ,所以还是很受欢迎的。 一个成功的例子是,图xx列出的10种最流行的语言中,排除C语言,其余9种语言中有7种直接、间接引用或部分借用了C语言的语法(例如,必须有语句末尾有一个“;”),只有Basic和C的语法找不到。 有这样的世界第一影响力,受人喜爱也是情理之中的事情,尽管让人又爱又恨。

C语言的爱与恨

C语言设计原则的第一条是:“信任程序员”。 对编程语言不太了解的人不会太看重这句话。 但对于真正的程序员来说,这句话足以爱C语言一辈子,爱到死。

在C语言当道的时代,电脑相当昂贵,但其速度却没有现在的手机快,而且内存是以KB来计算的。 所以当时对程序最基本的要求就是效率。 C语言完全满足了人们对效率的苛刻要求。 设计良好的代码可以大大节省计算机资源,而且使用起来不像汇编语言那么困难,因此受到程序员的欢迎。 后来,随着硬件越来越便宜,性能越来越高,程序的运行效率不再是主要目标。 安全性、稳定性、易维护性变得更加重要,C语言的缺点就显现出来了。

C语言给了程序员最大的发挥空间,让他们在代码中自由地表达自己的激情和创造力,并且从不质疑这些代码是否会带来危害,因为它“信任程序员”,相信程序员的决定一定是正确的是的,即使有错误,也必须自己改正。 不受限制的自由,在某些人手中,是创造力的源泉,而在另一些人手中,它可能是混乱的根源。 随着软件系统规模的扩大,需要的程序员越来越多,综合水平越来越低,出错的概率越来越大,每一个低级错误都可能引发灾难。 很多人把造成这种混乱的原因归咎于C,开始怀疑它,甚至讨厌它,却从未反思过自己糟糕的编码能力。 于是有人说,给这匹野马勒住缰绳,别让它再狂奔了。 但C拒绝了链,于是很多语言披上了C的外衣,自己穿上链,站了起来。 因为它们看起来很像C,所以很容易让大家接受; 因为他们被束缚了,他们不再信任程序员,而是告诉程序员如何做这个事而不是如何做那个事。 如果程序员不听他们的,他们就会拒绝工作。 这种混乱消除了,开发速度加快,多人合作更容易,错误减少,对程序员能力的要求降低,所以工资也降低了,老板高兴了,行业繁荣了。 平心而论,“一件事情能用X语言做,一定不能用C语言做”确实是一个很好的策略。 虽然程序员会失去一些自由,但在法律范围内仍然有一定的创造力空间。 权力,以及这些创造力很少产生负面影响,结合起来让老板、程序员、用户高兴。 但程序员,尤其是受人尊敬的程序员,骨子里天生就流淌着躁动,向往自由的黑客生活,所以他们会一边抚摸自己身上的伤口,一边缅怀那位鲁莽却所向无敌的老将军,怀念在他手下无拘无束的日子,受到他启发的层层潜力。 这位老将军是程序员心中永远的战神。

C语言教给我们什么

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

C 仍然是编写操作系统的首选语言。 它是为操作系统而生的,可以更直接地和计算机底层打交道。 它结构紧凑、灵活、高效。 最重要的是,操作系统的开发者都是顶尖的程序员,他们有足够的能力和经验来驾驭C语言。

在对程序运行效率要求较高的地方,例如嵌入式领域,C语言也是首选。 但目前嵌入式系统的硬件性能也足够强大,功能要求也越来越高,因此C语言的生存空间正在不断缩小。

当现有的C代码需要继承或维护时,也需要C语言。 有许多影响深远的软件和程序库最初是用C开发的,因此C将继续被使用。 然而,其中许多已经开始用其他语言重写,那些C代码迟早会被抛弃。

应用范围如此狭窄,学习它有什么用呢?

单纯从“不会用”的角度得出“学C语言没用”的结论是不公平的。 即使对于计算机及相关专业来说,C语言的“用处”也不是很大。 学习C语言的意义在于它为我们打开了一扇了解计算机的窗口。 如今,几乎一切事物都离不开计算机,您对计算机了解得越多,就越能更好地使用它。

2006年,原卡内基梅隆大学计算机系系主任周以真教授发表了著名文章——《计算思维》。 文章称,“计算机科学教授应该为非专业人士,而不仅仅是计算机科学专业的学生,​​为大学新生开设一门名为‘如何像计算机科学家一样思考’的课程”,因为“机器学习已经改变了统计学……计算生物学”正在改变生物学家的思维方式。同样,计算博弈论正在改变经济学家的思维方式,纳米计算正在改变化学家的思维方式,量子计算正在改变生物学家和物理学家的思维方式”,因此“计算思维代表了一种作为一种共识,一种通用技能,每个人,不仅仅是计算机科学家,都应该热衷于学习和应用”。

但不幸的是,我们提供此类课程的学校仍然很少。 所以编程课在某种程度上肩负着传播计算思维的责任。 这对于不需要使用C语言的同学来说也是最大的意义。

总之,不管你该不该学C,既然这门课已经开了,而且有好老师带,那就抓住这个机会,别浪费时间了。 也许一个学期之后,你就会发现自己在编程方面的天赋,然后在这方面努力,最终成为一名受人尊敬的程序员。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON