CopyPastehas never been so tasty!

Top 100 Best Software Engineering Books, Ever

by developer

  • 0
  • 0
  • 0
404 views

Version 1

Jurgen Appelo

jurgen@noop.nl

www.noop.nl

June 10, 2008

Introduction

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.

 

#

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

#

Author(s) / Title

Year

ISBN13

Jolt

sum

avg

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

#

Author(s) / Title

Year

ISBN13

Jolt

sum

avg

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

2008

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

#

Author(s) / Title

Year

ISBN13

Jolt

sum

avg

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

#

Author(s) / Title

Year

ISBN13

Jolt

sum

avg

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 you way down. It shouldn't take you more than a couple of years…

 

Copyright

This work is released under a Create Commons License. You are free (and encouraged) to copy, distribute and transmit the work, and to adapt the work, provided you attribute the author. Please send it to your colleagues, friends, family, neighbors and local zoo.

http://creativecommons.org/licenses/by/3.0/

Profile

                        Jurgen Appelo is Chief Information Officer at ISM eCompany (www.ism.nl), recently rated as the #1 fastest growing technology company in The Netherlands. He leads a horde of 50 software developers, development managers, project managers, consultants, quality assurance managers, service managers and kangaroos, some of which he hired accidentally.

Jurgen is primarily interested in software engineering, quality improvement and complexity theory, from a manager’s perspective. He is trying to write a book about this, and he keeps track of it on his blog (www.noop.nl).  However, sometimes he puts it all aside to do some intensive programming himself, or to spend some time on his ever-growing collection of science fiction and fantasy literature.

Jurgen lives in Rotterdam (The Netherlands) -- and sometimes in Brussels (Belgium) -- with his partner Raoul. He has two kids, and an imaginary hamster called George.

Add A Comment: