C++ 基础
入门阶段建议从标准语法与底层机制入手。
- 《The C++ Programming Language》:经典权威,适合查阅语言规范。
- 《C++ Primer》:系统讲解标准 C++ 语法,适合初学者建立完整认知。
- 《数据结构》:夯实算法与存储基础。
- 《Effective C++》《More Effective C++》:通过具体条款提升编码习惯。
- 《Inside the C++ Object Model》:深入理解对象模型、多态与虚函数表机制,面试中常涉及此类底层问题。
- 《高质量 C/C++ 编程》:重点掌握内存管理与指针操作。
- 《STL 源码剖析》《C++ 标准库》:了解标准库实现细节,虽部分书籍可能较旧,但核心思想依然适用。
界面编程
若选择微软技术栈,可学习 MFC;若倾向开源跨平台方案,wxWidgets 是通用且简单的选择。访问官网下载示例后,建议在 Visual Studio 中调试运行,尝试修改代码、添加按钮及响应事件。完成这一步后,即可构建带界面的小型应用程序。
相关参考书籍:
- 《Windows 程序设计》
- 孙鑫《VC++ 深入详解》
- 侯捷《深入浅出 MFC》
- 《VC++ 技术内幕》(第四版):介绍 VC++ 与 MFC 类库细节。
高级主题
- 《现代操作系统》:重点关注进程线程调度、死锁等概念。
- 《程序员的自我修养——链接、装载与库》:理解编译链接过程,避免简历夸大导致面试尴尬。
- 《深入理解计算机系统》(CSAPP):中文译名虽怪,但内容极佳。
- 《鸟哥的 Linux 私房菜》:至少掌握 Linux 安装与 Shell 基础命令。
- 《UNIX 环境高级编程》(APUE):配合《现代操作系统》阅读,务必动手敲代码。
- 《Linux 命令行与 shell 脚本编程大全》:体验脚本语言后,更能体会 C/C++ 的严谨与繁琐。
- 《Win32 多线程编程》《Windows 核心编程》:深入 Windows API 与并发模型。
- COM 编程、并行程序设计、ATL 等:根据实际需求拓展。
库的使用
C++ 标准库功能有限,第三方库不可或缺。Boost 被称为准标准库,涵盖文本处理、算法、网络、多线程、图像处理等,几乎无所不包。其他专用库包括:ACE(网络通信)、TinyXML(XML 解析)、OGRE(图形渲染)。
网络编程
从《UNIX 网络编程》入手,理解套接字底层原理。建议动手编写回应服务器与客户端,服务端务必掌握 select 多路复用模型,进而深入 poll、epoll、IOCP 等高级模型。
设计模式
设计模式需结合项目实践,建议在阅读源码时留意常见模式的落地应用。
源码修炼
对于 C/C++ 程序员而言,阅读开源代码是从量变到质变的关键。Apache 源码由高手编写,执行效率与架构堪称典范。其内存池、线程池管理及模块封装思想具有极高的参考价值。若能透彻理解 Apache 源码细节,对工程能力的提升巨大。
此外,研读 STL 与 Boost 源码能深刻理解泛型编程。通过 MFC 或 wxWidgets 等封装良好的 UI 库,可以观察高手如何利用多态机制与设计模式构建庞大系统。
其他推荐
- 《黑客与画家》:作为散文随笔阅读,启发思考。
- 《Unix 编程艺术》:不同阶段阅读会有不同感悟。
- 《代码大全》:学生阶段可略读,工作后有助于提升专业深度。
- 《浪潮之巅》《数学之美》:开阔视野,当作小说阅读。
- 《人月神话》:书中关于人力投入的经典比喻,值得深思。

