I first came across this image some years ago. Now I stumble on it again on this Slashdot thread: «Are you proud of your code?»
I was never really fond of software engineering (at least not in the way I was taught; that was one of the most obnoxious subjects I endured during college…) but I always found the image darkly amusing…
Moving on, among the tons of comments present in aforementioned thread, I found two of them very interesting, reason for which I am linking (and quoting) them here. The first one is about how (little) programmers usually think:
In my experience, not everybody dares to work this way. It is a bit embarrassing if your boss enters your office and you’re just leaning back in your chair, day after day. But on the other hand, if they wanted someone who would always seem busy, they hired the wrong person; they should have gone for a typist. Thinking is an important part of a programmer’s job.
The second one is about code comments:
I’ve met people of the agile variety who insist that well-written code needs no documentation: that if you carve your code up into small, tight, appropriately named classes and methods it becomes obvious what your code does and your code becomes “self-documenting”, and I’ve met people who won’t even look at code unless every single line is commented telling them precisely what it does, so “int i = a + 2;” has to have a comment above it saying “// create a signed 32-bit integer variable, i, and assign it two more than the value of a”.
Human brain is indeed curious in some ways…