2.Computer System: A Programmer’s Perspective (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
3.Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
4.Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
5.The C Programming Language
6.The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
7.The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
8.Clean Code / Implementation Patterns
9.Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
10.Refactoring (《重构》)
云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人):
如果面试,我会挑以下的我自己读过的书,让人选择他也读过的部分,再了解他对这些书的理解。这些书其实本质上就是两类,对所面对的东西(程序语言也好,操作系统也好,底层设施也好)本身的理解程度。以及另一类:对设计思想和原则的理解:
1.C++编程思想
2.Effective C++
3.深度探索C++对象模型
4.C++语言的设计和演化
5.C专家编程
6.C陷阱与缺陷
7.C语言接口与实现
8.Lua程序设计
9.Linkers and Loaders
10.COM本质论
11.Windows核心编程
12.深入解析Windows操作系统
13.程序员修炼之道
14.代码大全
15.UNIX编程艺术
16.设计模式
17.代码优化:有效使用内存
18.深入理解计算机系统
19.深入理解LINUX内核
20.TCP/IP 详解
冯大辉(丁香园CTO,贝塔咖啡创始人):
1.软件随想录
2.黑客与画家
3.重来
4.UNIX编程艺术
5.编程人生
洪强宁(豆瓣技术总监):
StackOverflow上有一个程序员必读书单帖子,这里仅列出top10,更多参考这里。
1.Code Complete 2
2.The Mythical Man-Month (《人月神话》)
3.Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
4.TAOCP (不解释)
5.The Pragmatic Programmer (《程序员修炼之道》)
6.Design Patterns (《设计模式》)
7.The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
8.Refactoring (《重构》)
9.The C Programming Language
10.Introduction to Algorithms (《算法导论》)
郑昀(窝窝团研发副总裁):
1.工程师入门: 1.Code Complete 2
2.程序员修炼之道
3.深入理解计算机系统
2.工程师升级: 1.设计模式
2.重构——改善既有代码的设计
3.工程师转型: 1.快速软件开发——有效控制与完成进度计划
2.人月神话
3.IT项目管理那些事儿
4.软件随想录
5.最后期限
6.走出软件作坊
7.你的灯亮着吗?——发现问题的真正所在
张峥(微软亚洲研究院副院长):
1.Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
2.Data Structure and Algorithms
3.The C Programming Language
4.The Design of the UNIX Operating System
5.Compilers (龙书)
6.Computer Architecture: A Quantitative Approach
7.Flow
8.Outliers (why hard work and luck are both important)
邹欣(MSRA创新工程中心首席研发经理):
关于创新的书籍(http://book.douban.com/doulist/1253169/):
1.The Myths of Innovation
2.The Innovator’s Dilemma
3.The Innovator’s Solution
4.Crossing the Chasm
5.Inside Intuit
6.盛田昭夫
7.杰克·韦尔奇自传
8.梦断代码
9.Innovation
10.浪潮之巅
作者:Kevin Taylor
来自:Focus on Java
原文:http://java.about.com/od/advancedjava/tp/mustreadjava.htm
Kevin Taylor对Java书籍的推荐,关于并发的书籍我在书店里好像没看到过。在Web方面只有Java Servlet Programming登场,JSP等并没有提到。开发工具方面也没有一本,这是我觉得比较可惜的。
1. 《Thinking in Java》(Java编程思想)
作者:Bruce Eckel
Eckel将幽默、实践性强的实例和编程的思想融入书中。这本书全面的介绍了Java语言及其核心的API。尽管这本书面向的是初学者,但他的大部分章节仍对有经验的程序员有益处,特别是面向对象编程方面的知识。
2. 《Java in a Nutshell》
作者:David Flanagan
这本书是对有经验的程序员经典的初级读本。它以简捷的Java编程语言为开头。然后深入的介绍了大部分重要的Java API类。这本书包括了很多有用的程序片断,例如Strings、Collections、I/O等。
3. 《Effective Java Programming Language Guide》 (Java高效编程指南)
作者:Joshua Bloch
在你写过一些Java程序后,这本书就适合你了。它包括了中高级的编程思想,例如创建和销毁对象最好的办法,有些的重载equals()和hashcode(),检查相对尚未检查的异常,等等。这本书可能是最好的Java书籍。
4. 《Java Examples in a Nutshell》
作者:David Flanagan
这本书补充了《Java in a Nutshell》遗漏的部分。它提供了对API Class简练的实例。如果你想学习如何开发一个Swing GUI程序,执行JDBC查询语句,加密信用卡密码,解析XML文档等等,这本书里都可以找到答案。浏览很多实用的例子是探究Java API的一条很好的途径。
5. 《Swing, Second Edition》
作者:Pavel Vorobiev, Matthew Robinson
Swing是Java程序主要的GUI工具。这本书可说是Swing方面的圣经,它包括了一个教程和一份为高级Swing开发者准备的参考资料。它不是一本介绍性的书。但是如果你大部分是写MVC、用户界面设计、事件处理,这本书就是你应该读的。
6. 《Java Servlet Programming, 2nd Edition》
作者:Jason Hunter
这本书是Java Web程序方面的经典书籍。这本书包括了所有一般Web程序遇到的问题的代码实例,包括输入处理,接受上传文件,与数据库的通讯等。
7. 《Enterprise JavaBeans》
作者:Richard Monson-Haefel
虽然J2EE包括了很多东西,而不仅仅是EJB,但EJB是J2EE规范下主要的力量。这本书将简明地展示每一样你需要知道的关于EJB各种不同部分。不论你是否计划使用EJB,你都需要知道这项重要的技术。
8. 《Expert One-on-One J2EE Development without EJB》
作者:Rod Johnson, Juergen Hoeller
这本书是没有EJB的J2EE开发方面的权威书籍。 作者展示了如何使用流行的、轻量级的构架和object-relational mapping工具,来脱离复杂的EJB而让企业级程序更好。
9. 《Concurrency: State Models & Java Programs》
作者:Jeff Magee, Jeff Kramer
多线程编程是一个高级的主题,但是Java允许任何程序员产生线程。这本书在建模和实现并发程序上提供了一个坚实的理论与实践的基础。
10. 《Concurrent Programming in Java》
作者:Doug Lea
当你明白实现线程的语法后,读这本书将会学到如何正确有效地使用它。它深入的介绍了并发与平行编程。