“蹉跎莫遣韶光老,人生唯有读书好”。马上又到#世界读书日#了。程序员必读的十本书,你都看过了吗?
1.《代码大全》(第二版)作者:[美]史蒂夫·迈克康奈尔
第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。这本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论是什么背景的读者,阅读这本书都有助于在更短的时间内、更容易地写出更好的程序。
2.《程序员修炼之道》作者:AndrewHunt/DavidThomas
《程序员修炼之道》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。
3.《计算机程序的构造和解释》作者:HaroldAbelson/GeraldJaySussman/JulieSussman
《计算机程序的构造和解释(原书第2版)》年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。
4.《C程序设计语言》作者:(美)BrianW.Kernighan/(美)DennisM.Ritchie
在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书原著即为C语言的设计者之一DennisM.Ritchie和著名计算机科学家BrianW.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。
原著第2版根据年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。对于计算机从业人员来说,《C程序设计语言》是一本必读的程序设计语言方面的参考书。
5.《算法导论》作者:[美]ThomasH.Cormen/CharlesE.Leiserson/RonaldL.Rivest/CliffordStein
这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了多个练习题和思考题以及叙述较为详细的实例研究。
6.《重构:改善既有代码的设计》作者:MartinFowler
重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。
7.《设计模式》作者:[美]ErichGamma/RichardHelm/RalphJohnson/JohnVlissides
这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。
书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。
8.《人月神话》作者:[美]弗雷德里克·布鲁克斯
作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。书中的内容来自布鲁克斯在IBM公司System家族和OS中的项目管理经验。初版的20年后,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。新增加的章节包括:原著中一些核心观点的精华;在经过了一个时代以后,Brooks博士对原先观点新的认识;年的经典文章《没有银弹》;对年所下论断(在10年内不会出现银弹)现在的认识。
9.《计算机程序设计艺术》(共5册)作者:DonaldE.Knuth
《计算机程序设计艺术》重译自DonaldE.Knuth的三卷著作:TheArtofComputerProgramming:1.FundamentalAlgorithms;2.SeminumericalAlgorithms;3.SortingandSearching;三卷中文名为《基本算法》、《半数值算法》及《排序与查找》。本书内容博大精深,作者因为三卷书获得美国计算机协会年图灵奖(该奖被国际公认为计算机科学领域的最高奖项)。
10.《编译原理》作者:AlfredV.Aho/MonicaS.Lam/RaviSethi/JeffreyD.Ullman
《编译原理》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理》进行了全面修订,涵盖了编译器开发方面最新进展。每章中都提供了大量的实例及参考文献。