程序员，除了看技术书籍，还可以看些什么书，有助于扩展视野和未来发展？
杰夫·阿特伍德（Jeff Atwood）说过这么一句话：“Code Tells You How, Comments Tell You Why”。我把其 扩展一下： 可见，代码并不会告诉你 Why，看代码只能靠猜测或推导来估计 Why，是揣测，不准确，所以会有很多误解。 而且，我们每个人都知道，Why 是能让人一通百通的东西，也是能让人醍醐灌顶的东西。 但是，代码会告诉你细节，这是书和文档不能给你的。细节是魔鬼，细节决定成败。这样的话我们不但听过很 多，我们做技术的也应该体会过很多。当然，我们也要承认，这些代码细节给人带来的快感毕竟不如知道 Why 后 的快感大（至少对我是这样的）。 书和文档是人对人说的话，代码是人对机器说的话（注：代码中有一部份逻辑是控制流程的逻辑，不是业务逻 辑）。所以： 因此，我认为都比较重要，关键看你的目的是什么了。 另外，看看下面的几个现象，你可以自己比较一下。 类似的情况还有很多，但从代码中收获大，还是从书中收获大，在不同的场景、不同的目的下，会有不同的答案。这里，谈一谈人的学习过程吧。从学习的过程中，我们来分析一下看代码和看书这两个活动。人对新事物的学习过程基本都是从“感性认识”到“理性认识”的。 然而，对于计算机行业这个技术创新能力超强、技术种类繁多的行业来说，我们每个人都既是新手，也是老手。 很多人问过我，如何读代码。因为我在外企里工作的时间较长，所以，我经常接手一些国外团队写的代码。我发现，虽然老外写的代码比国人好一点儿（有  Code  Review），但依然有文档缺失、代码注释不清、代码风格混乱等一些问题，这些都是阅读代码的障碍。这里，我把我的一些阅读源代码的经验分享给你，希望对你有用。 首先，在阅读代码之前，我建议你需要有下面的这些前提再去阅读代码，这样你读起代码来会很顺畅。 接下来，你要了解这个软件的代码是由哪些部分构成的，我在这里给你一个列表，供你参考。 总结一下，阅读代码的方法如下： 对了，阅读代码你需要一个很好的 IDE。我记得以前读 C 和 C++ 代码时，有一个叫 source insight  的工具就大大提高了我的代码阅读效率。说白了就是可以查看代码间相互的调用 reference 的工具，这方面 Visual Studio  做得是非常好的。