Part of a discussion between a programmer and someone who just didn't understand what programming was:
"Ok, I came up with an example.
Programming is like doing a massive sudoku. But you're not just doing you're own square, you have to line up the edges with squares that you've already done, or squares other people in your team are working on.
And it's not just squares that you've done, you have to anticipate the sudoku's you'll be doing days, weeks or months from now, and leave easy numbers at the edges so it isn't impossible to do those squares.
And that's why some programmers are so engrossed in it, and get all worked up, because they're like "You left a 5 in the middle of the square, what kind of asshole does that, now I'm gonna have to line all my square up with that".
And then someone points out a bug, an you have to trace it back to the square it came from, and then redo that square without screwing up all the other ones.
And after a few hours of that, you either surf facebook and go on IM, or you start growing a beard and forgetting to wash and getting weirdly obsessed with star wars, and people look at you weird and they're like why do you care about it so much, and through the bleary screen-burnt eyes of your insanity you reply "The squares, can't you see, the squares, they're so beautiful"
And that's why programmers don't get invited to parties.
What was your question again?"
----
And that's life.