我的工作经历当中也有一段时间是做c++的,从入门到做东西大概1个月时间,浅浅的分享下我个人的学习经验;
(资料图片)
c++ 确实比较难,难在它的语法四不像,还有很多陌生的概念,比如友元函数、智能指针、const 关键词(使用点确实很多,用在不同的地方作用也不一样),但是这并不妨碍我做东西;
从业者跟学生面对学习c++这个问题的切入点也不一样,传统学习方法是先语法、后模仿,但是工作的时候并不会留很多时间让我们深究语法,这个时候就需要摈弃将所有语法全部吃透的思想,而是缩小学习成本、带着目标去学习;
所以我的学习方法可能并不适合所有人,至少我是这样认为的;
0、调整畏难心态
大家都看过《倚天屠龙记》吧,赵敏武当山上围攻明教,张三丰教张无忌太极的时候说过一句台词:"无忌,你忘记了吗",这句话其实是在打消我们的抵触心态(因为我都掌握其他技能了,为什么还要学这个),为学习新技能放下心理包袱,摈弃抵触心理;
1、降低学习成本
我接触c++的契机是因为项目需要做高性能推理,这个项目是基于 Nvidia tritonserver 的二次开发项目,所以我是直接git clone 项目源码,然后通过我自己提出来的最小范围学习法用最快的时间吃透语法,实时上我学习语法只看了两个文件, 和 ,并切通过ChatGPT帮助我理解不懂的语法,理解后的语法我会一行一行注释到源文件当中,因为人脑接触并消化知识的速度并不快,而且艾宾浩斯遗忘曲线告诉我们大脑并不可靠;
为什么我可以快速降低学习成本:
1、Nvidia是一个非常牛的科技公司,这个开源项目配备的团队、人员都是顶尖高手,所以他们开源的项目编码规范肯定是统一的;
2、看的开源项目多了,你就明白github上大公司的垃圾项目很少;
2、加一行log打印试试
这个步骤其实是寻求正向反馈的时机,不要小看这一行log哦,这是进行二次开发的第一步,等项目开始运行起来,并且你新增的代码生效的时候,你已经迈向成功一大步了;
3、擅用GDB
通过开源项目学习一门新语言是最快的,而开源项目最让我们头疼的是代码量极大、逻辑及其复杂、老外写代码的组织方式完全看不懂;
这个时候如果单纯通过静态代码走读的方式去学习,很容易就疲惫了,再加上如果结构体繁多、逻辑计算复杂,很容易就迷失在代码泥潭当中;
最好的方式是让程序运行起来,了解程序当中的对象状态变化、数据流变化、程序逻辑,这可比打日志、重复编译来的快多了,因为打日志你也得先走读代码后再改对不?
GDB 是快速熟悉 C、C++项目的利器,完全无脑运行,仅仅通过 start、next、step 等命令就可以清晰的了解到程序的执行逻辑;
这里我推荐大家可以去看下我先前录制的 GDB + Tritonserver 二次开发的B站视频,里面都是干货,并且一个视频大概在10min左右,非常方便大家在闲暇时间观看;
当然还有Golang相关的专题大家也可以看看:
感谢各位的关注:
录制视频还是挺辛苦的,还好这是我的爱好,所以即便身体、大脑很累,但是心里却很开心;
希望我的视频可以给大家带来一点收获、一点灵感;
当然如果您可以关注我,那是最好的了,这是对我的极大帮助,大家的点赞关注是对我的极大
鼓励,我会持续输出有用的内容给大家!
Copyright © 2015-2022 北方产业网版权所有 备案号:京ICP备2021034106号-50 联系邮箱: 55 16 53 8@qq.com