这样读源码，不牛X也难程序员在工作过程中，会遇到很多需要阅读源码的场景，比如技术预研、选择技术框架、接手以前的项目、review他人的代码、维护老产品等等。可以说，阅读源代码是程序员的基本功，这项基本功是否扎实，会在很大程度上影响一个程序员在技术上的成长速度。
2014年写《
Qt on Android核心编程
》和《
Qt Quick核心编程
》时，很多内容都是通过分析Qt源码搞明白的。这阵子研究CEF和PPAPI，也主要靠研究源代码来搞明白用法。最近工作上要修改已有项目的一个子系统，也是得硬着头皮先读懂代码。
总之在开发工作这十来年中，读过太多源码了，从源代码中学习到太多东西了，如果不阅读源代码，真不知道自己能否成长起来。
写代码是从模仿开始的，提高也是从观摩别人的优秀设计和代码开始的。所以阅读源码至关重要，接下来咱从下列方面聊聊阅读源码的事儿。
目的
工具
知识准备
运行与开发环境
笔记
实用技巧
心理调试（散步在各个环节）
目的
当我们阅读面前的源码时，无非有以下几种目的：
纯粹学习
添加新功能
重构旧代码
修复他人的Bug
不同的目的会有不同的心情，会影响到工作的进展，像修复他人的Bug这种事情，类