Best Books of 2011

Just like in 2010, 2009, 2008 and 2007, here goes the traditional book of the year post for 2011! This year my reading list included design, history, and lots of JavaScript.

Here goes the list, in a completely arbitrary order of personal preference:

“Design for Hackers” by David Kadavy

It all started, around August, with a conversation with Paul, my cousin from London, the founder of Zerofee; we were talking that while designers could easily find tutorials and documentation to learn about software development, it was much harder for developers to find material about design, at least to learn the basic concepts.

Somehow, David Kadavy must have heard us, and he came up the following month with this great book. I have recommended it to every one of my students since I read it; it is built like a computer book, with clear explanations, diagrams and lots of pictures; every concept is described in detail, including historical references and examples.

David provides a healthy introduction to design, going through subjects such as fonts, proportions, color theory, structure, grids, and much, much more.

I insist; this is a must read for any developer, particularly those who, like me, are self-taught and eager to expand their own possibilities.

“Steve Jobs”, by Walter Isaacson

The day Steve Jobs passed away I was in South Africa, giving some trainings in Johannesburg, precisely about iOS. I remember waking up, opening my copy of Echofon in my iPhone, and seeing lots of tweets with just an apple sign on them.

I said to myself, as I started to scroll downwards, that this was it. I sat on the edge of the bed, realizing that it was the end of a huge chapter for the computer industry.

That very same morning, I gave an introduction to iOS to some developers, and of course there was a special thing to that training. Somehow there was a legacy of the guy in every NSObject that we allocated in memory.

Later that same month, I went to the USA and landed in Newark. While waiting for my connecting flight, I was dragging my feet in the terminal, and the corner of my eye saw the book in the shelves of a bookstore.

I read it in about 5 days. There had not been a book that hook me as much as this one in ages.

I will not go as far as saying that this was the book of the year. I won’t add anything to what is already available online about it. It was, without any doubt, the most hyped book of the decade. And it is a surprisingly good one; not biased, very acid in some parts – I guess Jobs would not have liked reading some sections of it. I picture him throwing the book out of the window, outraged, while weeping at some chapters.

I admit, I’ve shed some tears in some parts. All in all, a very emotional piece, not to be missed.

“JavaScript Patterns”, by Stoyan Stefanov

2011 was the year of the mobile web. Not only because some analyst said so, but because the demand for mobile web solutions from companies has increased dramatically in one year. Also because the capabilities of smartphones have grown in such a way that today, web apps are a viable choice for consumers.

This means, by all standards, that JavaScript regains a preeminence on the web; longtime a language that was bashed and forgotten, JavaScript reappears in front of many developers as the instrument by which the mobile web becomes a reality.

This book is a perfect way to rediscover JavaScript; to forget the pain of the past, to see that it is a wonderful language that, as Crockford would say, was hugely misunderstood.

By the way, readers should have read Crockford’s “JavaScript: the Good Parts” before this book; Stefanov builds on top of that knowledge and provides the developer with a fresh bouquet of idioms and constructions that will be useful in every JavaScript project.

Finally, given the rise of Node.js in the past few years, reading it provides also with a solid background for the next wave of JavaScript frameworks hitting the market these days.

“Programming the Mobile Web”, by Maximiliano Firtman

Maximiliano is a genius. The guy has pulled the complete bible, the absolute reference, for everything that has to do with mobile web development. The book is a treasure of capabilities, comparisons, history, and nitty-gritty details about every possible mobile web browser in the planet.

How he does it, it’s his great mystery. After publishing this book, he came up with the great Mobile HTML5 site which, if you haven’t seen it yet, you should.

Even better, he’s argie like I am, and I’ve had the opportunity of inviting him to Zürich last year, to hear him talk about jQuery Mobile. Which reminds me of…

“jQuery Mobile: Up and Running”, again by Maximiliano Firtman

… his latest book; this time, Maximiliano tackled the hottest mobile framework of the moment. I’ve read the book in “early release” mode, prior to the final publication, and so far it looks very promising.

In this book, Maximiliano explains the core concepts of jQuery Mobile, the semantics and the capabilities of the framework, clearly explaining its strengths as well as its weaknesses.

I have learnt a lot about jQuery Mobile through this book, so I strongly recommend it to anyone interested in the subject.

“Mobile Design for iPhone and iPad”, by Smashing Magazine

A very nice and concise eBook by the great people of Smashing Magazine, with great tips and tricks about how to create UIs for the new generation of touchscreen devices. I’ve learnt a lot with this book.

“iPad at Work”, by Apple

