您的位置:首页 > 编程语言 > C语言/C++

为什么要学习C++

2015-01-28 20:21 127 查看
语言之争是程序员永远不会疲倦的闲暇话题,初学者的语言选择也是大家所津津乐道的。回望这几年,随着Android, ios的来势汹汹,不少初学者都喜欢以Java, Objective-C作为自己的第一门语言。在这样的大环境之下,讨论 C++ 还有什么意义么?

在瞎扯这个问题之前,我们先来看看为啥初学者都选择Java, Objective-C。估计原因很简单,就是入门容易。当然,这容易是相对于C++而言的。如果学C++,你肯定要看《C++ primer》这本经典吧?泛型编程,也是需要了解的,所以《C++标准程序库》这书也不能放过吧?这两本书,页码加起来不下1600页,杯具的是,即使你将这两本书读得滚瓜烂熟,你也写不出一个最简单的窗口程序。如果你想写Windows的窗口程序,那么你还要再看一本《Windows
程序设计》,这又是一本厚达1300页的巨著。不过,噩梦远远还没有结束,因为学完了这些,你的C++水平还是处于一个相对低阶的水平。为了跨越这个阶段,你还必须要看《Effect C++》,《More Effect C++》,《Effect STL》等等进阶名作。当你已经将如上的资料烂熟于心的时候,此时你才不是菜鸟,当然也不会是个老鸟,但已经能够凭着这点小资本到人才市场碰碰运气了。如果你还想在继续往上提升,那么这就和你专注的领域有关了,专注于系统的,什么《操作系统原理》不能放过吧?专注于编译器的,《编译原理》这些不可或缺吧?专注于底层的,一大堆的CPU的datasheet你是不能视而不见吧?只有精通了某个领域,你才能是老鸟。

入门简单,这个最基础的因素决定了初学者为什么选择了Java, Objective-C。不过这对于他们是无可指责的,因为现在的公司,都不愿意花钱去培训新人,你是打算学2个月的Java, Objective-C就能找到工作呢,还是想花个2年时间学C++才能上岗?我想大部分人都应该选择是前者。于是,直接结果就是,学Java, Objective-C的初学者几何性地倍增。菜鸟不可能永远是菜鸟,他们也会有成为高手的一天。因为初学者的基数很大,所以成为高手的数量会不少,这对于现在已经是Java,
Objective-C的高手,不可谓不是一个冲击。但对于C++的高手而言,虽然也是有所冲击,但这冲击却比Java, Objective-C要小,因为C++的新生血液实在太少了。这个看似可悲的状况,却成了C++长期风险低于Java, Objective-C的一个理由。

C++还有一个最重要的特性,就是在某些领域具有不可替代的作用。驱动是要用C++吧?启动代码是要用C++吧?就连Android的的底层,也和C++脱不了关系。也许有人说,不是还有汇编么?开玩笑,你用汇编写一个框架试试,等写出来,黄花菜也凉了。那么C呢?呃,这个我不否认,C++很多地方都能用C来写,甚至某些地方都只能用C。但C和C++就是一对孪生兄弟,学的是C++,写的是C,这会有什么困难么?所以为什么C和C++两种语言的分隔不是用逗号,而是用斜杠:C/C++。在这个领域里面,还有能威胁到C++的统治地位的么?C++所擅长的领域,是死水一潭,唯我独尊。

有时候,C++似乎和鸡肋异曲同工。在很多大型应用中,无法施展拳脚;但在不少领域,却又是不可或缺顶梁柱。只是,说C++是鸡肋,非常不恰当,也许说成是巨人更为合适。Java, Objective-C之所以看得远,是因为站在了C++这个巨人的肩膀之上,如果没有了C++这个巨人作为垫脚石,那么落入平地的Java, Objective-C只能看到眼前冰山一角。不过无可反驳的是,只要站在了巨人的肩膀之上,就绝对能够比巨人看得更远,所以Java,
Objective-C能将触角延伸到很多C++无可企及的领域。

做巨人很辛苦,因为他没有站在肩膀上的人们那么光彩亮丽引人夺目,就像幕后人员和舞台明星一样,大家喜欢的永远都是明星。也正是因为没有太多的人去争当巨人,反而造成了巨人的地位能够长期稳定,这也就是为什么学C++的长期风险相对会低很多的原因。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: