1.C++抽象层次灵活多样且复杂

  • 自身支持多种编程范式;新手兴奋,长者敬畏,设计模式的应用较为抽象
  • 过程(ADT+PP),面向对象(OO),泛型编程(GP),函数式编程(FP),模板元编程(TMP),Etc
  • 再在操作符重载,继承和多态派生等加持下,看似相同的代码在不同的位置可能完全天壤之别

2.C++语法规则细节琐碎且复杂

  • 编程风格低约束:自由,可读性差
  • 语法迭代版本差异:Old C++(C with Class)、Etc
  • C++新特性学习带来的成本时间:C++11/C++14/C++17/C++20/C++23新特性,影响贯穿始终
  • e.g:
  • 指针数组/常量引用绑定非对象/常量指针/指针常量/指向常量的常指针:const、constexpr、volatile 拷贝/复制构造函数/移动构造函数/析构函数/虚函数/友元函数/:何时用,继承,长度计算
  • 数据类型/指针/智能指针:更精准的控制和溢出跳转,RAII,资源内存从此精确而沙雕,心好累
  • 线程池/协程/右值引用/移动语义/完美转发/引用折叠/并发API:别有洞天,意料之外还有刺激
  • 异常/容器/模板/继承/多态/操作符重载:我是谁我在哪我在干?谁在报错?!这我写的?!
  • 易混特性/潜规则/冲突:extern “c”、#ifndef、Namespace、Static局部/全局、隐式转换explicit Etc
  • 大量精力难以填满的各领域协议、依赖和扩展:TCP/IP/APUE/UNP/Linux XX/Tool xx/Etc一本满足

3.C++开发环境多样自由且复杂

  • 开发&目标跨平台:Windows/Linux/MacOS/Etc
  • 多种编译/调试器:llvm+Clang/GCC/MSVC/GDB/LLDB/Etc,且对OS和编译原理有要求
  • 此处尤其值得一提的就是,超大型工程编译漫长,调试报错令人窒息,当然近年来有显著改善
  • 多种IDE:VS/Clion/Xcode/Etc,较为容易但缺乏对底层真实过程的了解
  • 多种文本编辑器:VsCode/Emacs/Vim/Notepad++/SublimeText/及其各自骚插件/Etc
  • 各种库/"轮子"/OS底层API:MFC(Old)/STL/Boost/?Gaclib?/OSAPI/Etc
  • 架构:乐高大赛?抱歉,打扰了。。怎一个「丰富」了得,我笑了
  • 可能依赖的环境配置:ITem2/zsh/Git/SVN/Makefile/Cmake/MySQL/MDK/Etc

4.C++要解决面对的开发任务普遍较难

  • 各类游戏、多媒体,安全,引擎,系统框架或者极端性能艰深场景
  • 依赖较高的数学/金融/图形/算法处理等其它交叉专业领域的内容
  • 多种语言对接杂糅、各种高大上、不可抗力必须使用的地方
  • 这一点毋庸置疑,可多关注下国内外公司C++应用最多最难取代之处

5.C++国内高等教材存在较大滞后错漏

  • 造成C++是C的简单继承扩展等的错误理解,过于轻敌
  • 可曾听闻THQ大佬的i+=(++i)+(i++)及其各种曲解错漏
  • 更多囿于历史的局限性和集体性选择的结果,也不必太过抱怨
  • 但毫无疑问的是,C++对各类底层软硬件等依赖的CS基础相较其它语言明显更高
  • 这就是为何少儿编程永远不会首选C++进行入门动作

6.C++知识容量大随时间卷积累加混淆

  • 以上那些内容属实只是来自C++世界里很少的一部分节选表现
  • 还没有包含进各种细枝末节、历史背景和过渡性产物各种效率必备辅助插件
  • 饱受诟病的互联网前端野生动物世界现在都有Serverless和Flutter解救
  • 现在你还确定C++那么多东西真的不够煮一大锅陈年腊八粥?

7.C++构建大工程高风险难组织易失败

  • 有些答主也提及,如此「高深的技术」,哪怕针对特定明确场景进行具体开发任务
  • 仍然高度依赖依赖开发者的个人水准,瓶颈效应明显,新人接手不友善
  • 在更多普适常规场景下,较之JAVA、Python、Go等主流语言,容错率更低,可能无必要性
  • 系统和组织角度的正确性、开发效率,可靠性都难以确保且成本十分昂贵且缓慢

总结

  • 入门曲线极为陡峭,造轮之路如履薄冰,
  • 左手核弹右手***,精通之日遥遥无期,
  • 呕心沥血大功将成,需求减少去向渺茫。

