程序员必须要学习C语言吗?不学行不行?

C语言是一个老古董了,初学者如果不打算搞单片机/嵌入式开发,那么即使学了,一时半会可能也用不上(那些底层/系统开发和关键组件开发,离初学者太远),看起来有点鸡肋。然而,几乎所有大学的计算机/软件专业都将C语言作为必修课,这又是为什么呢?难道真的是因为大学教育落后吗?

当然不是!

C语言是一门基础语言,很多其它的课程都依赖C语言;如果你不了解C语言,那么这些课程是学习不了的。

不妨举几个例子:

  • 编译原理课程通常以C语言为例讲解,因为C语言的编译过程相对简单、规范和透明,适合教学。
  • 数据结构课程通常使用C语言编程,因为C语言比较底层,能够让大家看到数据结构的各种细节。另外,数据结构是一种被频繁调用的组件,必须要追求效率,C语言再合适不过了。
  • 学习操作系统原理(内存、进程、线程、通信等)也要具备C语言基础,否则是学不明白的。


C语言是一门面向计算机的语言,它能帮助我们快速了解底层。而其它的高级语言(Python、Java、C# 等)是面向用户的,它能让我们快速上手,搞出点实用的工具来,比如桌面软件、网站、APP 等。

借助C语言学习原理,相当于修炼内功;使用其它语言开发程序,相当于精通招式。既有内功也有招式,才是一名合格的程序员。

从整体上讲,计算机软件大概可以分为两种:

  • 一种是基础设施,比如操作系统、数据库、浏览器、云计算系统、大数据系统、编译器/编程语言、通信协议、区块链、标准库/运行库、算法实现等。
  • 一种是应用软件,比如桌面软件、APP、网站、小程序等。


内功不扎实的话,开发一般的应用软件是没问题的,这也是各家互联网公司正在做的事情。但是,要想开发高性能的软件,或者开发基础设施,那绝对是不行的,门都没有。

互联网已经不再是浪潮之巅,只搞简单的应用软件越来越没有前途,所以各家公司也在慢慢下沉,越来越重视根基了。

这意味着,编程不再是一种小把戏,而是逐渐演变成了一种技术,或者一种科研,你需要系统性地学习理论和基础,那种「上几个月培训班就能找份月入过万的工作」的时代已经越来越远了。

关于程序员内功修炼的问题,我将在《高薪/大厂程序员要学习哪些东西?​​​​​​​》一文中深入讨论

最后,想学c语言的同学,推荐在线书籍54笨鸟

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值