软件工程师必读的 10 本书
除了播客、视频、博客等现代社会提供的丰富资源外,阅读一本好书仍然是许多人不愿错过的体验。我读过很多关于科技领域的好书,比如软件工程,并且仍在不断学习新的模式和最佳实践。
寻找优秀的软件工程书籍并非易事,因为软件工程生态系统瞬息万变,很多内容很快就会过时。对于那些依赖于特定版本编程语言的书籍来说,尤其如此。
然而,也有一些常青书籍可供选择,这些书籍涉及元主题、设计模式或一般思维方式。
以下书籍集合了目前最受欢迎、阅读量最高的一些书籍。这些书籍至今仍具有现实意义,并且经常被高级开发人员推荐给初级开发人员。我知道时间宝贵,尤其是对软件工程师而言,但如果你有机会读一读这些书籍,它肯定会对你和你的职业生涯有所帮助。请注意,这份书单没有特定的顺序,因为所有这些书籍都同样值得推荐。
破解编码面试
《破解代码面试:189 道编程题及解答》强烈推荐给所有想要或需要参加编程面试的人。作者 Gayle Laakmann McDowell 是一位经验丰富的软件工程师,她既是面试官,也是应聘者。她可以帮助你挖掘问题中隐藏的细节,将问题分解成小块,并更好地理解概念。
此外,Gayle 还提供了 189 道真实面试题及解答,帮助你为下一次编程面试做好准备!
代码完成
史蒂夫·麦康奈尔 (Steve McConnell) 撰写的《代码大全:软件构建实用手册,第 2 版》是每个程序员一生中都应该浏览一次的书籍之一。
这是一本对软件构建进行全面分析的书,文笔流畅,在业界广受好评。它涵盖了设计、编码、调试和测试等主题。
总的来说,这本书对于拥有一到三年专业编程经验的开发者来说,投资回报率可能是最高的。但我也推荐初学者阅读,因为它能帮助你在构建软件时更有信心。
要点是什么?开发人员必须管理复杂性。编写易于维护且易于阅读的代码。
清洁代码
Robert C. Martin(Uncle Bob)所著的《代码整洁之道:敏捷软件工艺手册》是目前最受欢迎的编程书籍之一。本书旨在教授软件工程师编写整洁代码的原则。书中包含大量示例,展示如何重构代码以提高可读性和可维护性,但需要注意的是,本书主要以 Java 为中心。虽然本书中的一些模式和技术可以移植到通用编程或其他语言中,但其主要读者是 Java 开发人员。
另外需要注意的是,这本书出版于2009年。由于现在有各种工具和IDE,有些内容,比如代码格式化,在今天已经不太适用了。但这本书毕竟还是值得一读的。
重构
Martin Fowler 所著的《重构:改进现有代码设计》(第二版)一书,如同 20 年前的原版一样,解释了重构的真正含义。本书将解答您可能遇到的一些问题:
为什么要重构代码?
如何识别需要重构的代码?
如何才能成功重构代码?
读完本书后,你应该能够理解重构的流程和通用原则,并能快速将其应用到你的代码库中。你还应该能够识别团队成员代码中需要重构的“坏味道”。
《深入浅出设计模式》
Eric Freeman、Bert Bates、Kathy Sierra 和 Elisabeth Robson 合著的《深入浅出设计模式指南》教你其他开发人员常用的设计模式和最佳实践,从而创建功能性强、可复用、优雅且灵活的软件。书中还包含丰富的可视化效果,帮助你更轻松地学习新概念。
如果你想了解工厂、单例、依赖注入等等,这本书是个不错的选择。书中的示例是用 Java 编写的,所以了解 Java 或其他面向对象语言也无妨。
企业应用程序架构模式
《企业应用架构模式》是 Martin Fowler 的另一本优秀著作,探讨了企业应用开发的实践。在简短地讲解了如何开发企业应用之后,Martin 还提供了 40 多种模式,用于解决企业应用架构中常见的问题。本书还包含大量 UML 可视化图以及用 Java 或 C# 编写的代码示例。
阅读本书后,您应该能够将企业应用程序划分为多个层,了解组织业务逻辑的主要方法,使用 MVC 模式来组织 Web 应用程序,以及处理多个事务中的数据并发。
然而,这本书已经过时了,所以没有提到 REST、云或 JSON 等现代概念。它仍然值得一读,但阅读时请保持批判性思维!
有效地使用遗留代码
在 Michael Feathers 撰写的《有效处理遗留代码》一书中,作者提出了一些处理大型、未经测试的遗留代码库的策略。你可能认为现在已经是 2020 年了,遗留代码应该不再是问题,因为我们一直以来都只有干净、可维护的代码和微服务,但我向你保证,这是一种误解。遗留代码仍然是许多公司面临的最具挑战性的问题之一。
读完本书后,你应该能够理解软件变更的一般机制,例如添加功能、修复错误、优化性能和改进设计。此外,你还将学习如何准备遗留代码进行测试,以及如何识别代码需要更改的地方。
本书提供了用 Java、C++、C 和 C# 编写的示例,还提供了如何处理非面向对象的遗留代码的提示。
《程序员整洁之道》
Bob 大叔的另一本书则教授了真正的软件工艺的技巧、准则、工具和实践。《代码整洁之道:专业程序员的行为准则》充满了关于估算、编码、重构和测试的实用建议。
读完本书后,您应该能够处理冲突、紧张的日程安排和不讲理的经理;应对持续的压力并避免倦怠;管理您的时间;进入编码流程,并营造开发人员和团队可以蓬勃发展的环境。
这本书在业界颇受好评,但我认为书中并非全是真材实料。书中包含许多轶事和假设性对话,大多数情况下都得出这样的结论:开发人员最终要对自己的行为负责。甚至有一篇文章建议,如果代码中出现了 bug,开发人员应该向公司赔偿损失。
因此,我的建议是,如果您愿意的话,请仔细并批判地阅读这本书!
算法导论
Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein 合著的《算法导论》第三版堪称各类算法的入门指南。本书内容全面,适合各类读者,无论是初学者还是专业人士。其表述清晰,涵盖主题广泛。但内容也略显复杂,理解起来并不容易。
它涵盖了数据结构、快速算法、用于解决看似棘手问题的多项式时间算法、图论、计算几何等等主题。虽然其中包含一些伪代码示例,但在我看来,它仍然是一本非常理论化的书。
《程序员修炼之道》
《程序员修炼之道》是我读过的最重要的书之一。它充满了技术和专业的实用建议,帮助我完成了许多项目,并让我成为了一名更优秀的开发者。
即使在2020年,这本书仍然具有很高的现实意义,尤其是在新版20周年纪念版之后。它探讨了从个人责任、职业发展到架构技术等一系列主题,探讨了成为一名现代开发人员的意义。
读完本书后,你应该了解持续学习的含义以及它的重要性;如何编写灵活、适应性强、动态的代码;如何解决并发代码的问题;如何防范安全漏洞;如何进行严格有效的测试等等。
如果我必须选择一本书推荐给你,那肯定是这本!
总结一下:这些是一些最受开发者欢迎的书籍。如果一定要我推荐一本书,我会推荐安德鲁·亨特 (Andrew Hunt) 的《程序员修炼之道》。罗伯特·C·马丁 (Robert C. Martin) 的书籍在业界广为接受,也受到许多开发者的喜爱,但我在阅读时会持批判态度,因为我和鲍勃大叔 (Uncle Bob) 的观点并不一致。
我最近创建了一个新网站“The Smart Coder”,为社区创作免费内容。这篇文章就出自这个网站,你也应该去看看 :)
如果您喜欢我写的内容并希望支持我和我的工作,请在Twitter上关注我,以了解有关编程、制作、写作和职业的更多信息🥰
文章来源:https://dev.to/simonholdorf/10-must-read-books-for-software-engineers-13d0