C++学到什么程度才能叫精通?

罗镇鸿


c++是个复杂的融合体,面向对象和c语言。

面向对象基本语法特性之上就要谈到设计,设计是个没啥标准答案的东西,目前业界还是认可设计模式,这个也确实是个起步的水平,也就是最起码要熟练掌握灵活运用基本的设计模式。更高等级就是自创了,做一些更适应自己团队的创新。

如果项目选择c++,基本是有特殊需求,比如实现图像处理,音视频处理,底层第三方包要求语言和性能要求。

以前网络编程也基本是用c++,现在java优化的很不错,比如netty。

如果谈到性能,问题就复杂了,操作系统知识是必须的,知道如何优化程序。还有一些更为专业的高性能加速计算最好也掌握。加速就不是传统c++的范围。

现在的c++做的东西越来越少,核心都掌握在国外,我们国内没啥原创。都是核心基础上做一些二次开发或者中上层的东西。

不过我前段时间翻阅opencv代码发现优化实现有中国的影子,作者写的是中国科学院软件研究所,是算法实现的对应opencl版本,大概10多个算法的实现。


abcdefghi98765432101


C++语言学透是不可能学透的,这辈子不可能学透的,C又不会用,就只有学学C++,维持上班不忘记这样子。

每天晚上我都要学习C++,就只有网上找找女朋友,我才会不去看看C++这样子,可我找不到,学C++时候感觉各个知识点都好难,比找女朋友难多了,学C++时候又只有我一个人学,他们都组团一起去学java了,一个人孤单学习也找不到女朋友一起玩。

去学java之后感觉各个都很有趣,写的又简单,还很容易实现,超喜欢java的。

刚毕业一两年时候,还能天真无知说着自己,熟悉C++,甚至说精通C++,而工作为五六年,却发现自己都还不配说自己精通。这辈子都感觉不会精通C++了,毕竟C++在你学习时候也在悄然迭代,就跟社会一样,你猛地追赶,最后才发现你永远慢人一步,学会了放下。

越难得到的东西越忘不了,好比越渣的人越令人牵肠挂肚,所以放弃吧,你永远不可能精通C++,能做的就是熟练跟上这个磨人小妖精的步伐。

最新C++资源用起来吧。这些资源关注我私聊发送:“C”就可以获得啦,记得关注私聊哦。

C/C++详细图解

资源

轻松掌握C语言视频教程(会打字就能学会) 对应1、2、3、4知识点。

C++基础完整视频 对应1、2、3、7知识点

C语言数据结构 培养架构师思维 对应4、5、6知识点

C++核心编程_打造你的核心编程技能 对应1-9知识点

QT界面开发 对应1、2知识点

MFC 对应3知识点

linux系统编程 对应上面所有。

服务器开发之linux网络编程 对应所有。

最后的实战项目网上一搜一大把


这些资源关注我私聊发送:“C”就可以获得啦,记得关注私聊哦。


黑马程序员


很有意思的问题,作为一个主要使用C++做开发超过十年的老码农,来聊聊我个人的一点看法。


这么说吧,C++是一门极度复杂的语言,而且随着新标准的提出,这种复杂性还在不断的增加中,所以说什么程度算是精通C++语言,其实是一个无法给出明确答案的问题。比如就我来说,使用了十多年的C++,可以轻松的使用C++设计一个方案并实现,比如用它实现过图像处理SDK,也用它做过IDE开发,即使如此,我也不敢说自己已经精通C++。原因很简单,你对这门语言的理解越深,也就越能发现诸多的不足,既包括自己的不足,也包括语言本身的缺陷与不足。举个简单的例子,我最开始学习的标准是C++98,可是后来又出现了C++03、C++11、C++14,甚至还有C++17,对于这些新标准出提出的内容,说实话,有些听过,有些甚至都没有听说过,更别说在实际应用中使用了,以此来说很难算是精通C++了。


不过话又说回来,有很多使用了多年C++的程序员,有着和我类似的情况,他们可以轻松的使用C++开发一个应用程序,但是C++中依然有他们未曾触碰的领域。所以我认为C++语言变得越来越复杂,想要完全掌握除了编译器和C++语言专家,其他人是可望而不可及了,要不然就连Linux之父——Linus Torvalds也会炮轰C++,说它是一门糟糕(horrible)的语言。


综上,我认为想要给出一个明确的精通C++语言的标准,是一件费力不讨好的事情,学习任何语言都是为了解决实际问题,所以只要你能够使用C++语言开发出好的应用,你就是一个合格的C++程序员。下面是几条熟练使用C++的需要掌握的技能:

1、最基本的要求自然是熟练掌握C++的基本语言,包括常用的和不常用的;

2、因为C++是一种面向对象的语言,所以要掌握面向对象程序(OOP)设计思想;

3、能够使用C++描述常用的数据结构,并实现在这些数据结构上的各种操作;

4、理解C++对象模型,比如对象指针、虚函数表等内容,以及类的构造过程,以及在此过程中编译器会在背后做那些事情等等;

5、能够使用C++做程序设计,这里除了基本的OOP思想外,最重要的是熟练应用设计模式;

最后,再对C++发一点牢骚,虽然我还在使用C++做开发(部分任务已经使用其它语言),但是我认为C++是一门尴尬的语言。谈效率吧,它不如C语言简单直接;谈面向对象设计吧,它又不如C#、Java等纯粹;谈开发效率吧,它又不如Python高效……太多的功能如模板、智能指针、多重继承等让这门语言变的越来越复杂,所以我是越来越不喜欢C++,并且建议程序员不要将C++作为首选开发语言。


分享到:


相關文章: