网站首页 > 基础教程 正文
一般来说C++开发工程师分为初级、中级和高级,那如果对C++开发工程师进行分层,可以分为几层呢?
第0层:掌握基本的C++语法,会写一些基本的if-else,for循环,switch-case等。可以简单地使用C++的IDE,把书上的代码一行一行敲上去,会点击Run按钮运行程序,可以输出helloworld。
第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层:重剑无锋,大巧不工,不再炫技开发,简单合理的能够完成需求就好。熟练掌握操作系统,编译原理,掌握编译与链接的大多数知识,了解编译器背后的故事,熟练使用各种调试工具,各种性能分析工具,了解内存对齐,知道如何调试内存泄漏问题,如何调试死锁问题,深入理解CPUCache、文件系统、进程与线程、TCP/IP、内存模型等知识,参与开发过系统级的项目开发。动手能力强,接到需求后有自己的想法,可以快速给到实现方案。了解C++的各种方案优缺点,常见的坑以及各种避坑方法。
第5层:从0到1设计开发过系统级、高性能的项目,并被一定数量级的用户使用过。不再着重于技术单点的实现方案,完全领悟并灵活使用各种设计模式,更着重于整体架构的设计,即设计那一张工程图纸,给出整体的解决方案,追求设计更合理的架构,着重于模块划分是否清晰,着重于高内聚低耦合,着重于系统的健壮性,灵活可扩展性,可以应对大规模需求的迭代与变更。
第6层:混迹于国内国际各种C++开发者大会,各种演讲,分享自己的开发心得,分享架构设计方案,受众生膜拜。
猜你喜欢
- 2024-11-03 有c语言基础 学c++应付期末考试要多久?
- 2024-11-03 C++模拟ATM自动取款机 atm取款机c++代码
- 2024-11-03 维塔士Andy Fong:Switch游戏优化经验分享
- 2024-11-03 盘点c++几种常见的设计模式及具体实现
- 2024-11-03 C++入门到精通(第三课 程序的选择执行)
- 2024-11-03 C++开发:C++11 和 C++17 编程新特性介绍
- 2024-11-03 C++无条件转移控制 无条件转移指令包括
- 2024-11-03 C++选择结构,让程序自动进行决策
- 2024-11-03 C++有哪些新特性 c++的新特性
- 2024-11-03 3分钟带你玩转循环——图解if…else和switch
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)