最受程序員歡迎的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%的人推薦

本書提出一種觀念:代碼質量與其整潔度成正比。乾淨的代碼,既在質量上較爲可靠,也爲後期維護、升級奠定了良好基礎。作爲編程領域的佼佼者,作者給出了一系列行之有效的整潔代碼操作實踐。這些實踐在《代碼整潔之道(英文版)》中體現爲一條條規則(或稱“啓示”),並輔以來自現實項目的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼質量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章