Fog Creek Software
Discussion Board

Programmer's Bookshelf candidate

Gerald Weinberg, "The Psychology of Computer Programming"

Somewhat long of tooth now, but this is the book that opened my eyes to the joys, trials, and rewards of project management. The two big ideas, the ones that set me free, are:

1. Notion of "egoless programming"; and

2. The huge, inestimable, nonpareil, essential, priceless, treasured, ..., value and character of the code review. I could not work without code reviews.

Very nice to see on the list some books that never seem to be mentioned: "Design of Everyday Things" and K&R as a tutorial: finally somebody agrees with me :-) I feel so .... so /validated/.

Pete Wilson
Tuesday, March 19, 2002

So nice to see so many old friends again - Donald Norman's "Psychology of Everyday Things", Frederic Brooks "Mythical Man Month", the first book the Pragmatic Programmers wrote, Peopleware, 'Zen', even Microserfs and Jakob Nielsen.  (I started my subscription to his e-trailed web-site the same day I started my subscription to JoelOnSoftware)  Good to see Joel endorses his new book, as I'm just going to order it this week.

Enough of the agreement, tho'...  what's missing?

I toyed with "Software Engineering Economics" by Barry Boehm.  Just getting 'economics' to coexist with 'software engineering' in programmers' brains is a valuable enough step, and Mr. Beohm does have useful and interesting things to say.  But what we really need on our bookshelf is his book cut down into the a version the size and style of 'The Mythical Man-Month'.  Short, well-argued, and digestible in increments.  So... close, but no cigar.

Also considered was 'Strategic Planning for the Small Business' by Craig S. Rice.  Short, digestible, and directly usable, covering business planning from start-up to sell-out.  But Joel already has one book in this area, so...

I toyed with 'How Designers Think' by Bryan Lawson.  but it doesn't do what it says on the tin.  And the author doesn't really consider any designers outside of architecture.  One day, someone will write the book that this title was made for.

I looked at all my programming-specific books, and everything was just *too* specific.  With the exception of 'Programming Ruby' by Dave Thomas & Andy Hunt (the Pragmatic Programmers). 

From their Preface -
'Take a true O-O language like Smalltalk. Drop the unfamiliar syntax and move to more conventional file-based source code.  Now add in a good measure of the flexibility and covenience of languages such as Python and Perl - you end up with Ruby.

Use Ruby, and you'll write better code, be more productive, and enjoy programming more.  More than any other language with which we have worked, Ruby /stays out of your way/.  You can concentrate on solving the problem at hand.  '

As well as its printed form, this book is available in electronic form, free-of-charge, as part of the Ruby for Windows development environment, which is itself available on-line free-of-charge.

So... what else makes my list?

Definitely - 'The Business Value of Computers', by Paul Straussman.  Thorough and extensive, but still readable, it's long, because it covers a lot of ground. 

But the bottom line is - enterprises should concentrate on developing or implementing software systems that support their core business processes.  Information systems put in for management never have as positive an effect.

What else? 

'Getting to Yes' by Fisher,Ury & Patton.  It's subtitled 'Negotiating an agreement without giving in'.  Published in over 20 languages now, it's a guidebook on how to turn from adversarial bargaining to the construction of joint problem-solving.  It also has a sequel, 'Getting past No', subtitled 'Negotiating with difficult people'. 

I like to think of these books as 'How to negotiate effectively without sinking to their level', parts I & II.

These are pretty much all the books that have changed my thinking, over the years.

But the 'book that changed my life' needs listing here.

"The Shockwave Rider" by John Brunner.  A late-sixties/early-seventies science fictional account of...  well, today, to intents and purposes.  The way computing has become entwined with telecommunications to become all-pervasive, and potentially oppressive even in the free-est of societies.

This is the book that made me swap from medicine to IT just as I was leaving secondary school for university.

Gordon Love
Tuesday, March 19, 2002

"Shockwave Rider" is mid-1970's, actually.  1975.

What's an intresting piece of serendip is that I owe finding Alexander to "Shockwave Rider".

There's a passage that describes Precipice, the town that's a semi-utopia in post-BigQuake California, as a mix of Taliesin, Ghiradelli, Valencia, and Portmeirion.  Looking for a book to nail down those references -- casual enough to me today, but I was a freshman in college -- Alexander's was the first *big* book in the card catalog that looked relevant.  I thought a book that big was likely to have a bibliography, so...

I was wrong.  But in a good way.

(And I still think there should be a bibiliography for "Pattern Language".  Which, as I slowly do a by-hand migration to HTML for my own use (I intensely dislike the official version on Alexander's web site), I'm doing.)

Hal O'Brien
Wednesday, March 20, 2002

*  Recent Topics

*  Fog Creek Home