作为已经搞了十几年代码的老司机,对于这种动不动就喊着精通某种语言的初学者有点无奈,现在很多刚毕业或者毕业没有几年的程序员喊着精通几种编程语言,而且这种基本上在面试上遇到老程序员都会遭到技术细节的洗礼,反而越是干的时间越长的程序员越是在介绍自己的时候都是写上熟练某种语言,c++作为一种几乎公认的最难的编程语言,也是一门够得上学一辈子的编程语言,现在很多编程书籍的名字起的也是让人觉得很无语,21天精通某某语言等等也是助长了浮躁之风。
为什么这么多人觉得C++难学,而且现在很多大学开设的第一门编程语言就是C++,上来就让啃最难的骨头,而且要问到多长时间能够到精通?让这些做了十几年的c++程序员情何以堪,为什么c++被认为成很难的编程语言?
1.基础语法相当繁杂,而且还在不停的更新
c++的设计理念是尽量在编译的时候通过个各种规则达到一种效果,所以很多初学者在编译的时候就能折腾很长时间,特别是泛型编程里面的各种设计模式,细节多如牛毛。由于这种设计的理念,导致很多编程大神炮轰这种理念,觉得是一门把人带沟里的编程语言,现在学校开设的c++课程主要在讲述面向对象的设计理念,基本上很少涉及到泛型编程,所以很多人觉得c++没有那么难,因为只是讲述了面向对象的理念是个什么样子,对于真正实战类型的接触的比较少,很多进入工作岗位才发现原来这东西这么难,还能这么玩,关键这还不是全部还在不停的更新,一旦踏进去想玩彻底基本很难,正因为骨头硬所以很多架构师倒是非常喜欢琢磨这门编程语言,觉得特别有味道。
2.靠近底层可以直接对底层语言,特别是指针操作
如果要找出一种编程语言既能直接操控硬件又能带有面向对象的编程思想,也只有c++了,正是因为这个特性,很多对性能要求比较大的框架都在c++的基础上进行构建,这也就是为什么很多架构师喜欢琢磨c++,根本原因还是刚需。操空底层的编程语言就会涉及到指针的操作,指针问题对于初学者来讲简直的一个噩梦,本质上不难主要计算机相关基础知识不到位的情况下,去学习理解起来就费劲很多。
很多人初学者从开源社区拿到c++写的代码源码,开始基本上看不懂,因为里面涉及到很多语法细节不说,关键还有各种编程模式,加上泛型编程里面语法,要真要能看明白代码如何实现基本上对于c++已经有了大概的认识,距离自己真实写代码已经非常接近了。
难于不难,主要是客观上评价,关键看主观上如何去对待,真正进入状态学习了,也不会去想精通不精通这码事情了,做编程有一种感觉叫水到渠成,开始觉得自己写不了代码到了一定时间自然就会写了,都是坚持学习的结果。
原文发布时间为:2018-09-28
本文作者:东辉在线