程序员必读的 29 本书

2025-05-24

程序员必读的 29 本书

这些是我的“必读”编程书籍。它们具有普遍适用性:无论你从事哪种编程工作,阅读它们都会让你受益匪浅。而且这些书中的知识将贯穿你的整个职业生涯。

我希望您能在这里找到几本好书添加到您的阅读清单中。

2019年6月16日:我不再更新这篇文章。你可以在我的博客上找到我最新的程序员必读书籍清单(附有效链接)

职业

如果你还没有想清楚,那么首先要弄清楚的是,你想要什么样的职业,以及如何实现它。这本书会有所帮助。事实上,它能帮助任何人从职业中获得更多满足感。

  • 你优秀到让人无法忽视- 卡尔·纽波特(为什么追随你的激情是糟糕的建议以及你应该怎么做)

学习如何学习

学习新技能很难,改变也很难。那么,为什么不学习如何让新习惯坚持下去,让学习新事物变得更容易呢?这些书会有所帮助。

  • 习惯的力量:为什么我们在生活和工作中会做我们所做的事情- 查尔斯·杜希格(了解习惯实际上是如何运作的,这样你就可以通过与大脑合作而不是对抗大脑来做出持久的改变)
  • 持续改进精神:一步一个脚印,创造持久卓越:一步一个脚印,创造持久卓越 - 罗伯特·莫雷尔(持续改进是一种持续改进的小方法。丰田汽车公司利用这种改进方法来提高汽车质量,并成为世界上最大的汽车制造商。正如本书所示,你可以用它来改进几乎任何事物。)
  • Badass:让用户变得棒极了- Kathy Sierra(大多数人的学习效率低下。这本书会向你展示更好的方法)( YouTube 摘要)。

个人效能

以下前三本书对同一建议的解读略有不同。无论你的职业、教育背景或任务是什么,高效的人往往拥有相似的思维方式并运用类似的技巧。读一读最能引起你共鸣的书吧。

  • 高效人士的七个习惯:个人改变的有力教训- 史蒂芬·柯维(经典)
  • 《卓有成效的管理者:完成正确事情的权威指南》 ——彼得·德鲁克(另一部经典著作)
  • 《杰出工作:顶尖人才如何事半功倍,工作更出色,成就更大》 ——莫滕·汉森(现代版)

清单可以改变一切。我有很多清单,你也应该有。

  • 清单宣言:如何把事情做好- Atul Gawande(了解简单清单的力量,以提高您的绩效并减少错误)

编程有效性

一旦您掌握了个人效能,就该学习如何成为一名高效的软件开发人员了。

  • 高效工程师:如何利用软件工程中的努力来产生巨大而有意义的影响- Edmond Lau(让您专注于正确的事情)
  • 实用程序员:从熟练工到大师- Andrew Hunt 和 David Thomas(向初学者展示如何运用他们的技能并提升水平)

编写代码

