程序员必读书单

刘未鹏:面试微软前必须要读的十本书:


1. Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)


2. Computer System: A Programmer’s Approach (《深入理解计算机系统》) / 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 (《重构》)


注:

●以上同一条目下用“/”隔开的表示任选,当然你也可以都读了,相信我,时间是足够的。


●读这些书并不意味着逐字逐句从第一页读到最后一页——当然你也可以这么做。怎么是聪明高效的读法,可以参考我之前写的关于如何阅读和查找/鉴别书籍/资料的博文)


注意:以上是我个人认为你面试微软开发职位前必须要读的10本书,它不代表我的雇主的观点。它也只是一个初步的书单,肯定会受到我个人经验和眼界的限制。欢迎大家提意见。


此外,IT不同子领域的必读书单可能千差万别,所以在发布之前我把这篇文章发给了一些朋友,他们给出了自己的书单(你是不是能看到一些有趣的共同点呢):


云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人):


如果面试,我会挑以下的我自己读过的书,让人选择他也读过的部分,再了解他对这些书的理解。这些书其实本质上就是两类,对所面对的东西(程序语言也好,操作系统也好,底层设施也好)本身的理解程度。以及另一类:对设计思想和原则的理解:


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调查:对程序员最具影响的书籍:


国外知名网站stackoverflow上有一个问题调查:哪本书是对程序员最有影响、每个程序员都该阅读的书?,这个调查已历时两年,目前为止吸引了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书《Code Complete》被顶了1306次。如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信大多数人都知道,你在学校里根本学不到什么真正的工作中需要的知识,我们毕业后能帮助我们在公司中胜任工作的老师就是这些优秀的书籍,一本好书可以改变一个人的一生。


下面是这个调查中排名靠前的书的一个简单的清单:


第一名:1306票《Code Complete (2nd Ed) by Steve McConnell》,中文版《代码大全(第二版)》,两届Software Jolt Award震撼大奖得主!

cover


第二名:1161票 《The Pragmatic Programmer》,中文版《程序员修炼之道》

The Pragmatic Programmer


第三名:689票 《Structure and Interpretation of Computer Programs》,中文版《计算机程序的构造和解释》

Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)


第四名:557票 《The C Programming Language》,中文版《C程序设计语言》

The C Programming Language Book


第五名:472票 《Refactoring: Improving the Design of Existing Code》,中文版《重构:改善既有代码的设计》

Refactoring: Improving the Design of Existing Code


第六名:472票 《Introduction to algorithms》,中文版《算法导论》

Introduction to algorithms cover image


第七名:430票 《The Mythical Man-Month》,中文版《人月神话》

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)


第八名:426票 《Design Patterns》,中文版《设计模式》


第九名:386票 《The Art of Computer Programming(First Volume Hardcover)》,中文版《计算机程序设计艺术第 (第一卷)》


第10名:353票 《Compilers: Principles, Techniques, and Tools 》,中文版《编译原理》

Compilers: Principles, Techniques, and Tools (2nd Edition)


第11名:329票 《Head-First Design Patterns》,中文版《Head First 设计模式》


当然了,这里的排名并不具有什么权威性,但绝对可以说都是好书,这11本外还有很多书虽然票数不是那么多,但大家估计都耳熟能详,比如《Effective C++》(中文版《Effective C++:改善程序与设计的55个具体做法》),《Clean Code》(中文版《代码整洁之道》),《Effective Java》(中文版《Effective Java中文版(第2版)》等 。


记得有位先哲曾说过:一种编程语言的重要性并不在于语言本身,而是在于这种语言来体现出来的编程思维模式。所以说,并不是你用到的书才去读,读书是一种习惯。


张峥(微软亚洲研究院副院长):


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)


读好书是如此的重要,因为好书往往带领你去到更好的书,更大的世界。


本文来自:刘未鹏 Mind Hacks


原文地址:https://www.cnblogs.com/hosealeo/p/4190567.html