Look at these pretty pictures.
They're made by a short program... programatically. It's generative. So I guess it would be more precise to say that I didn't make these pictures, but I made something that went on to make these pictures. And each time it is run, it makes a different one—no two the same! Not to sell myself short, my choices as a programmer did greatly influence their final design. I think of this as designing at the second degree.
One difficulty with designing at the second degree is not spending too much time designing the first degree—that is, the program and all of the facets of software engineering that could be poured into it. One must instead be thinking about the final visual outcome. It's rightbrain vs. leftbrain, creativity vs. analysis. These dichotomies must be managed.
Luckily, there are some braindeadly easy tools that help programmers forget about things like buffers and pixels and multiple coordinate systems. Processing is one that I've dabbled with before, but it's based in java and frankly java isn't very cool anymore. These days I'm playing with NodeBox.
If you've got a 1440x700 pixel MacBookPro screen like mine, then you can use these as desktop backgrounds. Set it up to cycle through them every couple of minutes and it'll be magic.