Thursday, 11 September 2008

Top 10 Software Engineering Books

I like the idea of following a Meme around blogs in order to find out more about the people who blog and more about specific subjects, so I'm going to start one of my own. (A good example of a meme is the album for each year of your life)

The question I'd like you all to answer is;

What are, in your opinion, the top 10 books that every software engineer/developer should read?

The Rules

  • These must be books that you have read yourself.
  • You must think that it is essential that every software engineer read these books.
Here's my list;

  1. Design Patterns by Erich Gamma (GOF)
  2. Refactoring: Improving the Design of Existing Code by Martin Fowler
  3. Refactoring to Patterns by Joshua Kerievsky
  4. Domain-Driven Design by Eric Evans
  5. Test Driven Development: By Example by Kent Beck
  6. Extreme Programming Explained by Kent Beck
  7. Introduction to Algorithms by Thomas H. Cormen
  8. Effective Java (2nd Edition) by Joshua Bloch
  9. RESTful Web Services by Richardson, Ruby, and Heinemeier Hansson
  10. Patterns of Enterprise Application Architecture by Martin Fowler
What I found is that listing only 10 creates some hard decisions as to which books you think are more worthwhile than others. What is obvious from my list is that I've most recently been writing Java server-side applications and that I've got a lot of reading to do. Hopefully all of you can help me figure out what I should be reading next. :) There are others I would have liked to put on the list, however because I haven't read them yet they've not made the cut.

So... now it's your turn. Do you agree or disagree with this list? What are your top 10? Go and blog about it.