想成为更好的程序员,需要读吗?我需要读什么书?其实在我成为软件工程师之前,我也向很多导师请教过这个问题,我也收到过很多建议,我也从这些建议中学到了很多东西。渐渐地,我也总结出如果想成为顶级开发者,哪些书是必读的。这些书不会让你马上成为伟大的程序员,但它们是影响了无数程序员的书,阅读它们可以帮助开发人员在职业生涯早期避免一些重大错误。以下是书单详情:1.《修改代码的艺术》我非常喜欢这本书,因为每个软件开发人员在其职业生涯的某个阶段都需要面对遗留代码,MichaelFeathers提供了详细的策略,可以更有效地处理大型,untestedlegacycodebases在测试、重构和添加特性方面给出了很多实用的建议,是所有程序开发者的必读之作。2.《人月神话》这本书很经典。虽然已经出版这么久了,但还是跟软件产品开发有关。如果你从事软件开发,本书是必读之书。全书最有价值的部分是【未雨绸缪】,虽然目标是打造更好、更大、更强的软件,但不得不承认,建设的很多部分必须舍弃重建,这点很通用,因此变更计划的组织结构非常通用。本书内容来源于Brooks博士在IBM的SYSTEM/?家族和OS/360的项目管理经验,堪称软件开发项目管理的典范。3.《设计模式》如果你打算成为一名系统架构师,那么你可能需要仔细阅读这本书。本书被誉为最伟大的软件开发书籍之一。不同的设计模式,为了帮助软件工程师避免和处理一些常见问题,遵循本书的原则,可以帮助你创建更高质量、更灵活、更易维护的软件。4.《编程珠玑》这本书与列表中的其他书略有不同。可以说这本书帮助一个人“像程序员一样思考”。《编程珠玑》是15个专栏的总结,之前发表在世界著名期刊《ACM通讯》上,这些专栏涵盖了与编程相关的广泛主题:从需求收集到性能调优。重点主要放在编码技术和算法上。每个专栏都被重新组织成一个章节。章节通常以提出一个实际问题开始。然后以清晰有趣的风格呈现各种解决方案。《编程珠玑》不是普通的教授新编程概念的书。虽然它包含一些好的想法,有时甚至是新颖的想法,但本书的目的不是教授新东西,而是帮助您成为更好的问题解决者。5.《编码》这本书为创建和开发复杂系统扫清了很多障碍。抽象如此之多,以至于开发人员有时不知道底层的细节。你一定没有意识到你在工作中无时无刻不在使用这本书的内容,但我认为有必要了解你正在构建整个项目,当你想了解这些知识时以及当你深入研究软件或硬件修复bug,这本书或许能派上用场。CharlesPetzold的书介绍了计算机工作原理的各个方面,从十进制、八进制、二进制到高级语言,并解释了基于包的编程。通信协议和TCP,很多章节都是和硬件相关的。6.《计算机程序设计艺术》又是一个经典。它由著名的计算机科学家DonaldKnuth教授编写,受到了业内众多顶级程序员的高度评价。连比尔·盖茨都说:如果你认为自己是一个真正优秀的程序员……读一读[Knuth的]《计算机编程的艺术》……如果你能读完它,你一定要寄一份简历给我。本书从基本的编程概念和技术开始,然后更多地关注信息结构——计算机内部信息的表示、数据元素之间的结构关系以及如何有效地处理它们。模拟、数值方法、符号计算、软件和系统设计的基本应用。7.《重构》MartinFowler的是关于改进现有代码的设计。它是以不改变代码的外部行为,但改进其内部结构的方式改变软件系统的过程。通过重构,您甚至可以将糟糕的设计变成好的设计。本书对重构的原则进行了详尽的讨论,包括在哪里发现重构机会,以及如何设置所需的测试。还有一个包含40多个经过验证的重构的目录,其中详细说明了何时以及为何使用它,如何逐步实施它,并举例说明了它的工作原理。本书以Java作为主要语言编写,但其中的思想适用于任何OO语言。8.《代码整洁之道》鲍勃叔叔的《代码整洁之道》分为三个部分。第一部分描述了编写干净代码的原则、模式和实践。第二部分包括几个越来越复杂的案例研究。每个案例研究都是清理代码的练习——将有一些问题的代码库转换为可靠且有效的代码库。第三部分是“嗅觉与启发式”,这是一个包含启发式和案例研究集合的单章,最后是一个知识库,描述了我们在编写、阅读和清理代码时的思维方式。9.《算法导论》这应该是理解和使用算法最好的书了。有些关于算法的书很严谨但不完整,有些书很宽泛但不严谨。《算法导论》既严谨又全面。本书涵盖算法的广度和深度,使得书中的设计和分析适合各个层次的读者。每一章都相对独立,可以作为一个学习单元。算法以英文和伪代码描述。讲解方式简单粗暴,但又不失内容的深度和材料的严谨性。第一版不仅在世界各地的高校中广泛使用,而且成为专业人士的标准参考书。第二版增加了算法、概率分析、随机算法和线性规划的章节。10.《计算机程序的构造和解释》本书以工程为导向,通过分析严谨的问题求解方法和编程技术,强调计算模型中处理时间的不同方式所发挥的核心作用。其独特的方法使其适用于入门计算机科学课程,以及编程语言和程序设计。本书进一步解释了四种最著名的编程语言范例——命令式、面向对象、基于逻辑和应用程序编程。11.《程序员修炼之道》这是我最早读的编程书籍之一。虽然这本书写于1999年,但在今天仍然很有用。程序员是训练有素的工匠,他们使用一套工具(编辑器、对象管理器、版本跟踪器)来创建某种产品(程序),这些产品(程序)将在某种环境(硬件组装上的操作系统)中运行,计算机编程与任何其他工艺一样,它会产生大量的智力,而这些智力大多不是在大学或中学教授的认证课程中教授的。在《程序员修炼之道》12.《代码大全》如果你想成为一名优秀的软件工程师,这本书值得一读,被广泛认为是编程的最佳实践指南之一,作者史蒂夫麦康奈尔《代码大全》一直在帮助开发人员编写更好的软件十多年来。现在这本经典书籍已经完全更新和修订,并结合了前沿实践——以及数百个新代码示例——来说明软件构建的艺术和科学。McConnell将最有效的技术和必须了解的原则汇编成清晰、实用的指南。无论您的经验水平、开发环境或项目规模如何,本书都将为您提供有用的信息并激发您的思维——并帮助您构建最高质量的代码。
