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

♥ 10 Classic Books Every Serious Developer Should Read ♥


书籍是知识和智慧的重要来源。但不幸的是,现在很多人已经不愿意看书了。程序员更是罕见地会去读书,最常见的依靠互联网搜索结果来找寻答案。
♥ Books are a great source of knowledge and wisdom. But unfortunately, there are very few people reading books today. A programmer reading books is an even rarer occurrence, most often relying on the internet search results to find answers. ♥

技术向前的步伐比人类历史上的任何时候都要走得更快。用不了几个月,就会有新的编程语言和工具问世,弥补现有语言、工具和方法的缺陷。
♥ Technology is moving forward at a pace faster than anytime in the history of mankind. There are new programming languages and tools every few months, aspiring to be the silver bullet for all shortcoming of existing languages, tools and methodologies. ♥

事实上,许多伟人都已经遇到过差不多的问题,并指出了解决这些问题的最佳途径。而这些方法和解决方案都收录在一些超棒的书籍中。
♥ The truth is that many a great minds of the yester years have already encountered the very same problems and have figured out the best ways to solve them. The tactics to approach and solve the problems have been captured in some wonderful books. ♥

下面就是在这个行业中开发人员应该阅读的一系列伟大的书籍。
♥ Here’s a select subset of these great books that developer in the industry should read. ♥


《The Pragmatic Programmer》

♥ The Pragmatic Programmer ♥

绝对是书籍中的瑰宝!这不是常规地建议你编码,编码还是编码的编程书。事实上,它并不限定于某种特定的编程语言:在这本书中的智慧适用于所有编程语言。
♥ A gem of a book! This is not your regular programming book with code, code and more code. In fact this is not about any particular programming language at all: the wisdom in this book applies to all programming languages. ♥

《The Pragmatic Programmer》
《The Pragmatic Programmer》

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

♥ The insights in this book span across a number of interesting areas such as “tracer bullets,” a variety of exploratory programming, writing code that writes code, separating views from models, expensive tools do not produce better designs, developing a great team, managing expectations, avoiding duplicate knowledge etc. ♥

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

♥ Not only will this book change your coding habits, it will also change your personality as a programmer. It is filled with practical advice on getting the best of both you and your code. ♥

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

♥ Also included is a pamphlet that summarizes the tips and checklists. ♥

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

♥ The Mythical Man-month: Essays on Software Engineering ♥

非常经典,被奉为软件行业的圣经。第一次出版于1970年,但是里面的内容比起以前,可能更适用于现在!
♥ A classic, considered the Bible by many in the Software Industry. It was first published in the 1970’s, but probably every word rings more truer today than it ever did before! ♥

《The Mythical Man-month》
《The Mythical Man-month》

有听说过这些话吗?它们均摘自于这本书!
♥ Ever heard these before. It all came from this book! ♥

“所有的程序员都是乐观的:一切都会顺利。”
♥ “All programmers are optimists: All will go well.” ♥

“添加人手到一个延迟的项目中只会导致完成得更慢。”
♥ “Adding manpower to a late software project makes it later.” ♥

“生一个孩子总是需要九个月的时间,不管安排多少个女性。”
♥ “Bearing of a child takes nine months, no matter how many women are assigned.” ♥

“一个煎蛋,承诺在两分钟内完成,但如果两分钟后还是没有准备好,那么客户有两种选择——等待或吃半熟品,软件客户也只能这样选择。”
♥ “An omelette, promised in two minutes, when not ready in two minutes, the customer has two choices – wait or eat it half-cooked. Software customers also have the same choices.” ♥

不幸的是,一年又一年地过去,而我们总是在软件开发中犯着相同的错误。这本书是每一个项目经理和开发人员都必须阅读的。
♥ It is unfortunate that we are making the same mistakes in software development year after year. A must read for every project manager and developer. ♥

