学好 C 语言真的值吗?

最近一个技术交流群的大一童鞋说自己正在努力学习 C 语言,然后遭到了一群“过来人”的各种建议。他们有的说 C 语言是上个世纪的老古董,已经被淘汰了,有的说 C 语言啥都干不了,只能写写打印乘法口诀表之类的无聊黑窗口程序,还有的说学 C 语言会找不到工作,学 Java、前端、Python 这些主流技术方向才是正道……。

这么多冷水泼下来,搞的那位大一的小伙伴儿非常迷茫和烦恼,所以他专门找到我,咨询学好 C 语言是否值得这个问题。据了解,他是一所 211 大学计科专业的学生,C 语言是这学期的必修课。本来对 C 语言充满好奇并准备努力学好它,结果现在学习兴趣和积极性大受影响。

相信很多初学编程的小伙伴儿也都会有同样的困惑,尤其是在各种编程语言百花争艳的今天。挨踢魔君作为一只浪迹大厂小厂的高龄程序猿,在这里统一分享下个人看法。

先简单介绍下,C 语言在 1972 年诞生于美国贝尔实验室,是一门面向过程的计算机编程语言。它因为语法简洁、功能强大、运行效率极高而一举成名,在全球被广泛应用于各个领域,尤其是嵌入式领域。它是人类历史上第一门最成功的高级编程语言,是后面诞生的所有高级编程语言(比如 Java、Python 等)的鼻祖。

在 C 语言诞生之后的十多年时间里,全球程序员几乎只有一种最好的选择——用 C 语言编程。毫无疑问,那个时候的绝大部分程序都是用 C 语言编写的,比如操作系统、硬件驱动、编译器、浏览器等,正是它们奠定了计算机软件行业蓬勃发展的重要基础。如果把今天的全球软件行业比作一座通天大厦,那么这座大厦的坚固地基就是用 C 语言打造的。即使后面出现了很多优秀的高级语言,也不可能把地基拆掉重建,后来者只能搞搞上层建筑。当然,除了地基,C 语言也能打造上层建筑。

时至今日,C 语言已经超过 50 岁高龄了,但它宝刀未老,辉煌依旧。从 2001 年 TIOBE 世界编程语言排行榜发布至今(每月更新),C 语言每次都是霸榜的存在,不是排名第一就是第二,其地位和影响力不用多说。下面是当前最新的排行榜(2023 年 2 月 TOP20):

TIOBE 排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

从学习的角度看,如果你把软件开发作为未来的事业,那么必须把 C 语言学好。如果你是业余爱好者,那就无所谓了,开心就行。相比其它封装程度很高的编程语言,C 语言更接近底层硬件,能让我们学习到除了语法规则和业务逻辑之外的更深入的知识,比如计算机组成原理、操作系统、算法优化等,正是这些知识决定了一个程序员未来的天花板。这也是 C 语言成为众多高校计算机相关专业的必修课的重要原因。

学好 C 语言并不是要求所有人以后都专门从事 C 语言开发工作,你可以自由选择其它任何主流编程语言去发展,此时曾经学过的 C 语言知识会帮助你更轻松和更深入的学好其它语言。当然,你也完全可以像我一样,学习和工作都是 C 语言。

学习 C 语言基础时,我们写的都是那种黑乎乎窗口的程序(CUI 程序),所以有些小伙伴儿就说 C 语言写不了漂亮界面的程序(GUI 程序),不好玩儿。实则并非如此,C 语言借助 GTK+、EasyX 等库也可以轻松写出具有炫酷界面的程序,借助 OpenGL 库还可以开发三维游戏。但 GUI 开发涉及到很多复杂细节,C 语言基础不好肯定学不会。只有先专心学好了 C 语言基础,才能接着学习那些技术。

程序的两种用户界面:

CUI:Command User Interface,命令行用户界面

GUI:Graphical User Interface,图形化用户界面

下面是一个用 C 语言编写的植物大战僵尸游戏,大家可以玩一下,完整项目源代码:https://codebus.cn/f/a/0/0/536/PvZ.zip

可能还有小伙伴儿会说 C 语言不能玩儿通信、线程、数据库等,其实不是不能,而是他们学完 C 语言基础后没有进一步学习这些高级开发技术,通过系统调用或第三方库就可以轻松实现。要知道,操作系统基本都是用 C 语言写的,写应用程序就更不在话下了

至于学好 C 语言能不能找到工作,如果你能认真看到这里,相信心里面已经有答案了。如果还不放心,最靠谱的方式就是打开几个招聘网站,搜索“C语言”关键字,然后看看企业的真实人才需求。

猜你喜欢

转载自blog.csdn.net/itmojun/article/details/129119366