微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

每个程序猿应该阅读的10本经典书籍

2017-05-12 22:00 Deepak Karanth

作者:Deepak Karanth

原文10 Classic Books Every Serious Developer Should Read

译者:码农网-小峰

译文:www.codeceo.com/article/10-classic-books-programmer-read.html

(点击文末阅读原文即可前往) 


如果你是一个程序员,除了编码之外,你还需要大量的阅读。今天我要为大家介绍几本值得一读的书,包括《The Pragmatic Programmer》,《The Mythical Man-month: Essays on Software Engineering》和《Clean Code: A Handbook of Agile Software Craftsmanship》。

书籍是知识和智慧的重要来源。但不幸的是,现在很多人已经不愿意看书了。程序员更是罕见地会去读书,最常见的依靠互联网搜索结果来找寻答案。


技术向前的步伐比人类历史上的任何时候都要走得更快。用不了几个月,就会有新的编程语言和工具问世,弥补现有语言、工具和方法的缺陷。

事实上,许多伟人都已经遇到过差不多的问题,并指出了解决这些问题的最佳途径。而这些方法和解决方案都收录在一些超棒的书籍中。

下面就是在这个行业中开发人员应该阅读的一系列伟大的书籍。(基本上都有中文版的,自己豆瓣上找就可以了)


01


《The Pragmatic Programmer》

绝对是书籍中的瑰宝!这不是常规地建议你编码,编码还是编码的编程书。事实上,它并不限定于某种特定的编程语言:在这本书中的智慧适用于所有编程语言。

这本书对许多有趣的领域都提出了真知灼见,如各种探索性编程,在代码中编码,从模型中分离的观点,昂贵的工具并不产生更好的设计,开发一个伟大的团队,管理预期,避免知识的重复等。

这本书不仅可以帮助改变编码的习惯,还可以改变你作为一个程序员的性格。它充满了关于如何改进自己和代码的实用建议。

还有一个总结了提示和检查清单的小册子。

02

The Mythical Man-month》: 关于软件工程的散文集

非常经典,被奉为软件行业的圣经。第一次出版于1970年,但是里面的内容比起以前,可能更适用于现在!

有听说过这些话吗?它们均摘自于这本书!

“所有的程序员都是乐观的:一切都会顺利。”

“添加人手到一个延迟的项目中只会导致完成得更慢。”

“生一个孩子总是需要九个月的时间,不管安排多少个女性。”

“一个煎蛋,承诺在两分钟内完成,但如果两分钟后还是没有准备好,那么客户有两种选择——等待或吃半熟品,软件客户也只能这样选择。”


不幸的是,一年又一年地过去,而我们总是在软件开发中犯着相同的错误。这本书是每一个项目经理和开发人员都必须阅读的。

正从标题中所说的那样,这是一本散文集。文辞优美。这本书唯一的缺点就是引用了年迈25的古老技术。但是,这并不影响这本书的魅力。

03

《Clean Code》: 敏捷软件工艺的手册

有没有在看他人代码的过程中,不由自主地发出“哦,天哪,这是什么?”的经历,那么这个人肯定没有阅读过《Clean Code》。

这是一本关于软件工艺史诗般的书籍。这本书不仅会告诉你如何编写好的代码,而且还提供了软件开发的高效途径。照着去做的话,必将改变你的工作前景。

书中描述了编写干净代码的原则、模式和做法。里面一些关于整洁代码的几个案例都是开发人员宝贵的经验教训。

请注意,虽然在这本书中的所有实例都是关于Java的,但是从中学到的经验教训可以应用于任意的编程语言。

这篇文章所列出的这些书籍中,这本书出版得比较晚,所以可能更能引起年轻开发人员的共鸣。

04

《The Clean Coder》:专业程序员的行为守则

此列表中Rob Martin的第二本书。建议你在读了《Clean Code》后,再读这本书。《Clean Code》讲的是代码,而这本书是关于“Coder”。

该书探讨了一些程序员经常忽视的主题。

  • 成为专业的程序员意味着什么?

  • 如何打磨自己成为一个真正的软件工匠?

  • 冲突和紧张的日程处理。

  • 如何管理你的时间?如何扩张技能?

  • 何时说“不”?

  • 避免倦怠。

  • ......以及更多。

  • 你可能并不总是同意作者的观点,但它提供了良好的精神食粮。这可能并非你所期望的,但可能正是你所需要的。

    05

    《Refactoring》:改善已有代码的设计


    不管你怎么努力,除非改进它,否则,你交付的代码不会是最优化的。有时即使工作正常,也会实施重构。

    这本书从重构的通用原则说起:为什么以及什么时候重构,如何处理有关重构的管理等等。然后讲述了如何实现改进的过程。

  • 代码的设计缺陷指标是什么?

  • 如何构建类、方法和其他的逻辑块?

  • 单元测试。

  • 如何将功能从一个对象移动到另一个?

  • 重构工具。

  • ......以及更多。

  • 这是改进现有代码必读的书。请注意,所有的代码示例用的都是Java,但现在复制起来也很方便!

    06

    《Working Effectively With Legacy Code》

    我们都必须工作于一些我们痛恨的东西——对于大多数人而言,遗留代码真是令人头痛无比。

    如何修改遗留代码?如何识别需要重构的代码部分?如何破坏重构代码之间的依赖关系?如何确保新的代码能完成预期的工作?如何一次一小步地重构遗留代码?

    在这本杰出的书中,只是回答了一些关键的问题。如果非要用一句话总结这本书的精华,那就是“写单元测试,重构代码,确保测试都通过。”

    遗留代码不是一个神话,它是一个活着的传奇!在软件行业中没有什么比遗留代码更能经受测试的考验了——Deepak Karanth


07


    《Code Complete》:软件构建的实用手册

    在一个庞大的作品中,如果你想要阅读所有关于编程结构和最佳实践的内容,那么这是本必读书。真正的百科全书式书籍——其最新版本有多达960页!不要被这本书的厚度吓倒,你可以按照自己的节奏阅读。最后,会庆幸你阅读了这本书。

    书中解释了软件开发的每个方面。从代码结构,代码格式化,到变量、方法和类的命名,再一路说到管理一团队,对所有一切都提出了实用的建议。