找回密码
 立即注册

为什么说C/C++比其他语言更能培养优秀程序员?

2025-4-15 19:26

这个问题,我的答案曾经是这样的:对,C/C++确实能让你变强,但也能让你头发变少。但后来,我的答案也发生了变化!为什么?因为C/C++可以底层操作,手工内存管理和硬件交互,这些确实能锻炼程序员对计算机原理的理解 ...

这个问题,我的答案曾经是这样的:对,C/C++确实能让你变强,但也能让你头发变少。
但后来,我的答案也发生了变化!
为什么?
因为C/C++可以底层操作,手工内存管理和硬件交互,这些确实能锻炼程序员对计算机原理的理解。
这个时候的程序员,更像是一个旧时代的司机。
那时候的汽车质量不好,动不动就熄火,各种出问题,所以几乎每一个司机都是半个修车工。作为一个司机,不会修车肯定是干不了的。
还有一点,那个时候,经济比较落后,车很少,在路上跑的车也不多,跟现在的情况有很大的不同。现在,如果你下午5点下班,开车回家的过程大几率是要在某个繁忙的十字路口,等3-4次红灯才能过去的。现在的车,实在是太多了。
所以,那个时候的司机是非常受人尊重的,自带"修车“技能,路况良好,能开到家就行,要求也低。
但是,现在呢?
人人都会开车了。我在学车的时候,刚毕业的大学生、宾馆的服务员、50+的老太太都是我的同学。
主要原因就是汽车的可靠性大大增强。随着技术的发展,汽车的故障率大大降低,基本不出问题。即便出问题,也有专业的修车店等着。自动档的出现,也让汽车驾驶成为一个有手有脚就行的可能,甚至残疾人只要有手就可以。
这就是现在汽车的状况。
类比于编程语言,这就是为什么Java、Go等编程语言大行其道的原因。
现在很多程序员,不需要自己“修车”,不需要手工处理内存分配,不需要跟硬件交互,甚至很多程序员连Windows API都不需要调用。但是他们的程序,依然可以用在供千万人使用的网站上面。阿里就是用Java撑起了一个商业帝国,字节的后台也是大量运行着Go服务。
新时代的程序,面对的是新问题。
他们更像是赛车手,需要对赛道的每一个转弯了然于心,需要更快的达到目的地。F1赛车手不需要精通冶金学,但他们必须对空气动力学有直觉般的理解。
如果C/C++觉得自己更高端的话,是眼光太浅了。
每一个时代都有“优秀”的标准。曾经在某个时代,没有互联网,没有高级的编程语言,只有一些性能单薄的硬件。这个时候,如何利用现有条件,把业务完成,C/C++是利器。
随着时代的发展,摩尔定律开始起作用,硬件越来越强,性能不是问题,瓶颈就转移到了业务端。这个时候,Java、Go这些自动内存管理、类库丰富的语言,就开始大行其道。
这就是时代的力量。
一个C/C++的优势是对内存的精确把控,充分发挥硬件性能,这些在操作系统、嵌入式、游戏这些对性能要求比较高的领域,依然很吃香。
而Java、Go等程序则应用程序开发、微服务、云原生、网络程序方面有明显的优势。
如果有2个人在你面前,一个是C++高级程序人员,一个是Java高手,你真的觉得C++更加优秀吗?
如果从业务实现、快速挣钱这个角度来讲,说不定你会选择Java程序员呢!
小的时候,我妈站在麦田里面割麦子,望着不远处的收割机,说“现在的人,真的是不勤快;收个麦子,都用机器,地里丢下了多少麦子!”
后来,我家的地也被承包了,一户种几百亩的那种!现在的割麦子,已经都用大型收割机了。


路过

雷人

握手

鲜花

鸡蛋