In programming, the map is the territory, and in the time you can map out and nail down all of the unpredictable bits of a program, you could have written it already. We also don't have the luxury of physical laws. The few natural laws that do apply, the speed of light and time complexity, are so rarified and remote that they don't apply most of the time. We share more with the mathematician than the engineer, but even that comparison rings hollow.
We create programs custom built for a purpose, using rules of thumb and our own aesthetic instincts, that meet a need. Craftsman seems appropriate.
> We create programs custom built for a purpose, using rules of thumb and our own aesthetic instincts
Software can be general too, it's not the same as, say, making a small stool or chair. Plus, craftsmen are tied to physical constraints too, much like engineers. I'm not sure I agree with how much s/w depends on "rules of thumb and our own aesthetic instincts" though.