To the popular press, “hacker” means someone who breaks into computers. Among outsiders essay it means a good programmer.
But the two meanings are connected. To programmers, “hacker” connotes mastery in the most literal sense: someone who can make a computer do what he wants—whether the computer wants to or not. To add to the confusion, the noun “hack” also has two senses. It can be either a compliment or an insult.
It’s called a hack when you do something in an ugly way. But when you do something so clever that you somehow beat the system, that’s also called a hack. The word is used more often in the former than the latter sense, probably because ugly solutions are more common than brilliant ones. Believe it or not, the two senses of “hack” are also connected.
Ugly and imaginative solutions have something in common: they both break the rules. When he was working on the Manhattan Project, Richard Feynman used to amuse himself by breaking into safes containing secret documents. When we were in grad school, a hacker friend of mine who spent too much time around MIT had his own lock picking kit. He now runs a hedge fund, a not unrelated enterprise. It is sometimes hard to explain to authorities why one would want to do such things. Another friend of mine once got in trouble with the government for breaking into computers.