Programming as an Art
Excerpted from an email by Jenn Vesperman to the newchix mailing list.
In response to an email talking about the difficulty of forming an initial program design:
This is the core of programming. THIS is programming, and THIS is what
everything else is trying to teach - or trying to support.
(note: secure programming, input checking, and all those things are
support for the core program.)
Knuth's six volume series? All those many books? All the brilliant
people creating methodologies?
They're trying to teach an art.
Programming is art. Engineering is art.
There is a TV series I try to catch called 'the elegant solution'. It's
about civil engineering, and the most elegant, sexy solutions to various
civil-engineering problems (at least in the opinion of the series
Why would an engineer build a comms tower out of a thin mastlike
structure and a bunch of guy ropes? Because he did. And once it was
done, it was beautiful.
Finding out how to get from 'we have this' to 'we want that' is what
they pay us for, people. They -don't- pay us to know this (though some
managers would be shocked at that statement).
They pay us to sit there and squeeze the stress ball and stare into
space and then suddenly turn to the keyboard and type like a madman.
They pay us to work it out. Or - because it's fun, because we like
making Open Source stuff, for whatever reason - we do it without pay.
And, unfortunately, we can't really teach it.
We can teach you the tools that we use to get there.
We can teach you the techniques -we- found helpful to learn those
We can show you what we've done in the past, and tell you why we did it
We can even say 'the standard way to build a comms tower is to stack
bricks on top of each other'.
But we can't give you 'the way to do it'. Because 'the way to do it'
doesn't exist. They pay us to create ways.
And creating ways is fun.