工作所需,需要学习下 C++,今天就谈一下自己是怎么快速学习 C++,并且在工作中实际上手开发的,希望能够给大家一些启发。
基础语法
用最快的速度熟悉基础语法,可以看书,看博客等,这里推荐两个学习 C++ 还不错的库,里面有一些代码示例,可以跟着敲一下,基础语法几天就能够熟悉了。
想要进一步巩固下基础语法知识,可以在 leetcode 刷下题,算法这玩意儿,多刷下总没坏处的,毕竟面试必考,两者兼得。
注意刷题只是手段,不是目的,尽量挑一些自己能够搞定的 easy 题目,要是你之前刷过,则可以根据自己的实际情况来选择。
做不出来的题目,5 分钟之后直接看答案,不要死磕,看看别人写得优秀的代码,刻意练习模仿,刚开始的时候,抄别人的代码不丢人。
开源项目
基础语法熟悉了,可以看看优秀的项目,逛逛 Github Trending 就会有所发现,或者上知乎搜一下,我比较关注分布式、存储领域,所以我看了下 leveldb、rocksdb、braft、brpc 的代码。
当然并不是逐行去细读,了解项目大概是个啥就行。
如果你关注其他的领域,可以对照看下优秀的开源项目,在这上面应该就能找到很多:https://github.com/fffaraz/awesome-cpp
可以把项目 clone 到本地,按照文档的指示编译一下 run 起来。
这些开源项目基本都会有一些 example 代码,就是展示怎么使用这个库的,可以跟着敲一下里面的代码,然后顺着方法调用的路径,了解项目的代码细节。
如果在项目中遇到一些经常出现的概念或者关键字,但是之前学习基础知识的时候又没啥印象,可以再回去学习或者回顾一下。
实际上手
语法和项目都有所了解了,可以看看自己公司内的项目了,然后再去承担一些小的需求,自己实际上手,能够得到更大的锻炼。
如果自己动手写起来还是很生疏,挺正常的,如果有时间的话,可以自己写一个简单的项目,模仿着别人的项目写也行,重要是能够自己编码,刻意练习。
避坑指南
就 C++ 来说,因为这门语言有点复杂,所以我总结了一些避坑指南:
1、环境尽量使用 Linux 发行版系统(Ubuntu、Debian、CentOS 等) 或者 Mac,可以用虚拟机自己搞一个,或者 docker 容器也挺方便的,避免使用 windows!
2、可以使用 vscode 远程连接进行开发(vim 折腾起来有点麻烦,浪费精力。。。)
3、善于利用公司的资源,公司的服务器、项目代码、第三方库等等
4、尽量不要在环境搭建上浪费太多的精力
好了,这就是我学习 C++ 的经验,鉴于 C++ 实在是比较复杂和庞大,目前只能说刚入门,后续如果想要系统学习的话,可以看一些经典的书籍,比如《C++ Primer Plus》、《Effective C++》等。
当然学习其他任何一门语言都是类似的,熟悉基础语法+看优秀项目+刻意练习+项目实战,你可以根据自己的实际情况进行借鉴,找到最适合自己的学习节奏。