Will's blog

purpose: Will Kahn-Greene's blog of Python, Linux, random content, PyBlosxom, Miro, and other projects mixed in there ad hoc, half-baked, and with a twist of lemon

Mon, 01 Jan 2001

on the craft of programming and work

Coding for me is a craft. I feel that I am a craftsman. My tools and design are intricate pieces in a harmony--a zenning out (to quote Tom Christiansen)--that touches my soul. The design, the creation, then I breathe life into my work. The sweet aromas of the debugging cycle where you become intimately aware of the inner workings. The subtle details.

This is programming as a craft. It is different from programming as a method of deriving income. For a lucky few these two can be entwined. But often the act of working as part of a development team for a client against a deadline creates an atmosphere where the creation of beauty must take a back seat for the purposes of teamwork and responsibility and producing a product that meets the customers' often haphazard and contrary-minded expectations.

But this is ok. This is as it was in the days of yore when the blacksmith would shoe your horses, then spend hours by his anvil doing intricate ironwork for gates and statues.

To keep yourself in the tao, don't be frustrated when you can't coax the beauty in every thing you do. Some things have beauty and some have functionality, and some are a total bs hack you did when you were drunk and it was late and the deadline was yesterday and you're just hoping that it doesn't cause your computer to crash before you can fully compile and check the new code in.

Update 12/9/2004: Everyone goes through a "I'm a craftsman programmer" phase as well. Well, probably not _everyone_, but a lot of programmers do. Enough that it's very clear that it's a phase/fad. Still, I think the concept of treating one's programming as a craft with the intention of doing it well rather than just doing it is probably a good thing.

Please keep comments appropriate. I reserve the right to remove anonymous comments, flames, spammy, inappropriate, and other comments that I deem to be worth removing.

Note: New comments get placed in a "draft" status and will NOT show up on the site until I explicitly approve it. Usually that happens within 24 hours, but sometimes I go away and it takes a day or two.

Note 2: There is now a preview button for those of you who want to see a preview! However, it doesn't quite work the way you'd think it should work. I'll look into adjusting it some day.

Note 3: If you can't for some reason post a comment, send me an email: willg at bluesock dot org.

Your name:


Your e-mail address (this doesn't get displayed to anyone--I use it to contact you if there are issues):


URL of your website (optional):


Comment:


Yes, I am a human!

pyblosxom::2.0 dev

All contents Copyright 1996 to 2008 Will Guaraldi.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.