A few moments ago I got reminded of a book that I read many years ago. Looking at my bookshelves there are various software development books, some new, some old, some out dated, some superceded, some still waiting to be read (Yes, I have a tendancy to buy books faster than I can read them. Also, sometimes I buy a book and my interests or needs change and so it remains unread for months)
So, what books are on my bookshelves:
- Human Computer Interaction – A book from my university days. It goes unread these days as it is too rooted in theory and not much practical.
- Data Communications, Computer Networks and Open Systems – Another book from my university days. It too goes unread these days as I have not had much involvement in writing network software, except on a level where I don’t really need to deal with the network communication plumbing. Although I did once help to write an NDIS driver.
- Information Modeling and Relational Databases – It looked promising but I’ve so far found it to be a very heavy read. I’ll eventually get back to it, but for the moment it is staying on the shelf.
- Domain Driven Design – So far I’ve not got much past the first couple of pages, but I’ve only just started reading it. This is one book that I will be finishing sooner rather than later as it is on the reading list of the eXtreme Programming group that I am part of.
- Design Patterns – It has been a long time since I’ve read this. I remember at the time thinking that I’d managed to figure out a lot of OO pretty well for myself as I’d been using some of the patterns discussed without having ever come across them in a reference such as this.
- Programming Microsoft Windows with C# – This was one of the first books on .NET I ever bought. I found it a great book as it kind of joined up the traditional thinking of Windows applications with the .NET Framework. And, of course, just about everyone who has programmed with the Win32 API and done battle with the GDI code knows of Charles Petzold
- Patterns of Enterprise Application Architecture – Some of this was quite interesting. It is a book I have taken to dipping in and out of rather than trying to read all the way through. However, some of Martin Fowler’s references to cricket just lose me. He does liken the rules to Baseball so that Americans and Canadians can understand, but it leaves the poor Scots to just shrug and give up.
- Extreme Programming Explained – Kent Beck’s original work on XP, it is now superceded but I have not yet had a chance to buy the second edition. When I first read this a few years ago I just didn’t get it very well. As far as I could see it was all about not needing to document anything and working in pairs. I have since briefly pair programmed and I am won over – it is much more efficient. But, I still feel that most people misinterpret the documentation issue and that really needs to be cleared up.
- Writing Secure Code: This is a fantastic book. There isn’t much to say on this except that you really must read it.
- Database Modeling: I found this a little too academic, but at least it gives examples using Microsoft Visio
- Code Complete, Second Edition: This has to be one of the best books on how to write good code.
- .NET Compact Framework: I did a little work using the compact framework a while back and this was a good starting reference. However, if you are already familiar with the .NET framework then don’t be misled by the bulk of the book – you probably know more than half of what is in this book already.
- Don’t Make Me Think: A great book on how to design good user interfaces on websites. Most of the examples seem common sense, but it is amazing how that just goes out of the window sometimes when deadlines are looming.
- The .NET Developers Guide to Windows Security: A great book that presents everything in easy to swallow bite sized chunks. That has to be the best thing about the book because a lot of people think about security and shy away from doing it properly because they think it will be hard, and it isn’t. And this book shows you how easy it is.
- Professional Software Development: This one just really validated my reasons for being a software developer and the ways in which to maintain a professional level of conduct.
- Code Complete (again). This is the original first edition. I suppose I should really get rid of it since I now have the second edition, but I can bring my self to throw out a book that has served me so well.
- Writing Sold Code: I got this around the same time as the original Code Complete book. Another must have read for people who churn out code. The examples are in C / C++ but I think the issues are just as relevant for other languages.
- Industrial Strength C++: I don’t have much call for this book these days, but the advice was great and if you are a C++ programmer I would recommend that you read it.
- Rapid Development: It has been a while since I’ve read this book. The “There are no silver bullets” is one thing that, at the time, I thought I understood, but it has taken experience to actually back that up. There have been times I’ve looked for quick solutions, but usually they attract the flies like the piles of manure I should have known they were.
- Lean Software Development: This was previously on the eXtreme Wednesday reading list. You can find a review on it here.
NOTE: This was rescued from the Wayback Machine. The original was dated Sunday, 30th January, 2005.