自由职客主页

Stack Overflow上最受推荐的程序员书籍

2018-04-27 14:35

国外知名网站 stackoverflow 上曾有一个问题调查: 哪本书是对程序员最有影响、每个程序员都该阅读的书, 这个调查吸引了 153,432 人访问,读者共推荐出了 478 本书,其中最火的一本书已经被顶了 1333 次。


如果你是个程序员,相信你一定有兴趣看看这些书都是哪些:


第一名:1333票《代码大全(第二版)》



● 出自著名IT畅销书作者史蒂夫·迈克康奈尔之手

● 曾被《软件开发》杂志授予优异产品震撼大奖


第2版的《代码大全》是对第一版完全进行了重写;增加了很多与时俱进的内容。是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。


这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。可以说,无论是什么背景的读者,阅读这本书都有助于在更短的时间内、更容易地写出更好的程序。



第二名:1181票 《程序员修炼之道》



《程序员修炼之道》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。


尽管这本书写于1999年,但是它的概念是我们以一种务实的态度去开发复杂系统的基础。程序员也是工匠,他们被训练使用一组特定的工具(编辑器,对象管理,版本跟踪器)生成某种可在一定环境中(硬件组件上的操作系统)工作的产品(程序)。



第三名:701票《计算机程序的构造和解释》



以一种对解决问题和编程技术分析和严谨的态度,这本书面向于工程。这本书进一步解释了4个最著名的编程语言范式——命令式编程,面向对象编程,基于逻辑编程和应用性编程。



第四名:572票 《C程序设计语言》



在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书原著即为C语言的设计者之一Dennis M.Ritchie和著名计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。


我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。对于计算机从业人员来说,《C程序设计语言》是一本必读的程序设计语 言方面的参考书。



第五名:481票 《算法导论》



这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。


涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。



第六名:478票 《重构:改善既有代码的设计》



Martin Fowler写的《重构Refactoring》主要关于改进现有代码的设计。这是一个改变软件系统而不改变代码的外部行为,却能提高它内部结构的过程。


《重构:改善既有代码的设计》(中文版)的核心是一份完整的重构名录(catalog of refactoring),其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显,但不要小看它们,因为理解这类技术正是能否顺利进行重构的关键。



第七名:447票 《人月神话》



这本书为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。书中的内容来自布鲁克斯在IBM公司System 360家族和OS 360中的项目管理经验。



第八名:440票 中文版《设计模式》



这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。



第九名:394票 《计算机程序设计艺术 (第一卷)》



这又是一部经典之作。由著名的计算机科学家教授Donald Knuth编著,并得到行业内众多顶尖程序员的一致好评。甚至连比尔盖茨也对这本书赞誉有加


本书第1卷首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。



第10名:364票 《编译原理》



这本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。



第11名:329票 《Head First 设计模式》



看上去最不像技术的编程书籍!每个页面都包含涂鸦、图片以及其他一些吸引眼球的东西。可能给人的印象是一本阅读起来很轻松的书,但事实上它会讨论编程的一些核心主题——设计模式。


这本书虽然没有覆盖所有存在于这个世界的模式,但是会涵盖所有你可能需要用于解决现实问题的模式。它将帮助你创建功能性的,优雅的,可重用的和灵活的软件。大多数关于设计模式的书籍谈论的是如何实现模式,但这本书的作者同时还解释了为什么以及怎么样。