看行业,不是每个行业的优秀程序员都需要精通c语言,甚至有些方向的优秀程序员没有必要学习c语言,理由和事实如下。
1 不少优秀程序员是中途转行,通过自学或培训班入行,入行后干的是java或python,真可能一直到拿到50w或更高薪资时,还是不熟悉c。
2 c语言有的,其它语言,比如python或java都有,有些人或许会说,通过c语言能了解内存和os细节,那么为什么不干脆去学汇编?
3 大多数的开发工作是用现有工具,比如用jvm管内存,用api写功能,而不是所有功能细节都自己写。如果要用c开发项目,真可能连一个界面都手动画,这就好比,当下是通过拼装多个组件造成一辆车,而不是在造车过程中还得做炼钢等活。
4 c语言是一种能帮助小白快速入门的语言,事实上其它语言,比如java和python也能帮大家快速入门IT,比如某人通过精通c语言成为了优秀程序员,但更多的人可以是通过java或python等入门成为优秀程序员。所以反过来其实并不成立,即优秀程序员需要精通c语言。
5 再说下c语言的优点,本人能想到的,可能还真只是能直接和内存和OS打交道,这点上文也提到了,而一些面向对象思想,或者是软件开发的原则(比如开闭原则),在c语言上是很难体现的。所以通过c入门编程,确实可以,但论效率其实真未必能比得上java或python等语言。
6 再分析这个观点,即“学了c语言后学其它语言能更加高效”。比如某程序员打算走java开发路线,先用1个月时间学了c语言,达到了精通,然后本来该用1个月学java语言的,现在由于精通c,只用了半个月就学好。但事实上如果直接学java也就一个月。所以其实还是看需求,有必要再学c语言。
技术是不断发展进步的,在上个世纪80,90年代,在还有DOS操作系统的时候,c语言绝对是独占鳌头,在00年代,c ,c#等开发工具也还流行,所以精通c语言也有一定的用处,但在当下,并不是每个IT行业,都需要精通c语言,甚至有些IT行业,不会c语言也没事。 比如Java高并发这块,或者Python AI这块,不少高手其实是不会c语言的。
所以分析c语言时需要结合需求,结合行业,没必要过于神话c语言,至少不能说优秀程序员一定要精通c语言,更不能出于某种动机,向初学者灌输一定要通过c语言入行IT等不符实际的观点。C语言说到天上,也就是一门编程语言,而当下优秀程序员,更需要关注架构、模型和算法等方面。
联系客服