含泪吐槽学C++的血与泪

C++在各位程序猿眼里并不陌生,但凡学习过C++的人,都极有可能被它曾经蹂躏得不要不要的,而我就是其中一个。

文章目录

  • 1 我和C++的那段血泪史
  • 2 再次与C++重逢
  • 3 我想和你再来一次
  • 4 柳暗花明友情推荐
  • 5 福利赠书活动
  • 6 一个彩蛋

大家好,我是 架构师李肯,那个爱学习、爱劳动的学习委员。

最近C++在业界掀起了一波大浪,那就是TIOBE把年度编程语言颁给了C++

说实话,我还是挺意外的。

本身,我并不是从事以C++为编程语言的工作岗位,熟悉我的朋友都知道,我是从事嵌入式物联网系统的架构设计,主要的工作编程语言是C语言和汇编语言,而C++此等高级语言,似乎离我还是比较遥远。

但是,就这样的一个意外消息,却让我不禁勾忆起当年,我和C++的那段爱恨情仇,也可以说是一段惨痛的血泪史。

1 我和C++的那段血泪史

我本身在大学里学习的专业是电子科学与技术,专业的本身根本就不是一个纯软件的技术专业,恰好相反,它是一个偏硬件的专业。

我从小就有捣鼓各种电子设备的兴趣爱好,小时候也曾拆坏过家里不少的大小电器,当然啦,为此也挨了不少的打。但是呢,就是这样长此以往培养的兴趣爱好,加上大学专业录取时的阴差阳错,我就是那样意料之外但又理之中地上了第2志愿的【电子科学与技术】专业。

大学的学习生涯是短暂且懵懂的,我依然清晰地记得我的大学第一学期,学习的第一门编程课程叫《C语言程序设计》。

那个时候,湿胸和老师都告诉我们,让你们一上大学就学习C语言编程,可想而言,它对你们的专业有多么地重要,将来到了大三的时候,你们就会明白的。

就凭借着他们这么一顿【忽悠】,我越发对C语言产生了浓厚的兴趣,慢慢开始了解到,将来我们的硬件编程都极有可能要使用C语言来完成的,所以我对这么课程是十分地上心,学习也比较带劲,在班上也基本走在前列,至少有不少同学来找我抄作业(手动狗头)。

一边上着C语言程序设计的专业必修课,另一边,我们还在上着大学生计算机基础课程。这个课程好像也是理工科的学习都是必修课,属于通识培训课程,旨在让学生了解更多计算机相关的基础知识。

而就在这个课程上,我对此课程的授课老师产生了膜拜之意。后来经一打听,原来他是我校计算机软件学院的副教授级别的老师,吹起牛B来也是6得很。他经常跟我们说的一句话是:“这个我就不展开了啊,我要是跟你讲的话,这页PPT我可以给你讲一天!”

好吧,牛皮吹完了,但是我却对他的专业知识的广度非常地认可,觉得能向他学习是一件很荣幸的事情。

于是,正将第一学期快结束的时候,老师放话了:”你们好像都学习了C语言吧?不过,要学编程,还得是面向对象编程爽,要是你们感兴趣的话,可以下学期来报我的专业课程《面向对象程序设计C++语言编程》,包你学得爽!“

没办法,谁让我崇拜呢,于是就这么信了他的gui话,兴致冲冲地报了他的课程,开始了C++的课程学习。

有了C语言的编程基础,说实话,一开始其实是没有太吃力的,毕竟鸡蛋还是母鸡生的,C++的身上时常能看到C的影子。

然而,课程没上几周,老师给我们布置了一个课程作业:

请计算1000!(阶乘),并以合适的方式输出结果。要求使用C++语言来完成。

这一下子给我干蒙了,这啥子啊!1000的阶乘,我的计算机都溢出了,还表示个啥?毕竟有点C语言基础知识的都知道,常规方式压根不可能表示得了这个结果。

就这样,我这个课程实验经过了无数次地请教老师,才勉强交了一份答卷,然后老师给了一个80分,还算满意吧。

只是,课程越往后学,越发现不对劲,开始好多东西搞不清楚了,什么虚函数、什么友元函数,诸如此类的,头都大了。

无奈,自己脑子进的水,吃饱了撑着也要把它排出来。

很快到了期末考,毫无波澜,考试成绩最后拿了一个B(75-84分之间),我的绩点也因此落下了一大截,毕竟当初考C语言,我的成绩可是A+(85分以上+30分的附加题拿18分以上)的呀。

