I’m reading the book Hackers and Painters. In it, Paul Graham compares hackers (in the original sense of the word, not in the sense of people who break into things) to painters and other “makers” (composers, writers, etc). His point is that hacking is less precise, less calculated, than non-programmers probably think; that it’s more of a creative process, where a project can evolve as it progresses. [Contrast that with Zen and the Art of Motorcycle Maintenance: “It’s all of technology they can’t take…Sylvia’s irritation at a friend who thought computer programming was ‘creative’.”]
I like the idea that programmers are creative about what they do, and that writing code is more organic than inorganic. You can take it too far, and imagine programmers randomly slinging code around, creating some kind of binary modern art (maybe I should try it!), but the original idea has merit. It explains why programmers get so excited about good code, and so irritated at bad code. It explains why they sink into code sessions, and surface hours later with only a vague idea of how much time has passed. It fits much better with the actual experience of coding than the traditional view.
For a good look at hacker culture, check out the jargon file.