I have been meaning to write my own version of Jeff Atwood's Reading List for a while now, and have finally managed to find some time to write about the books I have read.
Code Complete 2 I found this book quite tough reading. It wasn't that it had nothing of use in it - far from it, it just was fairly heavy going. There are many things that can be learnt from this to help with the whole process of development, from how to name variables and functions to what the useful methods of development planning are. Highly recommended.
Don't Make Me Think This book by comparison was very easy to read. It is fairly short (around four hours is plenty to read it) and is crammed with useful succinct information on design. It is focused at web development, but 90% of the information applies to forms development too. Highly Recommended.
Head First Design Patterns I was about halfway though this book when I realised it was in Java and not C#...I thought the writers just had a healthy obsession with a particular type of Coffee! In all seriousness though, this book is well written and provides the basics of each of the patterns covered and then builds on them. It also compares similar patterns (like Monostate vs. Singleton). Highly Recommended.
Refactoring: Improving the Design of Existing Code This is a useful, yet somewhat odd book. The first few pages recommend how to read it (usually I just read a book start to finish...) but with this one its recommended to read the first few chapters, read the titles of the next chapters and read the last chapter. This is because the middle part is all of the different refactoring procedures. Some of them seem so obvious (Sub method a block of code etc) but there are also some very useful techniques mentioned on how to look for areas to refactor, and what order things should be done in. Recommended.
The Mythical Man Month I learnt a lot from this book, mainly about the development lifecycle and team interaction. The points brought up about Men and Months not being interchangeable has been particularly invaluable, as have the reasons behind why they are not interchangeable. Recommended
Windows Forms 2.0 Programming This is currently being read...