Development World

New Development Technologies , Computer Last News , Tips & Tricks , UI , CSS , HTML , ASP , C# , .net Framework , Patterns & Practices & etc

Top 100 Best Software Engineering Books, Ever

Ladies and gentlemen...

In 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 receive 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.

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

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...

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 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!

Reference :

نویسنده : Nasser Hajloo : ۱۱:۱۳ ‎ق.ظ ; ۱۳۸٧/٥/٢٩
Comments پيام هاي ديگران ()      لینک دائم