一年精通,三年熟悉,五年了解,十年用过!C++真的这么难吗?

Posted C语言编程俱乐部

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一年精通,三年熟悉,五年了解,十年用过!C++真的这么难吗?相关的知识,希望对你有一定的参考价值。

C++有句俗话说:一年精通 三年熟悉 五年了解 十年用过

如果可以把C++程序员分层的话,看看你在第几层?

第0层

掌握基本的C++语法,会写一些基本的if-else,for循环,switch-case等。可以简单的使用C++的IDE,把书上的代码一行一行敲上去,会点击Run按钮运行程序,可以输出hello world。

第1层

熟悉C++大多数语法,了解面向过程与面向对象编程思想,了解封装、继承、多态的合法使用,了解指针、函数指针、回调函数、异常处理、文件操作、STL的使用,可以解决简单的编译链接报错问题。

但缺乏独立思考的能力,甚至都不知道如何提问,一般面向百度编程,熟练掌握ctrl+c和ctrl+v操作,只要程序达到过预期的结果就已满足,可以简单的做出个Demo。

第2层

熟练掌握C++大多数语法,熟练背诵大多数C++面经。

了解C++11、C++14、C++17甚至是C++20的新特性,面试技术单点时没什么问题,说起来头头是道,但做起来一塌糊涂;

没有从0到1做公司级项目的能力,着重于完成某项子功能,没有设计图纸的能力,可以在现有框架上增删改,代码可读性、可扩展性、边界条件处理、程序性能、编码规范等问题往往不太考虑。

第3层

读过一些经典C++书籍,对STL、BOOST等经典库可以熟练使用,看过部分经典库的部分源码,了解基本原理,掌握常见的设计模式,掌握C++的好多奇技淫巧,对代码有洁癖,按照编码规范编程,会对边界条件做详尽处理,代码可读性较高。

写代码时经常炫技,代码骚气逼人,自认为可以碾压大多数人。然而炫技通常会导致开发周期长,代码膨胀,后期维护难,其他普罗大众通常看不懂这种炫技的代码。

第4层

重剑无锋,大巧不工,不再炫技开发,简单合理的能够完成需求就好。

熟练掌握操作系统,编译原理,掌握编译与链接的大多数知识,了解编译器背后的故事,熟练使用各种调试工具,各种性能分析工具;

了解内存对齐,知道如何调试内存泄漏问题,如何调试死锁问题,深入理解CPU Cache、文件系统、进程与线程、TCP/IP、内存模型等知识,参与开发过系统级的项目开发;

动手能力强,接到需求后有自己的想法,可以快速给到实现方案。了解C++的各种方案优缺点,常见的坑以及各种避坑方法。

第5层

从0到1设计开发过系统级、高性能的项目,并被一定量级的用户使用过。

不再着重于技术单点的实现方案,完全领悟并灵活使用各种设计模式,更着重于整体架构的设计,即设计那一张工程图纸,给出整体的解决方案,追求设计更合理的架构,着重于模块划分是否清晰,着重于高内聚低耦合,着重于系统的健壮性,灵活可扩展性,可以应对大规模需求的迭代与变更。

第6层

混迹于国内国际各种C++开发者大会,各种演讲,分享自己的开发心得,分享架构设计方案,受众生膜拜。例如侯捷、张银奎、吴咏炜、潘爱民等(排名不分先后)。

第7层

C++标准委员会成员(尽管一堆人在喷他们脑袋有坑,但不可否认,他们确实就是顶尖的C++程序员)

第8层

Bjarne Stroustrup,凡是我们C门子弟,无需多言吧。yyds! C++之父。

最后说几句,学习C++确实挺苦,精通又有什么用呢,面试造火箭,入职不还是拧螺丝嘛!

语言可能没有那么重要,我们多数人可能永远也到不了第6层,但我们可以尝试去精通某个领域,例如精通人脸识别、自动驾驶、游戏开发、音视频开发、网络开发、移动端开发相关的业务等。

我们也要着重于提高自己的这三种能力:

        ◐ 分析问题的能力

        ◐ 解决问题的能力

        ◐ 掌控全局的能力

- End -

—————————————

不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~

【值得关注】我的 编 程 学 习 交 流 俱 乐 部 !【点击进入】

以上是关于一年精通,三年熟悉,五年了解,十年用过!C++真的这么难吗?的主要内容,如果未能解决你的问题,请参考以下文章

职场的第一个五年规划

"邮政银行的存款定期三年

socket 开发 - 那些年用过的基础 API

这几年用过的框架

工程师职称评定条件

那些年用过的机械键盘