Software Development

o Recommended Reading

The following is a list of books about software development I like most. If possible, I included links to Amazon, but this is just for your convenience and does not imply any recommendation for this particular online book store.

  • First of all, Design Patterns by the "Gang of Four": Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Probably the book that influenced me most in the last decade, for it showed me that reusable software building blocks are possible if you only transfer the idea from "code" to "concept".
  • UML distilled - second edition by Martin Fowler and Kendall Scott. Great and concise workbook on UML. See also his homepage!
  • Refactoring another Martin Fowler et al. If you are relatively new to software development, here you can find many years of experience about coding style condensed into one book. For old-timers it is a good confirmation of the own experiences.
  • eXtreme Programming explained by Kent Beck. One of the key books to "eXtreme Programming".
  • Smalltalk - Best Practice Patterns another Kent Beck. Another great book about Refactorings and Design patterns. Some of them are specific to the Smalltalk language, but most presented ideas hold true for programming in general.
  • An Introduction to Database Systems by C. J. Date. Very good and deep introduction to the fundamentals of relational databases.
  • My current favourite is Patterns of Enterprise Application Architecture by Martin Fowler. A vast number coding tips from the expert along with very useful patterns for enterprise applications that will likely help you also in many other software domains.

Here are some links to nice websites and articles.

  • Agile Manifesto - The manifesto of all the people around eXtreme programming and related methologies. Some background to this is available on this page.
  • Agile Data - Nice site around the idea of using refactoring and XP methologies in the traditionally difficult domain of relational databases.
  • LISP introductory course - A very good introduction to the LISP programming language.