Top 100 Best Software Engineering Books, Ever

The Full List

This article contains a top 100 of the best software engineering books.


I have created this list using four different criteria:

  1. number of Amazon reviews;
  2. average Amazon rating;
  3. number of Google hits;
  4. Jolt awards.

Please refer to the second part of this article to find out how the calculations were performed.

The Top 100 List


#

Author(s) / Title

Year

ISBN13

Jolt

sum

avg

1

Steve McConnell
Code Complete: A Practical Handbook of Software Construction (2nd Edition)

2004

978-0735619678

**

243

4.72

2

Elisabeth Freeman, etc.
Head First Design Patterns

2004

978-0596007126

**

237

4.63

3

Steve McConnell
Rapid Development

2003

978-0072850604

**

112

4.74

4

Erich Gamma
Design Patterns: Elements of Reusable Object-Oriented Software

1994

978-0201633610

*

244

4.55

5

Bruce Schneier
Applied Cryptography: Protocols, Algorithms, and Source Code (2nd Edition)

1995

978-0471128458

*

99

4.61

6

Robert C. Martin
Agile Software Development: Principles, Patterns and Practices

2002

978-0135974445

**

31

4.77

7

Joel Spolsky
Joel on Software

2004

978-1590593899

*

48

4.71

8

Tom DeMarco, Timothy Lister
Peopleware: Productive Projects and Teams (2nd Edition)

1999

978-0932633439


76

4.79

9

Frederick P. Brooks
The Mythical Man-Month, Anniversary Edition (2nd Edition)

1995

978-0201835953


124

4.54

10

Martin Fowler
Refactoring: Improving the Design of Existing Code

1999

978-0201485677


138

4.54

11

Mike Cohn
Agile Estimating and Planning

2005

978-0131479418


43

4.74

12

Alistair Cockburn
Writing Effective Use Cases

2000

978-0201702255

*

45

4.62

13

Bertrand Meyer
Object-Oriented Software Construction (2nd Edition)

2000

978-0136291558

**

43

4.47

14

Steve McConnell
Software Estimation: Demystifying the Black Art

2006

978-0735605350

*

31

4.74

15

Mike Cohn
User Stories Applied: For Agile Software Development

2004

978-0321205681


37

4.76

16

Donald E. Knuth
The Art of Computer Programming, Volumes 1-3 Boxed Set (2nd Edition)

1998

978-0201485417


109

4.39

17

Martin Fowler
Patterns of Enterprise Application Architecture

2002

978-0321127426

*

54

4.46

18

Jeffrey Friedl
Mastering Regular Expressions

2006

978-0596528126


122

4.48

19

Andrew Hunt, David Thomas
The Pragmatic Programmer: From Journeyman to Master

1999

978-0201616224


127

4.42

20

Karl E. Wiegers
Software Requirements (2nd Edition)

2003

978-0735618794

*

44

4.48

21

Craig Larman
Applying UML and Patterns (3rd Edition)

2004

978-0131489066


178

4.37

22

Alistair Cockburn
Agile Software Development: The Cooperative Game (2nd Edition)

2006

978-0321482754

**

28

4.46

23

Gary McGraw
Software Security: Building Security In

2006

978-0321356703


19

4.95

24

Gregor Hohpe, Bobby Woolf
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

2003

978-0321200686


31

4.74

25

Tom DeMarco
The Deadline: A Novel About Project Management

1997

978-0932633392

*

52

4.42

26

Craig Larman
Agile and Iterative Development: A Manager's Guide

2003

978-0131111554


46

4.52

27

Eric A. Marks, Michael Bell
Service-Oriented Architecture: A Planning and Implementation Guide for Business and Technology

2006

978-0471768944


33

4.45

28

Thomas H. Cormen, etc.
Introduction to Algorithms, Second Edition

2001

978-0070131514


167

4.08

29

Thomas Erl
Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services

2004

978-0131428980


32

4.59

30

Martin Fowler
UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)

2003

978-0321193681

*

139

3.95

31

Kent Beck
Extreme Programming Explained: Embrace Change (2nd Edition)

2004

978-0321278654

*

126

3.98

32

Alan Shalloway, James Trott
Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition)

2004

978-0321247148


109

4.33

33

Grady Booch, etc.
Object-Oriented Analysis and Design with Applications (3rd Edition)

2007

978-0201895513

**

37

3.95

34

Jim Highsmith
Agile Project Management: Creating Innovative Products

2004

978-0321219770


20

4.80

35

Scott Berkun
Making Things Happen: Mastering Project Management

2008

978-0596517717


55

4.53

36

Jon Bentley
Programming Pearls (2nd Edition)

1999

978-0201657883


28

4.50

37

Paul Duvall, etc.
Continuous Integration: Improving Software Quality and Reducing Risk

2007

978-0321336385

**

13

4.85

38

Andrew Stellman, Jennifer Greene
Applied Software Project Management

2005

978-0596009489


15