此乃真正的血与泪,被C++折磨的日子结束后,我决定不再跟它玩一块了。Bye-bye !

2 再次与C++重逢

熟悉我的朋友可能知道,最近几个月来,我都在搞一门叫 Matter 的新技术,没错,就是那个 “What’s the matter ?” 的那个matter。

这项技术牛B了,号称它出来要一统物联网的江湖,野心不可谓不大。

以下是它的基础架构图:

当然,这不是它最牛B的地方,毕竟像我们这种架构水平的架构师,也一样可以做成这种应用层、中间层、硬件层相互隔离的架构设计,属于一种业内比较常见的架构模型。只不过在通讯硬件上,它支持了以太网、Wi-Fi,还有Thread,但并没有特别出奇。

真正它牛B的地方在于,各种应用的业务逻辑,把所有生态进行统一化抽象化了,这是一种很厉害的突破。

在当下或者之前,各大云服务厂家都是各自为政,各家生态的智能产品是不可能兼容的,如果你要接入,那你得一家家去过认证对接,而Matter的出现正好打破了这个僵局。

为何他能这么牛B地一统天下,那是因为都是国外的科技巨头公司在牵头搞的,随便拎一个出来都够我们喝一壶了,比如Google、Amazon、Apple等等,都是Matter的核心贡献力量。

Matter的宣传介绍语:

Matter 是由业内巨头公司 Amazon、Apple、Google 联合 CSA 联盟的众多成员公司共同发起的智能家居行业应用层标准,旨在解决通信协议纷繁复杂的碎片化问题,打破多生态系统间的交互壁垒,实现智能设备的无缝通信与协作。

很开心的是,Matter所有的方案实现,除了底层芯片厂商的部分核心代码是闭源的外,所有的Matter协议实现都是开源的。

但是,TM的Matter SDK代码是用C++写的,我的血,我的泪啊,否则又看到了1000的阶乘在脑袋里飘荡!

出道快10年了,搞嵌入式开发头一次要钻入到C++的深水区里,你说我能不头大吗?

3 我想和你再来一次

如果有回头路可以走的话,我愿意再重新好好地学习一遍C++,毕竟它能在编程届持续优秀这么多年,一定有它的独到魅力所在,而且Matter官方既然选择了C++语言为主要编程语言,而没有采用嵌入式编程的常规C语言,大概也是考虑到各式各样的C++特性能够帮助Matter更好、更编辑地实现Matter的核心设计吧。

正如我一个同事也在从事Matter相关的研发工作,他也是从其他语言转过来看C++代码的,他说:“这个Matter里面的C++真的是太难懂了,用到了很多新的特性,如果没有去了解和使用过,压根就不太可能掌握得了。”

而,还有一个民间说法:“国外优秀的程序员都尤其喜欢用C++”。不知道传闻是真是假,反正Matter就这么用了。

当下,我还是特别迫切地需要一个能帮助我们切入学习C++的一个路线,或者说是提纲,以帮助我们不再走弯路。

4 柳暗花明友情推荐

这不,刚好技术圈子里都在交流,本周4(2/16)和本周(2/17),机械工业出版社联合多位业界大佬,一同聊一聊C++的各种功能特性以及C++的未来。参考如下,

总共涉及两个主题:

  • 新时代的C++编程语言:畅谈C++特性、C++之困,现代C++20时代
  • 重新认识C++:畅谈C++的兴起、衰落与复兴

我相信,听完这两场直播,你一定会对C++有了更多的了解,今后学习C++也许思路就打开了。

好了,记住我们约定的时间,我加入直播预约了,那你呢?

5 福利赠书活动

为了感谢广大粉丝朋友的支持,特举行一次福利赠书活动,这次我们赠送的2本与C++相关的顶尖学习书籍,详细的活动介绍,请点击 阅读原文 来了解。

活动真实有效,请各位朋友放心参加,你们的成长,也是我最大的荣幸,真心希望你们在C++的学习路上不再踩坑。

6 一个彩蛋

最近在玩ChatGPT,我想问一下它,如果是它做这个课程作业,它会怎么做?我们一起来看看答案:

