学习 C++ 的一点浅薄经验

简介: 工作所需,需要学习下 C++,今天就谈一下自己是怎么快速学习 C++,并且在工作中实际上手开发的,希望能够给大家一些启发。

工作所需,需要学习下 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++》等。

当然学习其他任何一门语言都是类似的,熟悉基础语法+看优秀项目+刻意练习+项目实战,你可以根据自己的实际情况进行借鉴,找到最适合自己的学习节奏。

相关文章
|
2月前
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
56 0
|
17天前
|
Java 编译器 C++
c++学习,和友元函数
本文讨论了C++中的友元函数、继承规则、运算符重载以及内存管理的重要性,并提到了指针在C++中的强大功能和使用时需要注意的问题。
12 1
|
3月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
3月前
|
人工智能 分布式计算 Java
【C++入门 一 】学习C++背景、开启C++奇妙之旅
【C++入门 一 】学习C++背景、开启C++奇妙之旅
|
3月前
|
存储 自然语言处理 编译器
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
|
3月前
|
小程序 C++
【C++入门 二 】学习使用C++命名空间及其展开
【C++入门 二 】学习使用C++命名空间及其展开
|
3月前
|
存储 C++ 索引
|
3月前
|
存储 C++ 容器
|
3月前
|
C++
C++基础知识(四:类的学习)
类指的就是对同一类对象,把所有的属性都封装起来,你也可以把类看成一个高级版的结构体。
|
3月前
|
算法 C++ 容器