第 14 章 学习完基础 C++,接下来路在何方?
首先,恭喜你已经学习完了本书的全部内容。如果你能理解这本书几乎所有的内容,说明你不仅能对 C++ 有一个比较深刻的了解,同时说明你的其他计算机基础课程学得也不错。下面是一些可以参考的进阶方向:
- 继续学习 C++:可以阅读一些经典的 C++ 著作,例如《Essential C++
Effective C++》 《 C++ Primer》 《 STL 源码剖析》等,这些书能够给你更完整、更系统化的 C++ 体系讲解,让你对 C++ 的理解更加深刻;》 《 - 学习 Java、Python 等语言:Java 与 C++ 的设计有很多共同之处,学习完 C++ 之后再去学习 Java,会降低很多学习压力。你将能更快地理解 Java 中的设计逻辑(例如泛型类型擦除、迭代器模式、异常机制、标准类库、内存管理方式、并发编程等
而在 AI 时代,Python 语言在 LLM 模型训练与微调、数据科学与大数据分析甚至嵌入式开发中的作用也越来越凸显。学习 C++ 以后可以降低你对 Python 的学习压力。同时使用 ctypes 等库也能够方便地在 Python 中引入 C 与 C++ 的库,提高 Python 程序的运行效率;) 。 - 学习 C 语言与嵌入式开发:C 语言的设计与 C++ 有一定的不同之处。最显而易见的区别是 C 没有对 OOP 的支持,同时 C 的一些库的底层机制与使用方式也与 C++ 不同。虽然很多嵌入式开发者正在尝试向嵌入式开发中引入 C++、Python 甚至 Rust 等语言,但是使用 C 语言仍然是各单片机中适配面最广、文档最完善的开发方式。通过循序渐进地学习 STM32 SPL 与 HAL 库的使用方式、树莓派 Pico 与 ESP32 等单片机中 MicroPython 的使用方式、学习 FreeRTOS、Zephyr 等嵌入式实时操作系统的使用方法,当你掌握了这些工具之后,你就具备了从 “软件开发者” 向 “嵌入式开发者” 跨越的基础能力 —— 你也可以将自己在数字世界中的想法转换为看得见、摸得着的硬件。
下面是一些你在学习与开发过程中可能用到的资源:
- Cpp Reference:这里收录了 C++ 几乎所有的标准库、语法、开发方式、惯用手法与技巧,能够帮助你掌握关于 C++ 高效开发的大部分内容;
- Stack Overflow:这里是面向程序员与高级开发者的专业知识问答社区,在开发期间遇到的几乎所有疑难杂症都可以在这里找到答案。在向社区提问前,推荐阅读本书附录中的提问的智慧,提高自己获得回答的质量,同时不为社区中的其他用户造成麻烦。
无论你选择哪个方向,C++ 都会是你理解和学习其他技术的坚实基础。它的底层控制力、零开销抽象和对硬件的亲和力,让你在学习 Java 时能理解 JVM 的设计取舍,在学习 Python 时能理解 CPython 的实现原理,在学习嵌入式时能直接操作寄存器。C++ 是一种 “向下兼容” 的语言 —— 你学得越深,越能感受到它对其他领域的辐射力。