C++难都难在这些地方相关推荐

  1. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  2. 致首次创业者:如果做到了这三点,想不成功都难(转)

    致首次创业者:如果做到了这三点,想不成功都难 2015-12-27 21:14 24人阅读 评论(0) 收藏 举报 分类: 互联网(2) 创业(4) 编者按:Rob Hayes 是 First Rou ...

  3. word2vector数据集样式_这样做数据可视化驾驶舱,高端大气,一目了然,领导不点赞都难...

    2020年了,数据可视化已经不是个新鲜词了,把数据以可视化图表的形式展示并没有多神奇,用Excel等传统的办公工具就可以轻松实现. 以前传统数据分析报告就是ppt里贴图表,再配上分析结论,这种形式的数 ...

  4. 源码大招:不服来战!撸这些完整项目,你不牛逼都难!

    2019独角兽企业重金招聘Python工程师标准>>> 经常有人问我有没有什么项目代码,我回复说去 Github 找,但是还是好多人不知道如何找到那些比较好的项目. 今天花了点时间找 ...

  5. 让你不富都难的28个理财习惯

    让你不富都难的28个理财习惯       http://www.docin.com/p-280148190.html 转载于:https://blog.51cto.com/fenghuangniepa ...

  6. 计算机研究生进中国银行,听说中行笔试把研究生学姐都难哭了…

    原标题:听说中行笔试把研究生学姐都难哭了- 及时咨询.资料领取 截至目前为止已经有3家大银行发布了秋招公告! 秋招大潮还未来临,招聘人数却早就已经 破千啦!破千啦!破千啦! 今天我们来一起探讨下中国银 ...

  7. 这次国足想不出线都难

    关岛,马尔代夫,菲律宾,这次国足想不出线都难! 昨晚国足可圈可点: 1.拼劲十足,全场压制叙利亚 2.后防线稳固,只丢了一个球 3.武磊状态好,一人独造8个进球,可以说居功至伟 12强赛,国足来了!

  8. 这样做数据可视化驾驶舱,高端大气,一目了然,领导不点赞都难

    2020年了,数据可视化已经不是个新鲜词了,把数据以可视化图表的形式展示并没有多神奇,用Excel等传统的办公工具就可以轻松实现. 以前传统数据分析报告就是ppt里贴图表,再配上分析结论,这种形式的数 ...

  9. 好强的英语句法(看了这些想不过四六级都难~~~)

    好强的英语句法(看了这些想不过四六级都难~~~) 英语四六级写作25个加分句型 一.~~~ the + ~ est + 名词 + (that) + 主词 + have ever + seen ( kn ...

最新文章

  1. html图标点击转换颜色,PNG格式小图标的CSS任意颜色赋色技术_html/css_WEB-ITnose
  2. Happy New Year
  3. JBoss BRMS复杂事件处理(CEP)性能基准
  4. Taro+react开发(7)--控制跳转
  5. javascript Dom总结
  6. 瑞星专家:lpk.dll病毒的现象和手工处理
  7. HTK语音识别示例(Ubuntu)
  8. mysql数据狛聘_.net 生成拼音码与五笔码实例代码
  9. 小结大学计算机基础课程内容报告,WORD制作新年贺卡和个人简历大学计算机基础课程设计报告书...
  10. 便携式三星mysql_三星折叠手机终于来了!9 月 18 日正式发售
  11. linux获取lnk文件的源目标路径,通过快捷方式lnk获得文件真实路径
  12. Python编程中的常见语句
  13. 读《终身学习》 哈佛毕业后的六堂课,整理总结
  14. 详解HBase架构原理
  15. Symfony5 系列教程1-安装并认识symfony
  16. 基于HTML+CSS+JavaScript仿瓜子二手车官网【学生网页设计作业源码】
  17. SATA硬盘AHCI模式安装win2003时蓝屏
  18. Android中的Picasso实现圆角图片
  19. 树莓派csi摄像头和usb摄像头_树莓派zero wh使用csi摄像头模块
  20. Java中使用IE Proxy代理的方法

热门文章

  1. 微电子专业 | 哪所大学芯片最强?强在哪?(深度盘点)
  2. 小程序-滑块+iconfont下载本地使用
  3. 自己动手,丰衣足食 —— 学习自定义View(一)
  4. 计算机应用学java吗_计算机应用技术都学什么
  5. [源码阅读] 阿里SOFA服务注册中心MetaServer(1)
  6. 千古才俊——纳兰容若
  7. html里副标题subtitle,Highcharts教程(15) title标题、subtitle副标题
  8. Centos7 硬盘分区(新增硬盘)
  9. 软考-软件设计师 - 第2章 程序设计语言基础知识【附补充常考知识点】
  10. Google三驾马车:GFS、MapReduce和Bigtable