A very nice, unfortunately also very long, article written by Paul Graham. He explains what the difference is between good programmers and great hackers. A must read!
One of my favorite parts:
“I’ve seen occasional articles about how to manage programmers. Really there should be two articles: one about what to do if you are yourself a programmer, and one about what to do if you’re not. And the second could probably be condensed into two words: give up.”