正从标题中所说的那样,这是一本散文集。文辞优美。这本书唯一的缺点就是引用了年迈25的古老技术。但是,这并不影响这本书的魅力。
♥ As the title says, it is a collection of essays. A damn good one at that. The only downside of the book is the references to 25-year-old technologies. But that takes nothing away from the meat of the book. ♥

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

♥ Clean Code: A Handbook of Agile Software Craftsmanship ♥

有没有在看他人代码的过程中,不由自主地发出“哦,天哪,这是什么?”的经历,那么这个人肯定没有阅读过《Clean Code》。
♥ Ever looked at someone’s code and went “Oh My God, What is this?” Rest assured, that someone hasn’t read Clean Code. ♥

《Clean Code》
《Clean Code》

这是一本关于软件工艺史诗般的书籍。这本书不仅会告诉你如何编写好的代码,而且还提供了软件开发的高效途径。照着去做的话,必将改变你的工作前景。
♥ An epic book on software craftsmanship. The book not only tells you how to write good code, but also an effective way to develop and approach software development. It is sure to change your outlook on work. ♥

书中描述了编写干净代码的原则、模式和做法。里面一些关于整洁代码的几个案例都是开发人员宝贵的经验教训。
♥ The book describes the principles, patterns, and practices of writing clean code. Several case studies of cleaning up code are valuable lessons to any developer. ♥

请注意,虽然在这本书中的所有实例都是关于Java的,但是从中学到的经验教训可以应用于任意的编程语言。
♥ Note that all examples in this book are in Java, although the learnings can be applied to any programming language. ♥

这篇文章所列出的这些书籍中,这本书出版得比较晚,所以可能更能引起年轻开发人员的共鸣。
♥ Among the books listed in this post, this is a fairly new entrant and may resonate more with the younger developers. ♥

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

♥ The Clean Coder: A Code of Conduct for Professional Programmers ♥

此列表中Rob Martin的第二本书。建议你在读了《Clean Code》后,再读这本书。《Clean Code》讲的是代码,而这本书是关于“Coder”。
♥ The second book from Rob Martin in this list. We recommend that you read this book after “Clean Code”. Whilst “Clean Code” is about the code, this is about the “Coder”. ♥

《The Clean Coder》
《The Clean Coder》

该书探讨了一些程序员经常忽视的主题。
♥ The book explores topics that programmers often ignore. ♥

  • 成为专业的程序员意味着什么?
  • 如何打磨自己成为一个真正的软件工匠
  • 冲突和紧张的日程处理
  • 如何管理你的时间?如何扩张技能?
  • 何时说“不”
  • 避免倦怠
  • ..以及更多。
  • What does being professional programmer mean?
  • How to carry yourself as a true software craftsman
  • Dealing with conflict and tight schedules
  • How to manage your time? How can you expand your skills?
  • When to say “No”
  • Avoiding burnout
  • ..and more.

你可能并不总是同意作者的观点,但它提供了良好的精神食粮。这可能并非你所期望的,但可能正是你所需要的。
♥ You may not always agree with the author but it provides good food for thought. It might be not what you expect, but may just be what you need. ♥

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

♥ Refactoring: Improving the Design of Existing Code ♥

不管你怎么努力,除非改进它,否则,你交付的代码不会是最优化的。有时即使工作正常,也会实施重构。
♥ No matter how hard you try, the code you deliver will not be the most optimal unless improvements are made to it. Refactoring is to be made even if it working as expected. ♥

《Refactoring》
《Refactoring》

这本书从重构的通用原则说起:为什么以及什么时候重构,如何处理有关重构的管理等等。然后讲述了如何实现改进的过程。
♥ The book starts with general principles of refactoring: why and when to refactor, how to approach management about refactoring etc. The book then takes you through a tour of how make the improvements happen. ♥

  • 代码的设计缺陷指标是什么?
  • 如何构建类、方法和其他的逻辑块?
  • 单元测试
  • 如何将功能从一个对象移动到另一个?
  • 重构工具
  • ..以及更多
  • What are the indicator of bad smells in the code?
  • How to structure classes, methods and other logical pieces?
  • Unit tests for your code
  • How to move features from one object to another?
  • Refactoring tools
  • ..and more

