🧭 学习路线总览
阶段一:核心进阶(夯实基础)
- 现代 C++ 特性(C++11/14/17/20):深入理解 auto、lambda 表达式、右值引用、智能指针、并发库等特性。github
- STL 深度掌握:熟悉 vector、map、set 等容器的底层实现与使用场景。维基百科
- 内存管理与异常安全:掌握 RAII、智能指针(unique_ptr、shared_ptr)、异常处理机制。
- 模板与泛型编程:学习函数模板、类模板、模板特化、SFINAE 等高级用法。
- 面向对象设计与设计模式:理解 SOLID 原则,掌握常用设计模式如单例、工厂、观察者等。
阶段二:高级专题(深入理解)
- 并发与多线程编程:使用 std::thread、mutex、condition_variable 等实现多线程程序。
- 网络编程与系统开发:学习 socket 编程、HTTP 协议、RPC 框架等,构建高性能服务器。
- 模板元编程与类型萃取:掌握 constexpr、type_traits、模板递归等技术,实现编译期计算。
- 编译与链接机制:理解编译器工作原理、链接过程、符号解析等底层机制。
- 性能优化与调试技巧:学习使用 gprof、valgrind、perf 等工具进行性能分析与优化。
阶段三:实战与项目驱动
项目实践:通过开发实际项目,如轻量级 Web 服务器、JSON 解析器、迷你数据库等,巩固所学知识。
开源项目参与:阅读并参与优秀开源项目,如 workflow、muduo 等,提升实战能力。
算法与数据结构:持续刷题,掌握常见算法与数据结构,提升问题解决能力。
📚 推荐学习资料
书籍推荐
- 《Effective C++》:Scott Meyers 编写的经典之作,提供了多条编写高质量 C++ 代码的建议。
- 《STL 源码剖析》:侯捷老师著作,深入解析 STL 的底层实现机制。
- 《深度探索 C++ 对象模型》:了解对象模型、虚函数表等底层实现细节。
- 《C++ 并发编程实战》:Anthony Williams 编写,系统讲解 C++11 并发编程。
- 《C++ Templates》:David Vandevoorde 等人著作,深入探讨模板编程。
视频课程
- 侯捷老师 C++ 系列课程:涵盖面向对象编程、STL、内存管理等内容,深入浅出。
- 黑马程序员 C++ 高级课程:系统讲解 C++ 高级特性与实战项目开发。
- 清华大学郑莉《C++ 语言程序设计》:权威高校课程,适合系统学习 C++。
🛠️ 实战项目推荐
- 轻量级 Web 服务器:实现支持多线程的 HTTP 服务器,掌握网络编程与并发控制。
- JSON 解析器:编写一个支持基本 JSON 格式的解析器,理解递归下降解析等技术。
- 迷你数据库系统:实现支持基本 SQL 查询的小型数据库,学习 B+ 树、索引等数据结构。
- 参与开源项目:如 workflow、muduo 等,阅读源码,提交 PR,提升实战经验。
🔗 在线资源推荐
- cppreference:权威的 C++ 参考手册,涵盖各版本标准。
- LearnCpp:系统的 C++ 教程网站,适合自学。
- GeeksforGeeks:提供丰富的算法与数据结构教程,适合刷题练习。