20 本软件开发人员必读书籍
原文链接: https://dev.to/awwsmm/20-most-recommended-books-for-software-developers-5578
译者:郑嘻嘻
人们常常犯错。例如下错赌注,在房地产泡沫即将破裂前购买房产,持续着不健康的饮食。有时因为听从了别人的建议,导致我们做出错误的决定。
尽管如此,那些有着不同生活经历的人们,给我们提出的建议,或许是一笔宝贵的财富。 如果有人花时间读完整本书并强烈推荐它,也许我们应该听一听。如果有 100 个人读完整本书,并且推荐它,那一定值得我们读读。遵循这个逻辑,我建立了一个元清单:在统计了各个书籍推荐清单后,整理出最常被推荐的书籍。
我整理了数十位程序员、经理、职业教练以及其他行业专家的推荐资源,形成这份元清单——最受推荐的 20 本软件开发人员必读书籍 。这个列表的所有数据源都可以在 我的GitHub仓库 中免费获取。 截至 2019 年 10 月 19 日,我的元清单引用了 36 份资源,总共涵盖 297 本书籍的推荐。
我做这件事,主要是为了整理以后自己要读的书,同时也是为了帮助一些人,他们往往想要获得好的推荐,却常常迷失在各种不同推荐清单中。如果我们能根据所有人的建议统计出一份推荐清单,为什么还要依赖某个人的建议呢?另外,感谢互联网提供丰富的资源。
以下是我编写这份清单的经验法则:
- 寻找尽可能多的推荐资源,但是那些请求推荐的文章不包括在内。
- 一本书的推荐次数,涵盖了不同版本的推荐,但是不会重复计算同一篇文章推荐多个版本。
- 引用资源必须是作者认真写的书籍推荐文章,不包括那些作者仅仅简单地罗列已读或在读书目的文章。
- 引用资源推荐的书籍是针对特定级别的开发人员(例如 CTO、初级开发人员、新手)。
- 我尽量避免引用包含一些特定技术(比如 PHP、 CSS、 Java)的资源,但是仍旧无法避免一些引用资源中夹杂着这些类型的书。
- 本清单适用于“软件开发人员”、“软件工程师”、“开发人员”、“程序员”和“编码员”,尽管他们各自有着一些细微区别。
据我所知,这是互联网上最完整的软件开发书籍推荐元清单。 如果你找到了一个软件开发的书籍推荐清单,这个清单没有包含在我的 GitHub 电子表格中,请告诉我。 如果它符合我上面列出的标准,我很乐意将它添加到列表中。
不说废话,元清单推荐的 20 本书籍如下:
- 排名 20:Patterns of Enterprise Application Architecture by Martin Fowler
- 中文版:《企业应用架构模式》
- 推荐指数:13%
- 排名 19: Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C.Martin
- 中文版:《架构整洁之道》
- 推荐指数:13%
- 排名 18:The Art of Computer Programming by Donald Knuth
- 中文版:《计算机程序设计艺术》
- 推荐指数:13%
- 排名 17: CODE: The Hidden Language of Computer Hardware and Software by Charles Petzold
- 中文版:《编码–隐匿在计算机软硬件背后的语言》
- 推荐指数:15.9%
- 排名 16:Agile Software Development: Principles, Patterns, and Practices by Robert C. Martin
- 中文版:《敏捷软件开发–原则、模式与实践》
- 推荐指数:15.9%
- 排名 15:Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- 中文版:《算法导论(原书第3版)》
- 推荐指数:17.4%
- 排名 14:Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Elizabeth Robson, Kathy Sierra, and Bert Bales
- 中文版:《Head First 设计模式》
- 推荐指数:17.4%
- 排名 13: Cracking the Coding Interview: 189 Programming Questions and Solutions by Gayle Laakmann McDowell
- 中文版:《程序员面试金典(第5版)》
- 推荐指数:17.4%
- 排名 12: Don’t Make Me Think: A Common Sense Approach to Web Usability by Steve Krug
- 中文版:《点石成金–访客至上的Web和移动可用性设计秘笈(原书第3版)》
- 推荐指数:18.8%
- 排名 11:The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin
- 中文版:《代码整洁之道:程序员的职业素养》
- 推荐指数:18.8%
- 排名 10:Soft Skills: The Software Developer’s Life Manual by John Sonmez
- 中文版:《软技能–代码之外的生存指南》
- 推荐指数:23.2%
- 排名 9:Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister
- 中文版:《人件(原书第3版)》
- 推荐指数:23.2%
- 排名 8: Programming Pearls by Jon Bentley
- 中文版:《编程珠玑》
- 推荐指数:26.1%
- 排名 7:Working Effectively with Legacy Code by Michael Feathers
- 中文版:《修改代码的艺术》
- 推荐指数:27.5%
- 排名 6:The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks
- 中文版:《人月神话》
- 推荐指数:27.5%
- 排名 5: Refactoring: Improving the Design of Existing Code by Martin Fowler
- 中文版:《重构–改善既有代码的设计》
- 推荐指数:33.3%
- 排名 4: Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, and Ralph Johnson
- 中文版:《设计模式–可复用面向对象软件的基础》
- 推荐指数:33.3%
- 排名 3:Code Complete: A Practical Handbook of Software Construction by Steve McConnell
- 中文版:《代码大全(第2版)》
- 推荐指数:44.9%
- 排名 2:The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and Dave Thomas
- 中文版:《程序员修炼之道–从小工到专家》
- 推荐指数:47.8%
- 排名 1: Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- 中文版:《代码整洁之道》
- 推荐指数:52.2%
上述“推荐指数”是指本书在所有引用资源列表中被推荐的比例。即使一本书推荐指数仅仅是12.5% ,也意味着平均每 8 个开发人员中就有 1 个人读过这本书,并把它推荐给其他开发人员。
更令人惊讶的是前 10 名的书籍。 排名 6-10 的书籍,平均每 4 个开发者中就有 1 个推荐;排名 4 和排名 5 的书籍,平均每 3个开发者中就有 1 个推荐。 排名前 3 的书籍,几乎每一个软件开发者都推荐。这些书籍对现代社会最关键的行业之一产生了巨大的影响。如果你想学习软件开发知识,但你还没有读过这三本书,很可能一半的同事会建议你去读一读。
翻译版涵盖原文主要内容,仅省略了其中每本书的摘要。
Ps: 中文版书籍清单可见豆列:20 本软件开发人员必读书籍