我还是会遇到一些还没读过这些经典著作的程序员。你还在等什么呢?

  • 代码完整:软件构建实用手册,第二版- Steve McConnell(基于证据的软件构建建议 -我的圣经
  • 代码整洁之道:敏捷软件工艺手册- Robert C Martin(我工作场所的每个程序员都会得到这本书的报酬。了解可读性和可维护性的重要性以及拥有混乱的代价。我几乎同意其中的所有内容(除了强迫人们编写极短的方法))
  • 代码简洁:软件基础- Max Kanat-Alexander(在开发软件时,我们很容易迷失在那些被敦促使用的理论、观点和模式中。这本书将所有这些都放在了正确的角度。短短 80 页,蕴含着令人惊叹的智慧——必读

软件工程

尽管大多数人认为软件工程确实拥有一套以研究为支撑的知识体系,但不要违背研究成果,并期望你的项目最终会成功——它很可能不会成功。

  • 软件工程的事实与谬误- 罗伯特·格拉斯(关于什么有效、什么无效的证据。如果您违反了其中任何一条规则,您最好有充分的理由认为这项研究不适用于您)
  • 快速开发:驯服狂野的软件进度表- Steve McConnell(基于证据的项目/团队管理建议 -必读
  • 制作软件:什么真正有效,以及我们为什么相信它- Andy Oram 和 Greg Wilson(我不喜欢这本书。它写得像一堆散文,有点冗长且脱节。但是,如果你想避免做一些愚蠢的事情,并且你已经阅读了本节中的其他书籍,那么之后可以尝试一下这本书)

领导

领导力是一种思维方式和一套技能,而非一个头衔或职位。任何人都可以成为领导者。随着你的职业生涯发展和责任的承担,你需要提升你的领导能力。

  • 衡量重要的事情:谷歌、波诺和盖茨基金会如何利用 OKR 震撼世界- 约翰·多尔(如何让组织中的每个人都尽可能地朝着同一个方向努力)
  • 扭转乾坤!:将追随者转化为领导者的真实故事- L. David Marquet(领导者与领导者,而非领导者与追随者。如果每个人都100%投入到自己的工作中,并朝着共同的目标努力,您的组织将达到最高水平。您将学习如何赋予组织中的每个人3C:控制力、能力和清晰度,以使他们做出最大贡献。)

项目管理

即使你是一名优秀的程序员,并且经验丰富,也并不意味着你就能运营一个项目。阅读这些书籍,可以避免所有初学者常犯的错误。

  • 快速开发:驯服狂野的软件进度表- Steve McConnell(基于证据的项目/团队管理建议 -必读
  • Scrum 精要:最流行的敏捷流程实用指南- Ken Rubin(关于 Scrum 和项目管理的优秀建议。信噪比非常高)
  • 精益创业:当今企业家如何利用持续创新打造极其成功的企业- Eric Ries(了解为什么构建 MVP 和使用构建-衡量-学习循环如此重要)
  • 凤凰项目:一部关于 IT、DevOps 和帮助您的企业取胜的小说- Gene Kim 和 Kevin Behr(了解如何应用约束理论和精益来扭转陷入困境的项目(或从一开始就防止其陷入困境))

高级项目管理

一旦您掌握了基础知识并且您的项目不再是一团糟,请考虑学习以下书籍中描述的高级项目管理技术。

  • 产品开发流程的原则:第二代精益产品开发- Donald Reinertsen(纠正人们在尝试将精益和六西格玛技术从制造业应用到产品开发领域时自然犯的错误——不适合初学者)
  • 高德拉特的约束理论:持续改进的系统方法- William H. Dettmer(一种系统的方法,用于发现组织中的制约因素并克服它。这是一个巨大的杠杆 - 不适合初学者)

单元测试

如果你还没有进行单元测试,那还有什么阻碍呢?这些书可以帮助你入门。

  • 开始单元测试:没有你想象的那么难- Erik Dietrich(单元测试初学者指南)
  • 有效地使用单元测试- Jay Fields(针对了解基础知识的人员的单元测试最佳实践)
  • 有效地使用遗留代码- Michael Feathers(非常著名的关于如何通过自动化单元测试覆盖现有代码的书——这是一项众所周知的艰巨任务)

数据分析与统计

你需要数据分析技能来衡量你的结果。许多程序员缺乏统计学知识和技能,无法正确地将统计检验应用于数据并得出合理的结论。这些书籍会有所帮助。

  • 使用开源工具进行数据分析:程序员和数据科学家的实用指南- Philipp K. Janert(当你的老板把一大堆数据扔到你手里,并说“找到其中的见解”时,你需要这本书。我很喜欢这本书)

任何统计学入门书籍。以下书籍比我在大学读的教科书好得多:

  • 傻瓜统计学- Deborah Rumsey
  • 傻瓜统计学 II - Deborah Rumsey

用户界面/用户体验

大多数程序员对用户界面和用户体验不够重视。这些书是为程序员编写的,它们会教你所有你需要知道的知识。

  • 别让我思考,重温:网络可用性的常识性方法- 史蒂夫·克鲁格(太棒了!)
  • 火箭手术变得简单:查找和修复可用性问题的自助指南- 史蒂夫·克鲁格(同样很棒!)

总结

这就是我列出的“必读”编程书籍清单。里面的内容足够你读上几年,所以请不要觉得你应该马上读完所有这些书。我们这个行业已经存在足够多不切实际的期望问题,我不想再添乱了。

不要只是快速浏览这些书,然后把它们从清单上划掉。重要的是,要花尽可能多的时间去学习一项对你来说很重要的新技能

我几乎肯定错过了一些非常棒的书。欢迎在评论区推荐更多“必读”书籍。

文章来源:https://dev.to/bosepchuk/29-must-read-programming-books-2n45
PREV
如何在开始新的开发工作时取得成功
NEXT
用这些 NPM 技巧给你的同事留下深刻印象奖励命令结论