Now that my book is on shelves, I’m out of things to do when I come back from work. Furthermore during this year I bought or I was given quite a few interesting programming book, so I think I’ll start using my spare time to improve my skills.
Here is the list of books I’m going to read, some of which I think are a must read for all .NET developers.
Frontend development and JavaScript
I’m a web developer at heart, and I truly believe that a web developer must know everything about Javascript, CSS and HTML. One must not be a guru of them, or a good designer, but must know the techniques behind the so-called front end technologies. So, here are some of the books in my reading list:
Even Faster WebSites
Even Faster WebSites is the second book of the series (the first book was High Performance WebSites) written by Steve Souders, that explains how to improve the performances of a web site, looking at them from the standpoint of the user experience. So it shows how to optimize javascript, how to optimize images, CSS and so on. I read the first book and really recommend it. And I also started skimming through the other book: I think it’s a must read book for everybody working on public-facing sites and on intranet applications with lots of users spread through the globe (and not all in the same LAN)
Pro Javascript Techniques and Secret of the Javascript Ninja
These two books, written by John Resig, are a kind of brain dump of John’s brain: they show advanced uses of Javascript, and how to build your own javascript library. Probably you are not going to write one yourself, but some of the concepts, like closures and advanced cross-browser detection is something you can apply anywhere.
The first book Pro Javascript Techniques, is bit old (end of 2006) but it still contains lots of information on writing OO javascript: it also encapsulate the knowledge John was putting into his brainchild, jQuery.
Secret of the Javascript Ninja is still in early preview access, and you can get the access to the early drafts on Manning site. It’s planned to be released in November 2009.
jQuery in Action
This is THE jQuery book. I already read it last year, and now the second edition is on MEAP on Manning. It will be about jQuery 1.4 and jQuery UI. How can it be about jQuery 1.4 which has not been released yet? The authors are helped by Mr. John jQuery Resin in person. So, if you want to know what’s going to happen with jQuery, this is another must-read book.
Architecture and Methodologies
Lately I’m really getting into methodologies. Unfortunately, for various reasons, I’ve really never been able to apply the full agile principles and practices in a “real” project. But here are some interesting books that might help me find a way to convince my managers and customers to fully embrace Agile.
Art of Unit Testing
Written by Roy Osherove, this is the book I’m bringing with me during my trip in Japan (which, thanks to Subtext future publishing feature, is happening right now while you are reading this post). It’s only 300 pages long so it fits well into my backpack. It’s not the usual book about unit testing: what I really liked about it is that it not only explains you the techniques of unit testing, but tells you real world examples of how unit testing can be introduced into your company, and ways to convince your boss to let you do testing.
The best part is the one that shows a survey done by a software company: same features, two different teams. One team writing test, the other not writing.
The team writing tests took 14 days to implement the feature, while the one not writing took only 7 days (obviously, if you write tests, you write double the code). Then the integration phase took 2 days with tests, and 7 days without tests. And then, the testing and fixing took 12 days for the ones that didn’t write test, and only 8 for the one with tests.
The overall time taken was 24 days for the team that wrote tests and 26 days for the team without tests, which is 2 days more. But the astonishing thing is that 73 bugs were found in production for the feature implemented without tests, and only 11 for the team that wrote test.
(This is not an actual quote from the book)
This is just an example of the real world experience that Roy put in his book. Another must-read book for your summer evenings.
Agile principles, practices and patterns in C#
Written by UncleBob (aka Robert C. Martin), this is the Bible of Agile development. It talks about all the practices of Agile: TDD, refactoring, pair-programming, incremental builds, SOLID principles and lot more. And the best part of it is that everything has samples in C#, and not in Java as most other books about Agile. Unfortunately this is bigger and heavier then the one by Roy. And probably a bit too complex as vacations time reading. But really, really, really recommended.
Architecting Applications for the Enterprise
Written by friend and community fellow Andrea Saltarello, this is not about Agile or testing in particular, but is about all the aspects related to building a real world application: patterns, architectural thoughts (either software and hardware), development methodologies, testing, tracing, and so on.
.NET Development
I’m still a .NET developer, and I still need to write some code now and then. But I usually learn the libraries once I need them. But these two books are still interesting for forming a background.
ASP.NET MVC in Action
Since I wrote a book about ASP.NET MVC you might wonder why I’m reading another book on the same topic. The reason is that this book is written with a pretty interesting plot: it’s based on the real world development of CodeCampServer. And also, there is always something to learn from Jeffrey Palermo and Ben Scheirman.
Professional LINQ
LINQ is a strange beast, and I still haven’t used it further than the simple usual queries. This book gets deeper into the some more advanced features, and also shows how to write a simple custom LINQ provider
NHibernate in Action
I’m not a bit data-layer guy, and I always focused most of my attention and interest in the UI layer side of applications. When I built my last complete application a few years ago I used NHibernate, but I did it the naive way. This book is the Bible of NHibernate. A must read for everybody that wants a well paced and well organized way of learning this powerful ORM.
Wrapping up
Will I be able to read all that books before I embark in another adventure? Only time will tell. But in the meantime, I hope you found my recommendations useful.