这是改进现有代码必读的书。请注意,所有的代码示例用的都是Java,但现在复制起来也很方便!
♥ A must read book on anyone on how to improve your existing code. Note that all code examples are in Java, but it shouldn’t prevent you from grabbing a copy today! ♥

《Working Effectively With Legacy Code》

♥ Working Effectively With Legacy Code ♥

我们都必须工作于一些我们痛恨的东西——对于大多数人而言,遗留代码真是令人头痛无比。
♥ We all have to work on something we hate – for most, it is working with legacy code. Nothing is more real in any job than legacy code. ♥

《Working Effectively With Legacy Code》
《Working Effectively With Legacy Code》

如何修改遗留代码?如何识别需要重构的代码部分?如何破坏重构代码之间的依赖关系?如何确保新的代码能完成预期的工作?如何一次一小步地重构遗留代码?
♥ How to modify legacy code? How to identify parts of the code to refactor? How to break dependencies between code you want to refactor? How to make sure the new code is doing what is expected? How do you take small steps at a time to refactor legacy code? ♥

在这本杰出的书中,只是回答了一些关键的问题。如果非要用一句话总结这本书的精华,那就是“写单元测试,重构代码,确保测试都通过。”
♥ They are just some of the key questions answered in this brilliant book. If I have to summarise the essence of the book in a line, it would be “Write unit tests, refactor code, make sure tests are passing.” ♥

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

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

♥ Code Complete: A Practical Handbook of Software Construction ♥

在一个庞大的作品中,如果你想要阅读所有关于编程结构和最佳实践的内容,那么这是本必读书。真正的百科全书式书籍——其最新版本有多达960页!不要被这本书的厚度吓倒,你可以按照自己的节奏阅读。最后,你会庆幸你阅读了这本书。
♥ A mammoth piece of work, a must read for anyone who wants to read all about programming constructs and best practices. Truly an encyclopaedic book – 960 pages in its most recent revision! Don’t let the length of the book deter you, you can consume it at your own pace. In the end, you will be thankful you read the book. ♥

《Code Complete》
《Code Complete》

书中解释了软件开发的每个方面。从代码结构,代码格式化,到变量、方法和类的命名,再一路说到管理一个团队,对所有一切都提出了实用的建议。
♥ Every aspect of software development is explained in the book. Practical advice on everything ranging from code structure, code formatting, variable. method and class naming, all the way up to managing a team. ♥

提供了覆盖特定主题的丰富参考和补充材料,这些也非常值得一读。
♥ A wealth of references and additional materials covering specific topics in are provided and they are worth a read as well. ♥

只有一小部分的软件开发人员会读这本书,所以如果你也是他们中的一个,那么你就有了优势。通过阅读这本书,你就可以获得许多年宝贵经验。
♥ Only a small percentage of software developers would have read this book, so you surely have an advantage if you read this one. You can gain many a years worth of experience just by reading this book. ♥

《Head First Design Patterns》

♥ Head First Design Patterns ♥

看上去最不像技术的编程书籍!每个页面都包含涂鸦、图片以及其他一些吸引眼球的东西。可能给人的印象是一本阅读起来很轻松的书,但事实上它会讨论编程的一些核心主题——设计模式。
♥ The most non-technical looking book on programming! Each page contains doodles, pictures and other eye-catching stuff. That might give the impression that it is a light read, but that fact is that it is discussing quite a core topic about programming – Design patterns – and does a great job in covering the subject. ♥

《Head First Design Patterns》
《Head First Design Patterns》

