My book list

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.

Languages

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

Methodology

  • 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

Other

  • 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

mini bio

Knut Haugen [Knu:t Hæugen], Norwegian software developer with a penchant for dynamic languages and anything to with developer testing. Agile methodology geek with bias on Lean and Kanban. Some pointers to other stuff by me

meta

Find recent content on the main index or look in the archives to find all content.