分享

为什么还有985大学在大一上C语言课??

 断剑图书馆 2021-12-14

书圈推荐搜索

今天在知乎上看到这样一个问题:为什么现在部分985高校还是给大一上C语言课:

图片

这个题主是某985CS专业学生,发现学校居然给大一教C语言程序设计,而不是现在最流行的JAVA或者Python,不由得产生了疑问。

评论区非常精彩,不少答主认为:C语言真的没什么卵用了,学校可能是教学方法太落后了,才会继续教C语言。

不得不承认不少大学计算机专业的教学方法的确有点落后,但大一学C语言还真没什么问题。

编程指北之前在朋友圈发了个问卷,调查国内大学第一门语言到底有多少是用的 C 语言。

图片

结果也是很符合预期,使用 C 语言做第一门编程语言课的大学达到了 90% 以上。

图片

更是在知乎看见一个问题:

问为什么还有985高校给大一上 C 语言课,如下:

图片

的确啊,C 语言学完还是只能在黑窗口算算水仙花数、做做图书管理系统,哪有 Python 那么丰富的库。

但是 C 语言可能是唯一最适合用来学习一系列计算机基础课的工具和媒介。

比如操作系统,实验几乎都是用的纯 C 写的 lab;

又比如汇编,学习的时候可以和 C 语言对应起来,了解if、for、while、数组访问等对应汇编是怎么样的;

并且 C 语言本身抽象层次非常低,语法也很简单,没什么语法糖,很贴近操作系统。

图片

点击图片,查看最新C语言教学大纲

用一个词来形容:C 生万物

听起来有点浮夸,但也没说错。

现今这个世界上,几乎所有重要的软件都跟 C 有关系
 
主流操作系统是 C 写的,绝大多数语言的编译器也是 C 写的,数据库、网络、硬件驱动、服务器应用等等,都是 C 写的。说霸气点儿,这个世界就是在 C 语言之上运行的。而且在这些领域,C 语言是完全的“垄断”,连竞争者都没有。
 
所以,扎心的就来了——“会不会 C 语言是软件工程师和社畜的分界线” 。毕竟,真正的高手,就得掌握计算机是如何组成的,程序是如何运行的,编译器是如何把高级语言转化成 CPU 指令的,网络设备是如何传送数据的...等等,而这些,都要跟 C 语言打交道,说白了,C 语言就是内功。

而且众所周知,现如今几乎所有的编程语言,都是以 C 语言为基础拓展的:C++、Java、Go、Python、JS 等等,所以你会发现,学好了 C 语言,别的语言都很容易上手,更不会因为“语言层出不穷”而焦虑。当然,你也可以跳过 C 语言学其他的语言,不过,技术债迟早是要还的

 

不夸张地说,想要成为高手,就必须吃透 C 语言。只有如此,你的技术之路才能走得更远。

 

所以,与其吐槽说 C 语言“过时”,不如想想,如何更好地拥抱、使用它。毕竟,大部分人学 C 之路都颇为坎坷,会遇到很多困难,比如:

 
  • C 语言的的语法很基础,但学完又感觉什么都不会?
  • 指针是如何灵活使用内存的?
  • 如何编写高性能代码?
  • 编译器在链接程序时发生了什么?
  • ....
 
我的经验,学好C语言,除了简单的语法外,更重要的是要搞懂 C 程序从编写到编译,再到被运⾏的整个细节。分享我当初的学习路径:
 
  • 掌握基本语法,理解 C 程序的运行细节;

  • 掌握标准库,性能优化以及工程化内容,搞懂如何写一个可以用在生产实践中的 C 程序

  • 掌握编译、链接、加载以及和操作系统的交互细节,搞懂 C 程序是如何运⾏起来的。
 
下面想跟大家分享一下,学习路线图,建议收藏👇

图片

 

 
时至今日,C 语言作为最“古老”的编程语言之一,仍然“老当益壮”、生生不息。这一切靠的不是巧合,而是绝对的实力。
 
而要发挥 C 语言的最大威力,我们就不应该只简单了解它的语法,而应该在此基础上进一步了解代码如何被编译,程序如何被运行。只有当完整的“链路”建立在脑海中时,你才对程序有了最完全的把控。


本文综合整理自:编程指北、findyi

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多