« The Long Hiatus | Main | The video quality paradox and the iPod video »

August 06, 2005

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8342405a653ef00d8349d0e4069e2

Listed below are links to weblogs that reference On the Art of Computer Programming:

Comments

David

When I was younger I coined the expression "zoom perception" to describe being able to see the big picture and the detail all at once. I assumed everyone could do it. Later on I was quite surprised to find just how rare such ability is, as recognition of its existence.

The devil in any successful implementation is always in the detail (be it a complex computer-based system, a jet engine, or an off-road buggy) so an ability to competently deal with detail is imperative; but without the big picture one can easily misdirect effort; elegantly solving the wrong problem (or a peripheral problem).

Humans use abstraction and analogy to form mental models, to help understand and communicate ideas. People with "zoom perception" can 'see' several models of the same thing at once, and can use the model relevant to the detail being considered.

Software is an especially interesting implementation domain in which to build complex things, as most of the code is associated with unusual, unplanned or unexpected events. Getting a piece of code working is always the easiest part; engineering to robustly deal with every manner of exception takes the remaining 90% of the time and effort.

Gary Wisniewski

I agree, David, that the ability is rare. I do think most of it can be taught, and one of the big weaknesses of commercial software vendors is that they do not recruit and value individuals who have such training. Rather, it is assumed to be an innate ability.

The common language of abstraction and detail haven't moved into the mainstream, and we're still dealing with lots of self-taught programmers who rely on their instincts. This results in people who argue about whether abstraction is even useful, and companies like whose programming products break abstraction rules left and right in the interests of greater "intimacy with the platform". These are not computer science concepts, these are mostly voodoo.

Consider yourself lucky to have such an innate ability, and even luckier to recognize what it is.

The comments to this entry are closed.

My Photo

FeaturedPix

  • Blue
    I am primarily a verbal person, and love abstract relationships and philosophical challenges. I'm also a visual person, but so often it's hard to get that part of me to reveal itself. Photography has been the tool to help me do so.

Catalysts

Syndicate


  • http://feeds.feedburner.com/TrialByFire
Blog powered by TypePad
Member since 07/2004

Blog Map


Email Subscription



  • Powered by FeedBlitz