含泪吐槽学C++的血与泪相关推荐

  1. 关于JavaScript,这10条血与泪的建议大家一定要看

    (注:本文翻译自国外著名杂志Noteworthy,文章在Medium编程类目冲上了一周热榜的榜首,本文版权归原作者The Cat with a Dragon Tattoo所有) 使用JavaScrip ...

  2. 入职一家初创公司第一周的血与泪

    入职一家初创公司第一周的血与泪 也可用于面试题: 你在工作中遇到过哪些难题?你都是怎么解决的? 问题:Springboot在Window与Linux中图片回显不出来 小程序后台管理系统,学员页面,学员 ...

  3. 腾讯云服务器备案全流程详细内容记录40天备案的血与泪

    本文原创首发CSDN,链接 腾讯云服务器备案全流程 40天备案的血与泪_郑为中-CSDN博客_腾讯云服务器备案 ,作者博客郑为中_CSDN博客 ,转载请带上本段内容,尤其是脚本之家.码神岛等平台,谢谢 ...

  4. 腾讯云服务器备案完整流程 40天备案的血与泪

    本文原创首发CSDN,链接 腾讯云服务器备案全流程 40天备案的血与泪_郑为中-CSDN博客_腾讯云服务器备案 ,作者博客郑为中_CSDN博客 ,转载请带上本段内容,尤其是脚本之家.码神岛等平台,谢谢 ...

  5. MongoDB--Linux下搭建的副本集集群(踩过的坑,血和泪的教训)

    MongoDB–Linux下搭建的副本集集群(踩过的坑,血和泪的教训) 文章目录 MongoDB--Linux下搭建的副本集集群(踩过的坑,血和泪的教训) 一:环境准备 二:安装步骤 三:启动 1.关 ...

  6. VC的血与泪,最难尽调的是人性————失败风投案例分析

    VC的血与泪,最难尽调的是人性----失败风投案例分析 风险投资(Venture Capital)简称是VC,在中国是一个约定俗成的具有特定内涵的概念,其实把它翻译成创业投资更为妥当.广义的风险投资泛 ...

  7. sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪

    Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...

  8. ajax中cache什么意思,ajax之cache血与泪~~

    场景:项目以ie5渲染页面,点击导出列表数据(Excel形式),点击导出发送get请求,后台生成Excel文件,返回文件地址信息 异常:ie第一次返回的信息正常,之后返回的都是第一次的结果,googl ...

  9. 码农们的「血与泪」:新零售「全渠道中台」的前世今身

    作者 | 袁鸣凯,家乐福技术总监, 高知特有限技术公司中国区架构师,HP上海研发技术专家,夸客金融首席架构师,现任家乐福中国区技术总监.多年互联网.企业级SOA.微服务.全渠道中台方面的架构设计实战经 ...

最新文章

  1. 互联网人的平均时长,居然这么短...
  2. 禁止/启用angularjs相关缓存的方法
  3. led灯bin值_「技术贴」如何判断LED透明屏正发光与侧发光的优劣?
  4. OVS vswitchd启动(三十八)
  5. 学会这个用这个做PPT,把24小时的工作变成1秒!高效神器保住你的发际线~
  6. 前端知识区别和学习路线_个人收藏
  7. 执行了rm-f,除了跑路,如何恢复?
  8. 麦克马斯特大学计算机科学硕士,2020年麦克马斯特大学硕士要上多久才能毕业...
  9. 急需大量网银和电子商务经验人才
  10. w7电脑蓝屏怎么解决_Win7电脑突然蓝屏怎么办?
  11. 给春节的宴客小吃来点小惊喜---绿茶甜心曲奇
  12. 中国大学MOOC-陈越、何钦铭-数据结构
  13. Codeforces1603 B. Moderate Modular Mode(数学)
  14. 五分钟了解机智云自助接入流程
  15. C语言程序设计教程 北京邮电,C语言程序设计教程(第3版)/ 杨路明 9787563543403 北京邮电...
  16. 【OpenCV】imshow()和namedWindow()之间的关系,解决两个窗口问题
  17. 浙江省计算机考证发证中心
  18. 字体图标网站---常用汇总
  19. plecs仿真/四相交错并联PFC,非线性载波控制,无需采样输入电压,THD<1%
  20. 区块链的数据结构(一)——区块、链

热门文章

  1. Windows找不到文件‘chrome’。请确定文件名是否正确后,再试一次。
  2. 男子一口气充了90年爱奇艺会员被刑拘,薅羊毛也有基本法则?
  3. STC单片机官网链接
  4. OpenCV-Python学习(8)—— OpenCV 颜色表操作(cv.LUT、cv.applyColorMap)
  5. 2021-07-27 mybatis 一对多封装进阶 (单字段/单属性封装)
  6. window修改mysql端口_修改mysql端口(Windows免安装版)
  7. 记一次排查NN CPU过高线程卡住问题
  8. 记一次ssh免密登录失败的debug经历
  9. @Autowired详解
  10. 快速删除txt文本数据中的某一列