Best Books of 2009

Every year I’m doing the same post (well, in 2006 I completely forgot to do it) that starts more or less with the same phrase: “every year I like to read at least 6 new tech books, and to learn a new programming language”.

Last year’s language was Go, and the books, well, here we go:

Software Engineering: Barry W. Boehm’s Lifetime Contributions to Software Development, Management, and Research

Barry Boehm is a name that might not strike a chord immediately, but if you work in the software field, it should. He has been working non-stop for the past 50 years (that’s right, 50), discussing all kind of subjects related to the practice of software engineering. This book is a compilation of his most well-known papers, with subjects ranging from project management to components, from iterative techniques to developer productivity. The guy has written about all of it, and when you realize how right he was, you wish you had read those papers earlier in your career.

The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK

Erica Sadun is a legend in the iPhone software engineering field. Her involvement with the iPhone developer community from the very beginning (during the dark times of jailbroken iPhones) has increased since the release of the official iPhone SDK in March 2008. Her articles on Ars Technica or The Unofficial Apple Weblog are epic, and her book could not be other than a masterpiece. Make no mistake: this is not a book for beginners (and, by the way, the second edition has recently been published) but it is the perfect companion for all of us who spend a life in Xcode and the SDK. I hope she will continue providing more editions of this book, particularly now that the iPad has been announced, and will be released soon.

Beautiful Teams: Inspiring and Cautionary Tales from Veteran Team Leaders

O’Reilly has some very successful book series, like the “Head First” and the “Beautiful” ones. The latter, very similar in spirit and nature to the “At Work” series of books by Apress, provides a series of interviews to key industry players, in different fields, highlighting real-world experiences. This book takes this approach and brings an incredible series of war stories from organizations like IBM, Media Molecule or the NASA, told by Grady Booch, Tim O’Reilly, Cory Doctorow, Steve McConnell and, yes, even Barry Boehm. This book reinforced my belief that software is a social process, and I think that you will enjoy these stories about how many well-known products we use and love (or hate) every day have been brought to market, and how their teams struggled to stay together - or how they miserably failed.

Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces

The iPhone OS and Mac OS X both share a legacy of design, attention to detail and awesomeness that can be explained by the sole existence of a single set of APIs: Core Animation. This library allows developers to create stunning visual effects with great performance and with just a few lines of code. The rational use of animations is considered a huge usability win, bringing context awareness to users, helping them understand what’s going on their applications and providing feedback and a “real world” feel to software. Bill Dudney provides here a short yet complete introduction to the concepts behind Core Animation, both for the Mac OS X and iPhone OS; all in all a must have for all Cocoa and Cocoa Touch developers.

Pragmatic Version Control Using Git

I’ve been a happy Subversion user for years. I’ve kept svn repositories for my Master’s degree work, my personal documents and of course for most of my projects. However, the server-centric nature of Subversion always made me think twice before creating a repository, and not being able to browse repository contents without a specialized client was always a pain in the neck. Not to name the fact that branching in svn is harder than it should be IMHO. Git changed all of that. Creating repositories with Git is not only cheap, it’s easy and fast, and branching could not be easier. This book was the one that showed me that there was a better way, and now with my Github account, I can’t think of any other way to handle any kind of project. This book provided the initial knowledge to get started, and I strongly recommend it to anyone who wants to learn more about Git.

The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich

Tim Ferriss is a strange kind of guy. He comes up with this book and tells you that you are working too much, that having a boss is killing you, and that you should be sipping margaritas in the Caribbean instead. And then he proceeds to show you how to do it. This book is interesting in many aspects, the first of which is the irreverent tone and the complete faith the guy has in his method. I could not agree with everything he said but I have to agree with the fact that he’s really convincing. Tim believes in what he says and the book is a really funny one, and I can’t deny that reading it helped me take the final decision to start my own company. So, in any case, beware! This book is dangerous :)