5.00

39

Clemens Szyperski
Component Software: Beyond Object-Oriented Programming

1997

978-0201178883

**

13

4.69

40

Arthur J. Riel
Object-Oriented Design Heuristics

1996

978-0201633856


27

4.78

41

Thomas Erl
SOA Principles of Service Design

2007

978-0132344821


24

4.58

42

Mary Poppendieck, Tom Poppendieck
Lean Software Development: An Agile Toolkit

2003

978-0321150783

*

35

4.57

43

Ken Schwaber
Agile Project Management with Scrum

2004

978-0735619937


30

4.47

44

Ken Schwaber, Mike Beedle
Agile Software Development with Scrum

2001

978-0130676344


35

4.51

45

Joshua Kerievsky
Refactoring to Patterns

2004

978-0321213358

*

42

4.10

46

Alistair Cockburn
Crystal Clear: A Human-Powered Methodology for Small Teams

2004

978-0201699470


12

4.75

47

Steve McConnell
Software Project Survival Guide

1997

978-1572316218


63

4.33

48

Tom DeMarco, Timothy Lister
Waltzing With Bears: Managing Risk on Software Projects

2003

978-0932633606

**

23

4.52

49

Venkat Subramaniam, Andy Hunt
Practices of an Agile Developer: Working in the Real World

2005

978-0974514086

*

26

4.58

50

Kathy Schwalbe
Information Technology Project Management

2007

978-1423901457


27

4.63

51

Randall Hyde
Write Great Code: Volume 1: Understanding the Machine

2004

978-1593270032


17

4.82

52

Scott Rosenberg
Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software

2007

978-1400082476


59

3.78

53

Cem Kaner, etc.
Lessons Learned in Software Testing

2001

978-0471081128


35

4.54

54

Andy Oram, Greg Wilson
Beautiful Code: Leading Programmers Explain How They Think

2007

978-0596510046

**

27

3.81

55

Luke Hohmann
Beyond Software Architecture: Creating and Sustaining Winning Solutions

2003

978-0201775945


27

4.56

56

Grady Booch
Unified Modeling Language User Guide, The (2nd Edition)

2005

978-0321267979


81

3.30

57

Karl Fogel
Producing Open Source Software: How to Run a Successful Free Software Project

2005

978-0596007591

*

13

4.85

58

Michael Feathers
Working Effectively with Legacy Code

2004

978-0131177055


21

4.86

59

Kent Beck
Test Driven Development: By Example

2002

978-0321146533

*

27

4.11

60

Per Kroll, Philippe Kruchten
The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP

2003

978-0321166098


14

4.79

61

Thomas Erl
Service-Oriented Architecture: Concepts, Technology, and Design

2005

978-0131858589


60

4.15

62

Cem Kaner, etc.
Testing Computer Software (2nd Edition)

1999

978-0471358466


35

4.34

63

Frank Buschmann, etc.
Pattern-Oriented Software Architecture Volume 1: A System of Patterns

1996

978-0471958697

*

16

4.50

64

Harold Abelson, Gerald Jay Sussman
Structure and Interpretation of Computer Programs - 2nd Edition

1996

978-0262011532


157

3.44

65

Dan Pilone
UML 2.0 in a Nutshell

2005

978-0596007959


14

4.57

66

Brett D. McLaughlin, etc.
Head First Object-Oriented Analysis and Design

2006

978-0596008673

**

35

3.77

67

Johanna Rothman
Manage It!: Your Guide to Modern, Pragmatic Project Management

2007

978-0978739249

*

7

5.00

68

James Shore, Shane Warden
The Art of Agile Development

2007

978-0596527679


11

4.64

69

Brian W. Kernighan, Rob Pike
The Practice of Programming

1999

978-0201615869


49

3.96

70

Ron Jeffries, etc.
Extreme Programming Installed

2000

978-0201708424


31

4.35

71

Scott W. Ambler, Pramodkumar J. Sadalage
Refactoring Databases: Evolutionary Database Design

2006

978-0321293534

*

19

4.42

72

Jared Richardson, William Gwaltney
Ship it! A Practical Guide to Successful Software Projects

2005

978-0974514048


24

4.46

73

Greg Hoglund, Gary McGraw
Exploiting Software: How to Break Code

2004

978-0201786958


27

4.41

74

Michael Nygard
Release It!: Design and Deploy Production-Ready Software

2007

978-0978739218

*

17

4.47

75

Edward Yourdon
Death March (2nd Edition)

2003

978-0131436350


68

3.82

76

Stephen P. Berczuk, etc.
Software Configuration Management Patterns: Effective Teamwork, Practical Integration

2003

978-0201741179


23

4.57

77

Elfriede Dustin, etc.
Automated Software Testing: Introduction, Management, and Performance

1999

978-0201432879


40

4.55

78

Donald C. Gause, Gerald M. Weinberg
Exploring Requirements: Quality Before Design

1989

978-0932633132


25

