big

NOOP.NL | The Creative Networker

Top 100 Best Software Engineering Books, Ever

10/06/2008

Ladies and gentlemen…

Top 100 Best Software Engineering Books EverIn this post I proudly present the Top 100 of Best Software Engineering Books, Ever. I have created this list using four different criteria: 1) number of Amazon reviews, 2) average Amazon rating, 3) number of Google hits and 4) Jolt awards. Please refer to the bottom of this post to find out how I performed the calculations, how to get the full top 100 list in PDF MS Word, and why that obscure and silly little publication of yours has not made it on my list.


Management 3.0Do you seek more advice for Software Developers, Team Leaders & Development Managers? 

Get the book!


Management 3.0

Leading Agile Developers, Developing Agile Leaders


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

2 Elisabeth Freeman, etc.
Head First Design Patterns

3 Steve McConnell
Rapid Development

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

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

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

7 Joel Spolsky
Joel on Software

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

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

10 Martin Fowler
Refactoring: Improving the Design of Existing Code

11 Mike Cohn
Agile Estimating and Planning

12 Alistair Cockburn
Writing Effective Use Cases

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

14 Steve McConnell
Software Estimation: Demystifying the Black Art

15 Mike Cohn
User Stories Applied: For Agile Software Development

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

17 Martin Fowler
Patterns of Enterprise Application Architecture

18 Jeffrey Friedl
Mastering Regular Expressions

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

20 Karl E. Wiegers
Software Requirements (2nd Edition)

21 Craig Larman
Applying UML and Patterns (3rd Edition)

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

23 Gary McGraw
Software Security: Building Security In

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

25 Tom DeMarco
The Deadline: A Novel About Project Management

26 Craig Larman
Agile and Iterative Development: A Manager’s Guide

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

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

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

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

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

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

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

34 Jim Highsmith
Agile Project Management: Creating Innovative Products

35 Scott Berkun
Making Things Happen: Mastering Project Management

36 Jon Bentley
Programming Pearls (2nd Edition)

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

38 Andrew Stellman, Jennifer Greene
Applied Software Project Management

39 Clemens Szyperski
Component Software: Beyond Object-Oriented Programming

40 Arthur J. Riel
Object-Oriented Design Heuristics

41 Thomas Erl
SOA Principles of Service Design

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

43 Ken Schwaber
Agile Project Management with Scrum

44 Ken Schwaber, Mike Beedle
Agile Software Development with Scrum

45 Joshua Kerievsky
Refactoring to Patterns

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

47 Steve McConnell
Software Project Survival Guide

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

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

50 Kathy Schwalbe
Information Technology Project Management


Management 3.0Do you seek more advice for Software Developers, Team Leaders & Development Managers? 

Get the book!


Management 3.0

Leading Agile Developers, Developing Agile Leaders


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

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

53 Cem Kaner, etc.
Lessons Learned in Software Testing

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

55 Luke Hohmann
Beyond Software Architecture: Creating and Sustaining Winning Solutions

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

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

58 Michael Feathers
Working Effectively with Legacy Code

59 Kent Beck
Test Driven Development: By Example

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

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

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

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

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

65 Dan Pilone
UML 2.0 in a Nutshell

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

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

68 James Shore, Shane Warden
The Art of Agile Development

69 Brian W. Kernighan, Rob Pike
The Practice of Programming

70 Ron Jeffries, etc.
Extreme Programming Installed

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

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

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

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

75 Edward Yourdon
Death March (2nd Edition)

76 ???
Alright, I tricked you. Shame on me! The remaining 25 positions of the list are only available when you request the full PDF MS Word version. Don’t worry, it’s free! See below…

Download the complete list here.


Management 3.0Do you seek more advice for Software Developers, Team Leaders & Development Managers? 

Get the book!


Management 3.0

Leading Agile Developers, Developing Agile Leaders


Scope of the Project
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 being that I had to limit the scope, or I would never be able to finish the bloody thing. It means you will not find classics such as About Face, Don’t Make Me Think!, Machine Learning, Neural Networks, Business Dynamics, Data Mining, Secrets and Lies and Hacking. (Sorry people, maybe some other idiot with time on his hands wants to pick that up…)

I also excluded all books that dealt with specific technologies, such as Java, .NET, Ruby, PHP, and BoogieWoogie 3.1. I was only interested in the potentially timeless software engineering classics. Technology books don’t fall into that category. And 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 you won’t see any generic PMP-related stuff 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 thingy. That’s how I finally ended up with a list of 250 books, and a headache the size of one of Jupiter’s moons.

Doing the Calculations
Then 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.

I can guarantee that the system I used is scientifically incorrect and artistically atrocious! Nevertheless, the results are quite interesting, and I’m sure this 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.

