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
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
Published
15 September 2009