Finally, a nice free eBook by Apple, very useful for explaining the iPad and its multiple capabilities to business people; I am personally seeing more and more iPads in enterprise contexts, so I think that this is an important (and small) title to read.

Best Books of 2010

It is that time of the year again, just like in previous years. This is the list of the books I enjoyed most in 2010! You know that I like reading at least 6 books per year, and learning a new programming language every year. Last year’s programming language was LISP, and the books, well, here they go.

eBooks

By all means, it is clear that 2010 was the year of the eBook. Maybe it’s because of the iPad, but I’ve been consuming more and more eBooks, even if I still enjoy buying some classics in paper form. Kindle, iPad, iBooks, Nook, GoodReader, PDF, ePub, all of those names have shaped my way of reading last year.

But one of the most visible changes of switching to eBooks was the speed of reading; consuming eBooks is fast, much faster than reading normal books. I can’t say that I prefer one or the other; it’s simply different. But reading eBooks is faster than reading paper books. Probably there’s a warmth factor in paper books, which makes me enjoy them longer, I don’t know, but the fact is, in 2010 my book reading consumption has gone up in an alarming rate. Continue reading

Best Books of 2009

047014873X.jpg 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. Continue reading

Epic Interview: A New Literary Genre in the Tech Section?

Here’s a simple recipe:

  1. Contact the most important people in some field.
  2. Sit down and ask a similar set of questions to each one of them.
  3. Record all the interviews and then write them down.
  4. Publish the resulting book, usually with great reviews (such as this one).

This does not constitute, by any means, a new genre; but it’s certainly a fashionable one in your technical bookstore right now. At least Apress and O’Reilly have realized that this simple technique yields epic books.

I have already blogged about Founders at Work, thus it’s worth mentioning that Coders at Work (which I’m reading right now) has just been released. Both books share a similar structure (as well as a similar cover), and both are highly recommendable, with interviews of David Heinemeier Hansson, Steve Wozniak and Paul Buchheit for the first, and Donald Knuth, Joe Armstrong and Brendan Eich for the second.

founders_work coders_work

On the other side, O’Reilly is very well aware of the force conveyed by this kind of books: their “/Theory/In/Practice” series of books has some gems which, I think, are really worth reading:

beautiful_code beautiful_teams masterminds_programming

“Beautiful Code” features interviews with Brian Kernighan, Charles Petzold and Yukihiro Matsumoto; “Beautiful Teams” (already my preferred book for 2009!) features Tim O’Reilly, Barry Boehm and Grady Booch; finally, “Masterminds” has great interviews with Bertrand Meyer, Bjarne Stroustrup, James Gosling, Brad Cox and Anders Hejlsberg.

I think that the names of the interviewees, in each of the five books, speak for themselves. In all of them, I have found inspiration, advice, tips, humour, awe and enlightenment. The good thing being that, in most cases, you don’t need a Computer Science degree to read these books; it’s just a matter of empathy and sociology. Our world is driven by software, and the stories behind its construction are not only interesting, they are also important to understand the cost, the difficulty and the wonder that constitutes a piece of working software. These books are a way to approach the immense complexity of our society.

I really look forward to read more books of this kind! If I forgot to mention any other similar book, just leave the reference in the comments section below. I’d love to read your suggestions.

Best books of 2008

You might remember my beloved mantras: learning a new programming language and reading at least 6 relevant books every year. Following the 2007 edition, here’s the list of the 8 books I have enjoyed most in 2008, ordered by a purely subjective and absolutely irrational decreasing preference. I strongly recommend all of them!

Winner: Geekonomics: The Real Cost of Insecure Software by David Rice

Runner-up: The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn’t by Robert I. Sutton, PhD

And 6 more:

Continue reading

Adding Manpower

Published in 1975, “The Mythical Man-Month” is considered an all-time classic in the software engineering field. The book author, Frederick P. Brooks Jr., used his experience as the project manager of the IBM System/360 and its software, the Operating System/360, to explain a common set of problem patterns, applicable to other software projects as well.

One of the most famous citations in the book is the one regarding the consequences of adding human resources to a late project; this article will provide a couple of thoughts about this assertion, and highlight some contrariwise opinions. Continue reading

Blow your mind

Take a careful look at this:

[source:c]

include

class Gadget { public: void sayHello() const { std::cout << “Gadget!” << std::endl; } };

class Widget { public: void sayHello() const { std::cout << “Widget!” << std::endl; } };

template class OpNewCreator { public: T* create() { std::cout << “Using ‘new’: “; return new T; } };

template class MallocCreator { public: T* create() { std::cout << “Using ‘malloc’: “; void* buf = std::malloc(sizeof(T)); if (!buf) return 0; return new(buf) T; } };

template