I get asked frequently what .NET books I recommend on a given topic. Although I love reading .NET books, I don’t think I have read enough to give an informed opinion. So I was thinking about how to provide a community ranking system on .NET books. But then I thought we already have a lot of that community information available via web services.
With some creative use of the Amazon Web Services I can get a list of the .NET related books and their Amazon sales ranking and other information about the book. But that doesn’t really give me the full picture… It tells me what books people are buying, but it doesn’t tell me what books people are finding value in.
So, from the Google web service I am able to get an idea for the amount of chatter or buzz there is out there on a particular topic. That coupled with the number of comments a given book has on Amazon allows me to come up with a buzz rating for a given title.
The program is very hacky, but it was fun to write and tweak the algorithm. If you have ideas for how to improve the algorithm, maybe with the addition of yet another web service, I’d love to hear it.
A couple of bits of feedback for the Amazon and google folks (or their competitors ;-)):
1. Properties that return null are real pain… Several times I would write code like this:
Console.Error.WriteLine(d.ProductName + "," + d.Reviews.TotalCustomerReviews);
And would get a NullReferenceException that would force me to change to change it to this:
string totalReviews = "0";
if (d.Reviews != null) totalReviews = d.Reviews.TotalCustomerReviews;
Console.Error.WriteLine(d.ProductName + "," + totalReviews);
Life would be lot more simple if TotalCustomerReviews just retuned “0” in this case.
2. Google’s max calls per day of 1,000 is a really limitation in development. Plus it doesn’t really seem to reset at midnight ;-)
3. I’d love to get google’s page rank to weight the buzz rating better.
Ok, without further ado, here is my take at the top 10 .NET books. Remember, this is not my personal recommendation; I am just giving you the data:
And the top book per category:
And here is the full run..
What do you think? Does my automated system pick winners? What did a I miss?