Menu Sidebar

Software Entrepreneurs: Stop looking for itches to scratch

On probably half a dozen different occasions some aspiring entrepreneur has asked me:

Would you be interested in a hosted solution for selling screencasts?

In most cases, the promised solution never goes beyond talk. In a few cases I’ve been sent invitations to beta test. In all cases, a successful business has failed to materialize, and 6 to 12 months later the domain is up for grabs.

These results are completely predictable, for a few reasons.

Read More

Three Object-Oriented Programming Books Worth Reading

A friend asked me to name my top three object-oriented programming books.

I found this a little bit difficult to answer. It wasn’t a matter of narrowing down a large field. Rather, at first I wasn’t sure if I could come up with all of three books worth recommending.

This is mostly my fault. I have shelves full of books on OOP, but I’ve only gotten around to reading a subset of them. There are probably a few gems in that collection and I just don’t know it yet.

But another factor is that there just aren’t a lot of good OOP books out there. Many of them have good ideas, but are written in a style that’s drier than Death Valley. Others come from the formalist school of object-oriented design, which co-opted the terminology of object orientation while denying the spirit.

Here’s the list I ended up sending him:

(Those are Amazon affiliate links; using them will send me beer money.)

These are all fantastic books that I can recommend unreservedly. Unfortunately, I don’t think any of them really qualifies as a on true 101-level primer on OOP thinking. If you can recommend an intro-level textbook on OOP which is neither a) a snoozer; or b) hung up on tangential stuff like types and inheritance, please pipe up in the comments.

EDIT: there is another book that I considered adding to this list: Object Design, by Rebecca Wirfs-Brock. I actually quote this book more often than any of the others on my list. I only left it off because (please forgive me Rebecca, you know I’m a huge fan!) it’s a tad on the dry side. I know a few people who had difficulty getting through it. If you’re like me, and you can get through a book that has a lot of lists of terms that are then broken down into further lists of terms, by all means read this book! You will be the better OO designer for it.


Older Posts

Virtuous Code

"The three virtues of a programmer: laziness, impatience, and hubris" — Larry Wall

Books and Screencasts

RubyTapas Screencasts

RubyTapas Screencasts

Small plates of gourmet Ruby code.

Confident Ruby

Confident Ruby cover

32 Patterns for joyful coding.

The Making of

Confident Ruby cover

Watch me build an app in Sinatra and Rails

Objects on Rails

Objects on Rails

A developer notebook on applying classic Object-Oriented principles to Ruby on Rails projects.

Exceptional Ruby

Exceptional Ruby

The definitive guide to exceptions and failure handling in Ruby.