最受程序员欢迎的20本书

20 Most-Recommended Books for Software Developers

书单来自:https://dev.to/awwsmm/20-most-recommended-books-for-software-developers-5578(英文版)

中文对照见文末。


People are often wrong: we make bad bets, buy property before housing bubbles burst, and go on fad diets. We make poor decisions, sometimes on the advice of others (going to the Lephrechaun Museum in Dublin is 2 hours of my life that I'll never get back).

In spite of this anecdotal evidence, listening to the advice of those who have had different life experiences from us is a supremely valuable activity. If someone else has taken the time to read an entire book and strongly recommends it, maybe we should listen. If 100 people have done so and allof them recommend it, it's almost definitely worth your time. Following this logic, and being the extremely type-A person that I am, I've constructed a meta-list: a list of the books recommended most often in lists of recommended books.

I've compiled the suggestions of dozens of programmers, managers, career coaches, and other industry professionals to bring you a list of the 20 most-recommended books for software developers, with some short summaries (courtesy of Amazon). All of the data I used to compile this list is freely available as a single Excel workbook on GitHub. As of Saturday 19 October 2019, my meta-list cites 36 sources and includes recommendations for 297 unique books.

I did this mostly to help myself organise the books I want to read in the near future, but also to help out anyone else who wants to build a good foundation, but might be frustrated by all of the different lists on the Internet making different recommendations. Why trust one of them when you can take everyone's opinion in aggregate? You're welcome, Internet.

Here are the rules of thumb I used to compose this list:

  1. As often as possible, articles asking for recommendations are notincluded.

  2. Recommendations for different editions of a book are considered recommendations for the same book, but recommendations for multiple editions within one article are not double-counted.

  3. Articles where an author simply lists books they've read or are currently reading are not included. The article must be presented as a list of recommended books.

  4. Lists which are geared toward a particular level of developer (i.e. CTO, junior developer, newbie) are included.

  5. I tried to skip lists which are geared toward a particular technology (i.e. PHP, CSS, Java), but some lists have these types of books interspersed; every book on an included article is included in my list of books, even if it's a novel, technology-specific, or not related to programming.

  6. Although they may be interpreted slightly differently by some, for the purposes of this list, "software developer", "software engineer", "developer", "programmer", and "coder" are all equivalent. Articles geared toward any of the above are included, unless point (5) also applies.

This is -- as far as I can tell -- the most complete meta-list of software development book recommendations anywhere on the Internet. I went through every result Google returned for "books software developer" as well as every article with "books" in the title on Dev.To and this is the result. If you find a list of book recommendations for general software development which isn't included in my sources spreadsheet on GitHub, please let me know. I'd be happy to add it to the list if it meets my criteria outlined above.

And, without further ado, the list:


Patterns of Enterprise Application Architecture by Martin Fowler

#20. Patterns of Enterprise Application Architecture

by Martin Fowler (3-way tie with #19 and #18)

13.0% recommended

This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts.

Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them.

-- Amazon.com


Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. "Uncle Bob" Martin

#19. Clean Architecture: A Craftsman's Guide to Software Structure and Design

by Robert C. "Uncle Bob" Martin

13.0% recommended (3-way tie with #20 and #18)

  • Learn what software architects need to achieve–and core disciplines and practices for achieving it
  • Master essential software design principles for addressing function, component separation, and data management
  • See how programming paradigms impose discipline by restricting what developers can do
  • Understand what’s critically important and what’s merely a “detail”
  • Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications
  • Define appropriate boundaries and layers, and organize components and services
  • See why designs and architectures go wrong, and how to prevent (or fix) these failures

-- Amazon.com


The Art of Computer Programming by Donald Knuth

#18. The Art of Computer Programming

by Donald Knuth

13.0% recommended (3-way tie with #20 and #19)

This magnificent tour de force presents a comprehensive overview of a wide variety of algorithms and the analysis of them. Now in its third edition, The Art of Computer Programming... contains substantial revisions by the author and includes numerous new exercises.

Although this book was conceived several decades ago, it is still a timeless classic. One of the book's greatest strengths is the wonderful collection of problems that accompany each chapter. The author has chosen problems carefully and indexed them according to difficulty. Solving a substantial number of these problems will help you gain a solid understanding of the issues surrounding the given topic. Furthermore, the exercises feature a variety of classic problems.

-- Amazon.com


CODE: The Hidden Language of Computer Hardware and Software by Charles Petzold

#17. CODE: The Hidden Language of Computer Hardware and Software

by Charles Petzold

15.9% recommended (tied with #16)

What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.

Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.

It's a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today's world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.

-- Amazon.com


Agile Software Development: Principles, Patterns, and Practices by Robert C. "Uncle Bob" Martin

#16. Agile Software Development: Principles, Patterns, and Practices

by Robert C. "Uncle Bob" Martin

15.9% recommended (tied with #17)

Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application—from the early stages of analysis, through the low-level design and into the implementation. Walks readers through the designer's thoughts — showing the errors, blind alleys, and creative insights that occur throughout the software design process. The book covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies. Covers traps, pitfalls, and work arounds in the application of C++ and OOD and then shows how Agile methods can be used. Discusses the methods for designing and developing big software in detail. Features a three-chapter, in-depth, single case study of a building security system. For Software Engineers, Programmers, and Analysts who want to understand how to design object oriented software with state of the art methods.

-- Amazon.com


Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

#15. Introduction to Algorithms

by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

17.4% recommended (3-way tie with #14 and #13)

Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, substantial additions to the chapter on recurrence (now called “Divide-and-Conquer”), and an appendix on matrices. It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many exercises and problems have been added for this edition

-- Amazon.com


Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Elizabeth Robson, Kathy Sierra, and Bert Bales

#14. Head First Design Patterns: A Brain-Friendly Guide

by Eric Freeman, Elizabeth Robson, Kathy Sierra, and Bert Bales

17.4% recommended (3-way tie with #15 and #13)

At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns—now updated for Java 8—shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.

-- Amazon.com


Cracking the Coding Interview: 189 Programming Questions and Solutions by Gayle Laakmann McDowell

#13. Cracking the Coding Interview: 189 Programming Questions and Solutions

by Gayle Laakmann McDowell

17.4% recommended (3-way tie with #15 and #14)

  • 189 programming interview questions, ranging from the basics to the trickiest algorithm problems.
  • A walk-through of how to derive each solution, so that you can learn how to get there yourself.
  • Hints on how to solve each of the 189 questions, just like what you would get in a real interview.
  • Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen.
  • Extensive coverage of essential topics, such as big O time, data structures, and core algorithms.
  • A behind-the-scenes look at how top companies like Google and Facebook hire developers.
  • Techniques to prepare for and ace the soft side of the interview: behavioral questions.
  • For interviewers and companies: details on what makes a good interview question and hiring process.

-- Amazon.com


Don't Make Me Think: A Common Sense Approach to Web Usability by Steve Krug

#12. Don't Make Me Think: A Common Sense Approach to Web Usability

by Steve Krug

18.8% recommended (tied with #11)

Don't Make Me Think is a book by Steve Krug about human–computer interaction and web usability. The book's premise is that a good software program or web site should let users accomplish their intended tasks as easily and directly as possible. Krug points out that people are good at satisficing, or taking the first available solution to their problem, so design should take advantage of this. He frequently cites Amazon.com as an example of a well-designed web site that manages to allow high-quality interaction, even though the web site gets bigger and more complex every day.

The book itself is intended to be an example of concision (brevity) and well-focused writing. The goal, according to the book's introduction, was to make a text that could be read by an executive on a two-hour airplane flight.

-- Wikipedia


The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. "Uncle Bob" Martin

#11. The Clean Coder: A Code of Conduct for Professional Programmers

by Robert C. "Uncle Bob" Martin

18.8% recommended (tied with #12)

Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.

In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.

-- Amazon.com


Soft Skills: The Software Developer's Life Manual by John Sonmez

#10. Soft Skills: The Software Developer's Life Manual

by John Sonmez

23.2% recommended (tied with #11)

Soft Skills: The Software Developer's Life Manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.

-- Amazon.com


Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister

#9. Peopleware: Productive Projects and Teams

by Tom DeMarco and Timothy Lister

23.2% recommended (tied with #12)

Peopleware is a popular book about software organization management. The first chapter of the book claims, "The major problems of our work are not so much technological as sociological in nature". The book approaches sociological or 'political' problems such as group chemistry and team jelling, "flow time" and quiet in the work environment, and the high cost of turnover. Other topics include the conflicts between individual work perspective and corporate ideology, corporate entropy, "teamicide" and workspace theory.

The authors presented most subjects as principles backed up by some concrete story or other information. As an example, the chapter "Spaghetti Dinner" presents a fictional example of a manager inviting a new team over for dinner, then having them buy and prepare the meal as a group, in order to produce a first team success. Other chapters use real-life stories or cite various studies to illustrate the principles being presented

-- Wikipedia


Programming Pearls by Jon Bentley

#8. Programming Pearls

by Jon Bentley

26.1% recommended

Computer programming has many faces. Fred Brooks paints the big picture in The Mythical Man Month; his essays underscore the crucial role of management in large software projects. At a finer grain, Steve McConnell teaches good programming style in Code Complete. The topics in those books are the key to good software and the hallmark of the professional programmer. Unfortunately, though, the workmanlike application of those sound engineering principles isn't always thrilling -- until the software is completed on time and works without surprise.

The columns in this book are about a more glamorous aspect of the profession: programming pearls whose origins lie beyond solid engineering, in the realm of insight and creativity. Just as natural pearls grow from grains of sand that have irritated oysters, these programming pearls have grown from real problems that have irritated real programmers. The programs are fun, and they teach important programming techniques and fundamental design principles.

-- Amazon.com


Working Effectively with Legacy Code by Michael Feathers

#7. Working Effectively with Legacy Code

by Michael Feathers

27.5% recommended (tied with #6)

Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.

In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. Topics covered include:

  • Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance
  • Getting legacy code into a test harness
  • Writing tests that protect you against introducing new problems
  • Techniques that can be used with any language or platform—with examples in Java, C++, C, and C#
  • Accurately identifying where code changes need to be made
  • Coping with legacy systems that aren't object-oriented
  • Handling applications that don't seem to have any structure

-- Amazon.com


The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks

#6. The Mythical Man-Month: Essays on Software Engineering

by Frederick P. Brooks

27.5% recommended (tied with #7)

Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.

-- Amazon.com

read my review of The Mythical Man-Month on Dev.To


Refactoring: Improving the Design of Existing Code by Martin Fowler

#5. Refactoring: Improving the Design of Existing Code

by Martin Fowler

33.3% recommended (tied with #4)

For more than twenty years, experienced programmers worldwide have relied on Martin Fowler’s Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.

This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. Refactoring, Second Edition, features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.

Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.

  • Understand the process and general principles of refactoring
  • Quickly apply useful refactorings to make a program easier to comprehend and change
  • Recognize “bad smells” in code that signal opportunities to refactor
  • Explore the refactorings, each with explanations, motivation, mechanics, and simple examples
  • Build solid tests for your refactorings
  • Recognize tradeoffs and obstacles to refactoring

-- Amazon.com


Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, and Ralph Johnson

#4. Design Patterns: Elements of Reusable Object-Oriented Software

by Erich Gamma, Richard Helm, and Ralph Johnson

33.3% recommended (tied with #5)

This book isn't an introduction to object-oriented technology or design. Many books already do a good job of that...this isn't an advanced treatise either. It's a book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design....Once you understand the design patterns and have had an "Aha!" (and not just a "Huh?" experience with them, you won't ever think about object-oriented design in the same way. You'll have insights that can make your own designs more flexible, modular, reusable, and understandable--which is why you're interested in object-oriented technology in the first place, right?

-- Amazon.com


Code Complete: A Practical Handbook of Software Construction by Steve McConnell

#3. Code Complete: A Practical Handbook of Software Construction

by Steve McConnell

44.9% recommended

Widely considered one of the best practical guides to programming, Steve McConnell’s original Code Complete has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking—and help you build the highest quality code.

  • Discover the timeless techniques and strategies that help you:
  • Design for minimum complexity and maximum creativity
  • Reap the benefits of collaborative development
  • Apply defensive programming techniques to reduce and flush out errors
  • Exploit opportunities to refactor—or evolve—code, and do it safely
  • Use construction practices that are right-weight for your project
  • Debug problems quickly and effectively
  • Resolve critical construction issues early and correctly
  • Build quality into the beginning, middle, and end of your project

-- Amazon.com


The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and Dave Thomas

#2. The Pragmatic Programmer: From Journeyman to Master

by Andrew Hunt and Dave Thomas

47.8% recommended

Programmers are craftspeople trained to use a certain set of tools (editors, object managers, version trackers) to generate a certain kind of product (programs) that will operate in some environment (operating systems on hardware assemblies). Like any other craft, computer programming has spawned a body of wisdom, most of which isn't taught at universities or in certification classes. Most programmers arrive at the so-called tricks of the trade over time, through independent experimentation. In The Pragmatic Programmer, Andrew Hunt and David Thomas codify many of the truths they've discovered during their respective careers as designers of software and writers of code.

Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They also recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is more light-hearted. In the debugging section, it is noted that, "if you see hoof prints think horses, not zebras." That is, suspect everything, but start looking for problems in the most obvious places. There are recommendations for making estimates of time and expense, and for integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: it displays your own accumulated wisdom more cleanly than you ever bothered to state it, and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book.

-- David Wall via Amazon.com


Finally, the single most-recommended book for software developers:


Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. "Uncle Bob" Martin

#1. Clean Code: A Handbook of Agile Software Craftsmanship

by Robert C. "Uncle Bob" Martin

52.2% recommended

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.

What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.

Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

Readers will come away from this book understanding

  • How to tell the difference between good and bad code
  • How to write good code and how to transform bad code into good code
  • How to create good names, good functions, good objects, and good classes
  • How to format code for maximum readability
  • How to implement complete error handling without obscuring code logic
  • How to unit test and practice test-driven development
  • This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

-- Amazon.com


The above "recommendation percentages" are the fraction of all lists surveyed which contain that book. So even if a book is only "12.5% recommended", it means that, on average, 1 out of every 8 developers has read that book and recommends it to other developers. All of the books above pass that 1-in-8 threshold.

More surprisingly are the books in the top 10. Books #10 through #6 are recommended by 1 in every 4 developers on average. Books #5 and #4 are recommended by 1 in every 3. And the top three books, Code CompleteThe Pragmatic Programmer, and Clean Code, are recommended by about every other software developer. That is an immense impact on one of the most critical industries in modern society. If you're looking to strengthen your software development knowledge and you haven't yet read these three books, there's a good chance about half of your coworkers would recommend that you do so.


最近,资深软件开发人员Andrew,整理了几十个程序员、项目经理和职业导师以及其他行业专家最推荐的软件开发书籍,该列表一共有36个来源,累计297本书,其中最受推荐的是以下20本,一起来看一下:

1、《企业应用架构模式》13.0%的人推荐

这本书实际上是两本书合二为一,第一部分是一个关于开发企业应用程序的简短教程,你可以从头到尾阅读该教程,以了解本书教程的范围。第二部分,即本书的重点,是对模式本身的详细参考。个模式都提供使用和实现信息,以及Java或C#中的详细代码示例。整本书还用UML图进行了丰富的说明,以进一步解释这些概念。
这本书是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。

2、《架构整洁之道》 13%的人推荐

通过本书你将学到:

  • 了解软件架构师具备什么条件,以及掌握基本的问题处理、数据管理等基本软件设计原则。
  • 为web、数据库、控制台和嵌入式应用程序实现最优的高级结构
  • 了解设计和体系结构出错的原因,以及如何预防(或修复)这些Bug

3、《计算机程序设计艺术》 13%的人推荐

虽然这本书构思于几十年前,但它仍然是一部永恒的经典。几十年来,前三卷一直是学生、研究人员和实践者在编程理论和实践方面的宝贵资源,是所有基本算法的圣经,这本书最大的优点之一就是每一章都包含了大量的问题。作者仔细地选择问题,并根据困难程度将它们编入索引。

4、《编码》 15.9%的人推荐

作者Charles Petzold使用日常和熟悉的语言系统,如布莱叶盲文和摩尔斯电码,为那些想了解计算机和其他智能机器内部秘密的人编织了一个富有启发性的故事。因此读这本书的时候,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的。

5、《敏捷软件开发》 15.9%的人推荐

本书由软件开发人员为软件开发人员编写,是最新软件开发方法的独特集合。作者讲述了OOD、UML、设计模式、敏捷和XP方法,并详细描述了一个完整的C++和Java可复用程序的软件设计。它使用了一种实用的解决方法,展示了如何开发一个面向对象的应用程序,从分析的早期阶段,到设计到最后的实现。

6、《算法导论(第3版)》 17.4%的人推荐

在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。

全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。

7、《深入浅出设计模式》 17.4%的人推荐

很多时候,你都在被一些软件设计的问题困住了,而你遇到的这些问题很可能别人已经解决了,本书向你展示了开发人员用于创建功能强大、优雅、可重用和灵活软件的经过实践检验的模式,读完这本书将会更擅长于解决软件设计中的问题,并能够和你的团队成员用模式的语言来更好地沟通。

8、《程序员面试金典(第5版)》

本书是原谷歌资深面试官的经验之作,层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。第1~7 章主要涉及面试流程解析、面试官的幕后决策及可能提出的问题、面试前的准备工作、对面试结果的处理等内容;第8~9 章从数据结构、概念与算法、知识类问题和附加面试题4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的150 道编程面试题,并针对每一道面试题目,分别给出了详细的解决方案。

9、《点石成金》18.8的人推荐

这是一本关于Web设计原则而不是Web设计技术的书。作者是Web设计专家,具有丰富的实践经验。他用幽默的语言为你揭示Web设计中重要但却容易被忽视的问题,只需几个小时,你便能对照书中讲授的设计原则找到网站设计的症结所在,令你的网站焕然一新。

10、《程序员的职业素养》 18.8%的人推荐

本书是编程大师Bob 大叔40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

11、《软技能》 23.2%的人推荐

这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。

本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的“软技能”。通过阅读本书,软件工程人员、编程人员和其他技术人员能够积极思考自己的职业生涯,丰富自己的生活,让自己更接近成功。

12、《人件》 23.2%的人推荐

本书是一本关于软件组织管理的畅销书。本书是软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。全书从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度阐释了如何思考和管理软件开发的最大问题——人(而不是技术),以得到高效的项目和团队。


13、《编程珠玑》 26.1%的人推荐

本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。

14、《修改代码的艺术》 27.5%的人推荐

本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,而且从涵盖面和深度上都超过了前两部经典。书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。

15、《人月神话》 27.5%的人推荐

本书内容源于作者Brooks在IBM公司任System/360计算机系列以及其庞大的软件系统OS/360项目经理时的实践经验。在本书中,Brooks为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践,为每个复杂项目的管理者给出了自己的真知灼见。

16、《重构》 33.3%的人推荐

二十多年来,全世界经验丰富的程序员都依靠Martin Fowler的重构来改进现有代码的设计,提高软件的可维护性,并使现有代码更易于理解。

这个期待已久的新版本已经更新,以反映编程领域的重要变化。第二版的《重构》,改用JavaScript代码示例,以及演示无类重构的新功能示例。和第一版一样,这个版本解释了什么是重构为什么应该重构,如何判断需要重构的代码,以及如何成功的重构。

17、《设计模式》 33.3%的人推荐

这本书不是介绍面向对象技术或设计。许多书已经在这方面做得很好了……,这是一本设计模式的书,描述了面向对象软件设计中特定问题的简单而优雅的解决方案,这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。

18、《代码大全》 44.9%的人推荐

本书被广泛认为是编程的最佳实践指南之一,Steve McConnell的《代码大全》完成帮助开发人员编写更好的软件已经超过十年了。现在这本经典的书已经完全更新和修订了,并加入了最前沿的实践——以及数百个新的代码样本——来说明软件构建的艺术和科学。无论你的经验水平、开发环境或项目大小如何,本书都将为你提供信息并激发您的思考——并帮助你构建最高质量的代码。

19、《程序员修炼之道》 44.7&的人推荐

本书由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,知道用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。

20、《代码整洁之道》 52.2%的人推荐

本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码整洁之道(英文版)》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

发布了19 篇原创文章 · 获赞 6 · 访问量 1132

猜你喜欢

转载自blog.csdn.net/ydyuse/article/details/104549581