作为一个优秀的程序员,真的需要精通C语言吗? - Go语言中文社区

作为一个优秀的程序员,真的需要精通C语言吗?


现在很多程序员特别是没有学习过C语言的,对这个语言都怀有很强的敬畏之心,周围很多开发java的同事也都觉得底层的语言太难了,心里还是觉得学习底层语言的比较厉害,编程语言的种类是非常繁杂的,不可能都挨着学习一遍,一个优秀的程序员从本质来讲,不在于是不是专注于一种编程语言,而是对编程思想把握到什么程度。

为啥很多技术很高的老程序员都觉得要很有必要学习C语言?

C语言虽然入门相对难点,但是对于了解计算机的底层的运行机制有着极好的作用。无论多高级的编程语言都嫁接在计算机基本的体系机构之上,所以了解底层的工作原理,但是是内存管理这块,对于上层框架的驾驭会显得更加有底气。知其然知其所以然,举个简单的例子很多人觉得java内存靠系统去释放,所以在使用的时候可以不怎么关心,但是java也是存在内存泄漏,如果有C语言的开发经历,对于涉及到内存模块都会加倍的小心,还能避免出现很多问题。

现在高级语言的底层几乎全部是C语言实现,所以对于高级语言的内部原理,可以借助C语言来搞明白,这点对于解决一些疑难杂症或者关键技术点的性能问题,能帮助找到一些突破口。如果懂得C语言遇到解决不了的问题算是一种解决途径。

顶级的程序员必须要懂得C语言?

编程水平到了一定的层面编程语言只是工具而已,很多顶级的java架构师也不不懂C语言,也能做架构。当然懂得编程语言越多使用的工具越多,在处理问题的时候更加方便直接。常见的编程模式不到100个,很多人觉得掌握了20来个就已经能做很多事情了,说到编程模式可能很多人觉得这个非常抽象不容易理解,在这个举个简单的例子,多线程并发编程,这算是编程模式里面非常大的一块,围绕这个点能做好多的事情,包括围绕这个模式产生很多的开源框架,本质上达到多个事情能够同时进行提高编程的效率,很多玩嵌入式的弄多线程这个地方就卡住了,有些实时的操作系统还能设置线程的优先级,这对于初学者简直如同天书,理解了本质的概念,只是针对不同的场景有相应的应用。

有句话叫万变不离其宗,本质差异不大,这种场景无论对于C语言还是java语言理解起来是一样的,只不过相对来讲java的集成的工具包相比C语言多点,应用的场景更加灵活点而已,可以解释很多编程高手接手一种新的语言很短时间内就能直接切入做项目了,不是这个程序员有多天才,掌握的编程的套路多点而已,算是老司机了。到了这种层面再去片面的追求自己懂了多少编程语言有点显得无知了。

程序员最忌讳精通两个字

越是真正的高手,越是忌讳这两个字,你何德何能敢自称精通那种编程语言,倒是很多刚毕业的愣头青经常在简历上写着精通几种编程语言,这种等于把自己当成炮灰送给面试官,然后等来一堆堆的轰炸,脾气好点的面试官可能说的比较委婉,直接点的当众就让你下不来台,做一个老实本分的程序员挺好的。

倒是越是水平高的程序员,越是喜欢啃硬骨头,c++是很多架构师的最爱,很多大学开设的第一门编程就是C++语言,直接把很多人的编程梦想扼杀在摇篮中了,还好大学的C++课程更多讲的是概念性的东西,真要涉及到泛型编程,多线程,网络编程这些估计直接让很多人怀疑人生了。

 

所以很多人觉得学好编程语言了就能写出高质量的代码,真是想多了,决定编程能力不是编码能力而是编程思想,编程语言毕竟是工具,一年学不会用两年,甚至更多的时间,但是编程思想不掌握多少年之后可就真是码农了。也没必要炫耀自己掌握了多少编程语言,这和编程的水准并没有直接的关系。

真正的程序员从来不注释他们的代码。如果你做不到这样,也就说明你不能使你的程序易于理解。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wyh15895833492/article/details/93836622
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:33:53
  • 阅读 ( 783 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