ThoughtWorks西安办公室搞了一个“开放日”活动,邀请在校学生来参观我们的工作环境,了解IT行业以及ThoughtWorks这家公司。在开放日上,遇到了西安电子科技大学的李朝印同学,一个好学的小孩,跟他谈到阅读一些根本性著作的重要性。
有点出乎意料,李同学晚上给我发来邮件:
下午和你聊到计算机“树根”,我想做个2~3年的阅读计划把这些最核心的知识吃透。以下是一个书单:
- The C++ Programming Language
- Computer Systems: A Programmer’s Perspective
- Indroduction to algorithm
- Compliers:Parinciples, Techniques, and Tools
- Code Complete
- The Pragmatic Programmer
- Refactoring: Improving the Design of Existing Code
- Thinking in java
- Effective C++
- The Art of Computer Programming(First Volume Hardcover)
这些是我根据网上大家的建议大致列出的,不足或不妥之处希望你能指出!
我的回复:
不错的书单。具体说起来,C++ Programming Language(如果你是指Stroustrup那本的话)比较生涩而且过于细节化,作为语言向导而言不如C++Primer。TAOCP很艰深,需要量力而为。算法导论和编译原理应该都是专业课里的内容,把课程和自学结合起来可以事半功倍。另外我推荐SICP,这本书关于计算本质的介绍是你的书单(以及整个中国的计算机教育)所缺少的。如果能用两三年把这些书读完(不一定”吃透”,吃个七八分透就够了),对自己的水平提升是非常有好处的。另外记着读万卷书行万里路,多读书同时多写代码,学以致用是长进最快的。
不由得想起十年前在学校里,跟虫虫、孟岩等人一起读书的时光。好学的年轻人总是让人看着充满希望。