这本书虽然没有覆盖所有存在于这个世界的模式,但是会涵盖所有你可能需要用于解决现实问题的模式。它将帮助你创建功能性的,优雅的,可重用的和灵活的软件。每个模式的优劣也被明确指出。大多数关于设计模式的书籍谈论的是如何实现模式,但这本书的作者同时还解释了为什么以及怎么样。
♥ The book does not try to cover all the patterns that exist in the world, rather it covers every pattern that you might need to solve real world problems. It will help you create functional, elegant, reusable, and flexible software. The trade-off for each patterns have been clearly pointed out. Most books on design pattern talk about how to implement the pattern, but the authors of this book also explain the why and the how. ♥

最新版本包括针对Java 8的更新——主要是Lambda。
♥ The latest edition of the book now includes updates for Java 8 – mainly the Lambda. ♥

《Peopleware: Productive Projects and Teams》

♥ Peopleware: Productive Projects and Teams ♥

很棒的一部作品。这本书并非关于编程。这是一本有关管理和激励程序员的书籍。开发人员也应该阅读。很多时候,开发人员,尤其是那些没有经验的开发人员,不理解管理的思维过程。
♥ A stunning piece of work. This is not a book about programming. This is a book about managing and motivating programmers. It should be read by developers too. Many a times, developers, especially inexperienced ones don’t understand the thought process of management. ♥

《Peopleware: Productive Projects and Teams》
《Peopleware: Productive Projects and Teams》

软件开发是一个创造性的过程。但是,大多数管理人员把它当作是流水线。开发人员被视为是机器上可替换的齿轮零部件。管理人员普遍性地会给予一个紧迫的时间期限,当作促进积极性唯一途径。他们对开发人员的工作不感兴趣,甚至可悲的是,他们也不会试着去理解开发人员或他们自己的工艺。
♥ Software development is a creative process. But most managers treat it as assembly line process. Developers are seen as interchangeable cogs in the machine. Managers generally see giving tight deadlines as the only way to increase motivation. They do not take interest in the work developers do and sadly, not try to understand the developers or their craft. ♥

如果你想成为一个想要的是质量,而不仅仅是数量的管理人员,那么请立刻阅读这本书!
♥ If you are a manager who wants quality and not only quantity, read this book now! ♥

作者解释了管理者应该如何以一种可持续的方式使他们的软件开发团队认识到他们的潜力。
♥ The authors explain how managers can enable their software teams to realize their potential in a sustainable manner. ♥

《Soft Skills: The Software Developer’s Life Manual》

♥ Soft Skills: The Software Developer’s Life Manual ♥

同样的,这也不是一本关于编程的书。但是,却是每一个程序员都应该阅读的书。
♥ Again, this is not a book about programming. But every programmer should read this. ♥

《Soft Skills: The Software Developer’s Life Manual》
《Soft Skills: The Software Developer’s Life Manual》

这本伟大的书着重于管理开发人员生活的“其他”方面。可以是你生活的每一个方面——事业、生活、身体、头脑,以及不管你相信与否——还有灵魂。
♥ A great book on managing “other” aspects of developers life. It’s about everything there could be in your life – It’s about your career, life, body, mind, and believe it or not – soul as well. ♥

作者他自己也遵循这些技术,并且获得了成功。他的网站上说,他能够在他30出头的时候放弃他的日常工作。该作者将他的生活经验整理成整齐的,主题内容为Career、Marketing yourself、Learning、Productivity、Finances, Fitness和Spirit的短章。每个篇章都很短,可以在休息时间阅读,非常方便。
♥ The author himself has followed these techniques and is quite successful at that. His website says that he was able to quit his day job in his early 30’s. The author has culminated his life’s experiences in neatly divided short chapters on Career, Marketing yourself, Learning, Productivity, Finances, Fitness and Spirit. Each chapter is short enough to be read on a coffee break, that makes it a fairly light read. ♥

你会是一个更加满意和快乐的人,如果你按照这本书的建议去做的话,那么你将成为一个更令人满意和幸福的人和程序员。
♥ You will be a much more satisfied and happier person if you follow the suggestions in this book, not just as a programmer, but as your whole self. ♥

 

原文链接:10 Classic Books Every Serious Developer Should Read