Feedback Please!
Now, I’m sure you will understand that the creation of this list cost me many hours of work, some sleepless nights, and a couple of broken relationships. If you think the list is interesting, or even valuable, then I suggest you digg, stumble and bookmark the hell out of it! This is the first time I honestly think I deserve it. On the other hand, if you don’t like the outcome, and you’ve got something to complain about, don’t hesitate to let me know. I’ll do my best to think of some innovative ways of ignoring you.

Furthermore, if you want to receive a PDF MS Word version with the full Top 100 list, including ISBN-numbers, release dates, Amazon ratings and Jolt awards, then you can download it here.

Send me an email and simply ask for it. I like getting email. And it will help your request tremendously if you told me that you’ve subscribed to my blog/feed. And don’t you dare lying about it! I’ll be monitoring the feed statistics actively, so I know it when you people are playing me false.

(Oh, and please allow me at least 24 hours to reply to your mail. I might be trying to recover from the hours of sleep I lost…)

Thanks for your feedback, and happy reading!

UPDATE: This is an old post. The list will not be updated anymore.


Wait! Don't stop reading now. I have some more interesting lists for you:


Get my new book for FREE! Register here.

Register for a FREE book!

This article is written by on in Top Lists. Jurgen Appelo is at Happy Melly. Connect with Jurgen Appelo on .

This article was posted in:

