Their defining quality is probably that they really love to program. Ordinary programmers write code to pay the bills. Great hackers think of it as something they do for fun, and which they're delighted to find people will pay them for. Great programmers are sometimes said to be indifferent to money. This isn't quite true.