4.72

79

Tom Gilb
Competitive Engineering

2005

978-0750665070


13

4.92

80

David J. Agans
Debugging

2006

978-0814474570


15

4.80

81

Eldad Eilam
Reversing: Secrets of Reverse Engineering

2005

978-0764574818


14

4.64

82

Robert L. Glass
Facts and Fallacies of Software Engineering

2002

978-0321117427


23

4.30

83

Martin Fowler
Analysis Patterns: Reusable Object Models

1996

978-0201895421


15

4.40

84

Matt Weisfeld
The Object-Oriented Thought Process (2nd Edition)

2003

978-0672326110


42

4.07

85

John M. Vlissides
Pattern Hatching: Design Patterns Applied

1998

978-0201432930


25

4.68

86

Johanna Rothman
Behind Closed Doors: Secrets of Great Management

2005

978-0976694021


24

4.38

87

Robert K. Wysocki
Effective Project Management: Traditional, Adaptive, Extreme

2006

978-0470042618


26

4.35

88

Ellen Gottesdiener
Requirements by Collaboration: Workshops for Defining Needs

2002

978-0201786064


14

5.00

89

Eric Evans
Domain-Driven Design: Tackling Complexity in the Heart of Software

2003

978-0321125217


42

4.24

90

Nick Rozanski, Eóin Woods
Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

2005

978-0321112293


12

5.00

91

Peter Rob, Carlos Coronel
Database Systems: Design, Implementation, and Management (8th Edition)

2006

978-1418835934


27

3.37

92

Robert Orfali, etc.
Client/Server Survival Guide (3rd Edition)

1999

978-0471316152


43

4.40

93

Douglas Schmidt, etc.
Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects

2000

978-0471606956


21

4.33

94

Michael Lopp
Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

2007

978-1590598443


21

4.29

95

Paul Graham
Hackers and Painters: Big Ideas from the Computer Age

2004

978-0596006624


55

4.07

96

Philippe Kruchten
The Rational Unified Process: An Introduction (3rd Edition)

2003

978-0321197702


34

3.91

97

Joel Spolsky
The Best Software Writing I: Selected and Introduced by Joel Spolsky

2005

978-1590595008


22

4.14

98

James O. Coplien, Neil B. Harrison
Organizational Patterns of Agile Software Development

2004

978-0131467408


13

5.00

99

Esther Derby, etc.
Agile Retrospectives: Making Good Teams Great

2006

978-0977616640


17

4.53

100

Henry S. Warren
Hacker's Delight

2002

978-0201914658


13

5.00


Legend

Year

= Year of Publication

Jolt **

= Jolt Winner

Jolt *

= Jolt Productivity Award

sum

= Number of reviews on Amazon

avg

= Average rating on Amazon

Scope of this List

For this Top 100 list I have included only books covering subjects found in the Software Engineering Body of Knowledge (SWEBOK). This means that I have left out books with main topics such as web design, computer science, business management and system administration. The main reason for this is that I had to limit the scope (or I would never be able to finish it).

I also excluded all books that dealt with specific technologies, such as Java, .NET, Ruby and PHP. I was only interested in the potentially timeless software engineering classics. In my opinion, technology books do not fall into that category. I did include books on project management (as project management is one of the competences in SWEBOK) but only when those books explicitly dealt with managing software development. (That's why there is no generic PMP-related material on the list.)

Finding the Books

To find all these potentially timeless classics, I checked the best-selling books in these five Amazon categories:

Books > Computers & Internet > Computer Science > Software Engineering
Books > Computers & Internet > Computer Science > System Analysis & Design
Books > Computers & Internet > Programming > Algorithms
Books > Computers & Internet > Programming > Software Design, Testing & Engineering
Books > Computers & Internet > Project Management

After I found all best-selling software engineering books, I subsequently found many other books through the "Customers Who Bought This Item Also Bought" cross-reference feature. And that's how I finally ended up with a list of 250 books.

Note: in case of multiple editions of the same book, only the most recent edition is listed on the chart, though reviews and ratings were combined for all available editions.

Doing the Calculations

When it was time to do the calculations, I checked the number of customer reviews on Amazon, and I ranked the books according to these numbers (= a measure of quantity). I also calculated the average Amazon ratings, and I ranked the books according to these ratings (= a measure of quality). I then checked the number of Google hits for each of the books, and I ranked them accordingly (= a measure of popularity). Finally, I took the three rankings, added extra points for all winners of Jolt awards, and then re-calculated it into a final ranking. This resulted in the list you now have before you.

Note: this little project was performed in the first week of June, 2008. Current Amazon reviews and ratings might have changed since then.

I admit that the system I used has no scientific basis. Nevertheless, I think the results are quite interesting, and I'm sure the list can be of great help if you want to broaden your knowledge of the field of software engineering, in all its exciting dimensions. I suggest you start with number 1, and then slowly work your way down. It shouldn't take you more than a couple of years…
::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::