[ home | blog home | recent activity | guestbook | plugins i'm using (19) ]
Coding is an adventure in formal logic and intellectual pointedness. As in anything else, the more you know and have experienced, the easier things get. I want to hit the point where I have seen so much in my lifetime that I can come across any new problem and after applying a sufficiently complex isomorphism understand the new problem in terms of older problems. That's the goal. Of course understanding and solving the problem don't necessarily play on the same team.
Programming is not so much like building a tower of metal and steel. It is more like looking at the canvas for long periods of time. Visualizing the stroke--the single stroke that you will place there. You think through all the motions involved in the stroke. How it fits with the canvas. How it fits with the world. The curves in the stroke, the straightness. And then suddenly, you draw that perfect stroke. But it involves seeing the whole canvas to begin with.
Beautiful programming is a lot of meditation and thinking and about precise deft strokes, not a bazillion tiny little hacks that barely form a structure that can withstand use and abuse.
But beautiful programming does not happen in practice and it's not efficient in the sense that the initial cost is really high--even though maintenance and related costs would be low.
How does one reconcile this with business and society and work? One tries to keep this in mind. To keep patience in the soul as they build and debug and observe and analyze. All things happen because they are written in the code as such. It is our jobs to make deft accurate strokes rather than practice black magic and voodoo and make a billion inaccurate strokes in a frustrating attempt to solve the problem quickly.
Of course, as with all things, there is a time and place for voodoo debugging.
Update 12/9/2004: Everyone goes through a "programming is beautiful--I'm an artist!" phase too, apparently.
I reserve the right to remove comments that are anonymous, flames, spammy, inappropriate and/or rude. Sometimes I'll reply in email directly--so make sure your email address is correct. New comments get placed in a "draft" status and will NOT show up on the site until I explicitly approve it. Sometimes that happens within 24 hours.
If you can't for some reason post a comment, send me an email: willg at bluesock dot org.
All contents Copyright 1996 to 2010 Will Guaraldi Kahn-Greene.
This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.