This article was tagged with:


  • http://micahelliott.blogspot.com Micah Elliott

    Thanks for your efforts, Jurgen! Brilliant idea for a post/study. Everyone should maintain a list of their favorite books. Yours now covers everyone.
    I personally would like this data to include some of the technology-specific books, but that might really dilute/skew the result to a bunch of uninteresting Java books. What you have here is quite useful. I just wouldn’t want the fact that “lisp” shows up in a title to cause it to be excluded (I see SICP made the list). Maybe you’ve even created a (very complex) meme to be applied to other disciplines.
    Some observations:
    * If a book doesn’t go to Amazon, it will never make the list?
    * I’m not a huge fan of #1 (Code Complete) or #2. What does that say about the study, or about me? “Best” just doesn’t sit well with me.
    * Some of these *are* technology specific. I would argue #4 (Design Patterns) is mostly about C++. Some argue that design patterns are just language warts. And what about Scrum? That *is* pretty specific.
    Here are some other data points that might also be interesting for each book:
    * Is there a free downloadable version? Are download numbers available? Are people *buying* these anyway?
    * What is the year of publication?
    * Are the some keywords common to all descriptions (e.g., refactoring)
    Are you going do this every year? :-)
    I’m not expecting much can be done about most of my points; just hypothetical nice-to-haves.

  • Suki Fuller

    I guess you aren’t a football fan! That is a great list, so much reading for me to do.

  • http://codesoftly.aaronoliver.com Aaron

    Awesome list. I’m wondering how it could be made even more digestible to a beginner.
    I can remember my first trip to the computer section of the book store and being overwhelmed by woodcuts of obscure animals, huge words, and giant tomes.
    Maybe some kind of summary of what each book is great at?
    Still though, an excellent starting point for anyone wanting to learn the trade.

  • http://agilesoftwaredevelopment.com Artem Marchenko

    Excellent list! Could be used when hiring people as a kind’of reverse Joel Test ( http://www.joelonsoftware.com/articles/fog0000000043.html ) – “Tell me which books of this list you’ve read and which ones are on your to-read list” :)
    My personal Jurgen test score is 13-10-3: 13 books read, 10 in the to-read list (yeah, a bit too long list), 3 were considered, but then I decided that they aren’t in my focus area.
    The most valuable part of the list is of course the titles that I didn’t know of. I’ll have a look at the descriptions and probably will add something to my “to-read” and then my “read” lists.

  • http://micahelliott.blogspot.com Micah Elliott

    Jurgen — I see each of your book links goes directly to Amazon. You might want to get setup with Amazon’s affiliate program (really simple), and update those links (quickly) to reflect your account ID. If you get a lot of clicks on your titles (which you very well may) you’ll get a percentage of each subsequent purchase. I don’t think anyone would hold your profiting from your hard work against you.

  • http://www.noop.nl Jurgen Appelo

    @Micah: You’re right. A non-Amazon book won’t make it on the list. I’m open to suggestions for another approach next time. :)
    “Best” is of course a subjective label. I could have used “greatest” or anything else.
    Scrum is simply a collection of project management practices. The specific label doesn’t change the fact that it is applicable to many projects. Same with design patterns in my opinion.
    @Suki: You’ve guessed it right. I don’t like football! :)
    @Artem: I’ve read 22 books out of the full top 100 list, and I’m sure to increase that number a.s.a.p.
    @Micah: Thanks for the tip!

  • http://Www.trinsics.com/blog chris garrigues

    what does it say about how long ago I went to school that I know few of these books. On the other hand, I saw a book by someone I worked with over 20 years ago. Good for her!

  • http://www.boitam.eu Lau

    A very good work, really!
    So many excellent books!
    Can’t read them all…

  • http://www.noop.nl Jurgen Appelo

    @Chris: I’m curious, which author was that?
    @Everyone: Don’t hesitate to ask me for the full version. I’m actually sending you the Word-document version, because my PDF writer consistently refuses to print it to a PDF file. But I’m sure people won’t mind.
    The full Word document contains release dates, ISBN numbers, Amazon statistics, Jolt awards and all remaining 25 entries (including books by Tom Gilb, Robert Glass, Johanna Rothman, Paul Graham, James Coplien, Esther Derby, and many more…) Just send me an email, and I will give it to you!

  • Trevor

    I agree with one of your posters, #1 is definitely not one of my top choices. A highly over-rated book in my opinion. And Joel Spolsky completely lost credibility when I read his stuff on exception handling. My top 4 are probably 4,10,13 and 17

  • http://profile.typekey.com/jurgenappelo/ Jurgen Appelo

    Note for all new visitors: I wrote a second post with a number of observations about the Top 100 list. Check it out:
    http://www.noop.nl/2008/06/top-100-best-software-engineering-books-ever-comments.html

  • http://www.ShitalShah.com/blog Shital Shah

    You missed
    Feynman Lectures On Computation
    Logic and Databases by C J Date

  • http://profile.typekey.com/jurgenappelo/ Jurgen Appelo

    @Shital: I didn’t miss them. They simply didn’t turn up in my searches for popular books. Both books have only few reviews on Amazon.

  • http://panictank.net tst__

    Great list. For ranking developers there is this matrix: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
    I made a simple test out of this programmer competency matrix, just for self-testing ;)
    http://code.panictank.net/programmers_matrix/matrix_test.html

  • http://blog.photoquarium.com/2008/10/29/a-few-software-engineering-books/ Photoquarium Blog

    A few software engineering books.

    For all of you out there that need or want to read up on software engineering or just want to pad their geek library with books that will get noticed, check out this list of The Top 100 best Software Engineering Books, Ever. 
    This is a huge list and m…

  • Pavel Bazanov

    The list is just awesome. For example first 2 books in the list are my favourite books.

  • Daffy Duck

    Don’t sweat it. If you read just five good programming texts, you will be ahead of 95% of the rest of the programmers I know.

  • http://DarkestShade.BlogSpot.com/ Luke

    This is an awesome list! Thanks a lot. I will be bookmarking this.

  • http://profile.typepad.com/6p0120a555cc57970c www.gridpulse.com

    It’s strange that Clean Code by Uncle Bob didn’t make your list http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

  • http://profile.typepad.com/jurgenappelo Jurgen Appelo

    Actually, it is not strange at all. Because Clean Code wasn’t released yet when I made this list. :)

  • Guofu Chen

    Jurgen, that’s an awesome job to collect the top 100 software engineering books.

  • http://nl.linkedin.com/in/marcelsorger Marcel Sorger

    Great to see a list of the classics.
    Read some,
    heard about most of them,
    now I’ll spend the rest of my live to read them all.
    Hey… at least my live goal is clearer now ;)

  • http://www.dhaka.net Mushfiqur Rahman

    A new Book?

  • bob

    Where is Ian Somerville? I would expect him to be near the top of the list.

  • Mohit Shrivastava

    This is a nice website it’s very useful for thanks………

  • http://arisfurniture.com/choosing-patio-furniture-compatible-with-the-dcor-of-your-patio.html arisfurniture.com

    Choosing Furniture compatible

    When youre looking for patio furniture youll want to adjudge furniture that is compatible with the design of your backyard and the d?cor of your patio. Since present are so many different types of patio furniture to adjudge from you shoul…

  • http://gledovic.com Dusan

    Thank you Jurgen for your effort and for these few jokes you’ve thrown above, I was laughing mad.

  • Donald Murray

    Computer Approximations by Hart and Cheney. This is considered the bible of transcendental functions for compiler libraries and supercomputers.

  • sudaiskhan

    very good yar

  • http://odevelop.com/blog Cameron

    Very useful, thank you!

  • Stephen

    Thanks for the list!
    Which ones were your personal favourite?

  • http://Winchell.org Jeff Winchell

    You don’t have any books from Gerald Weinberg or Meilur Page-Jones or Larry Constantine. Books published after Amazon became big can’t be the only criterion. There are plenty of books that are still invaluable that were written before then.
    Also you have no books on databases though most professional software work involves databases. If you just add a few from Chris Date and Stonebreaker that will do, though there are others of note.
    BTW, I had a list of 25 books (many on your list) that I used as my interviewee screening tool. In my job ad, I asked the applicant to write me something about one of these books. Almost every person who had something meaningful to say I hired and turend out great. If you haven’t read any classic computer science book or you can’t say anything beyond pablum, the chances that you will be an excellent software engineer are close to nil.