This is a list of all the books I’ve read that are in some way related to programming and software development, along with some thoughts on them.


  • The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto. Really a comprehensive guide to Ruby 1.8 and Ruby 1.9, but not a "how-to program" type of book. Simply wonderful information density and one of the clearest programming books I've read in a long time.
  • Programming C# 3.0
  • C# 3.0 Cookbook
  • C# 3.0 Design patterns by Judith Bishop. A nice overview of common design patterns and how best to implement them in C#.
  • Programming Perl. A must when beginning to program Perl. Nice reference and enough depth to keep you going for a long time.
  • Practical mod_perl
  • Perl Best Practices by Damian Conway
  • Higher-order Perl by Mark Jason Dominus. This is a gem of a book for every Perl developer that wishes to expand her repertoire of tricks, but not suitable for beginners. It tackles topics such as memoization, currying, recursion and iterators, recursive-descent parsers and other neat stuff for transforming code using code.
  • Perl Cookbook. A collection of recipes for solving small and large problems in idiomatic Perl.
  • Perl Testing by Ian langworth and Chromatic. Nice rundown of Perl testing covering both Test::Class and Test::More. It's in the developer notebooks series so it's really hands on all the way through.
  • Javascript: The Definite Guide.
  • Javascript: the good parts by Douglas Crockford. What is says on the cover. Really.
  • Ansi Common Lisp by Paul Graham. I would say this book can be compared to Kernigan & Ritchie's The C Programming Language. More parenthesis, though.
  • XSLT 2.0 by Michael Kay. Handy reference for those times when there's no way to escape XSLT.


  • Agile Software Development with Scrum By Ken Schwaber
  • Agile Estimating and planning by Mike Cohn. A very nice book covering a lot of nooks and crannies regarding estimating and planning agile software development. I would say a must for all people involved in agile projects.
  • Agile Software development by Alistair Cockburn. One of the best discussions on agile software development as a field, without stranding on specific methodologies. A very good read, especially the parts on communication and individuals.
  • Test-driven Development by Dave Astels
  • The Pragmatic Programmer by Dave Thomas and Andy Hunt
  • Continuous Integration by Paul M. Duvall. Didn't tell me much I didn't already know, but gives a nice overview of continous integration for newbies in the field.
  • Pragmatic Project Automation by Mike Clark. Quite basic rundown of the task of automating all (as many as possible) tasks in building a software project. Beginner-level.
  • Xunit Test Patterns by Gerard Meszaros. High-level discussion of test patterns for development. Testing in a TDD/BDD sense.
  • Junit Recipes by J.B. Rainsberger
  • Clean Code by Robert C. Martin.
  • Scrumban by Corey Ladas.
  • Code Complete 2nd edition by Steve McConnel. A bible on software development in many ways. Packed with useful advice even though a lot is common knowledge if you been around for a few years.
  • Scrum and Kanban - making the most of both by Henrik Kniberg and Mattias Skarin
  • Kanban - Successful Evolutionary Change for Technology Organizations by David Anderson
  • Extreme Programming explained by Kent Beck
  • Agile Software Development, Principles, Patterns, and Practices

Design and architecture

  • Domain-driven Design by Eric Evans
  • Refactoring by Martin Fowler
  • Code Complete 2nd ed. by Steve McConnell

Machine learning

  • Data mining by Ian H. Witten and Eibe Frank
  • Data Mining - Concepts and Techniques by Jiawei Han and Micheline Kamber
  • Pattern Classification by Duda, Hart and Stork
  • Pattern Recognition and Machine Learning by Christopher M. Bishop
  • Fundamentals of Neural Networks by Laurene Fausett
  • Neural Networks for Pattern Recognition by Christopher M. Bishop
  • Fuzzy Modeling and Genetic Algorithms for Data Mining and Exploration by Earl Coz


  • Applied Cryptography by Bruce Schneier. If you don't know who Bruce Schneier is, take a look at .

Wish list/future reading

  • Leading Lean Software Development: Results Are not the Point by Mary and Tom Poppendieck.
  • Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman By Dave Hoover, Adewale Oshineye
  • The Art of Agile Development by James Shore and Chromatic
  • Working Effectively With Legacy Code by Michael Feathers.
  • Software Craftsmanship by Pete McBreen
blog comments powered by Disqus


15 September 2009