There is the original link of essay - http://www.paulgraham.com/gh.html.

In programming, as in many fields, the hard part isn’t solving problems, but deciding what problems to solve.

Great hackers think of it (programming) as something they do for fun, and which they’re delighted to find people will pay them for.

Good hackers find it unbearable to use bad tools. They’ll simply refuse to work on projects with the wrong infrastructure.

A programming language is a medium of expression.

Great hackers also generally insist on using open source software.

Hackers like to work for people with high standards. But it’s not enough just to be exacting. You have to insist on the right things.

If you’re not a hacker, you can’t tell who the good hackers are.

The key to being a good hacker may be to work on what you like.

When I think about the great hackers I know, one thing they have in common is the extreme difficulty of making them work on anything they don’t want to.

Hackers are particularly curious, especially about how things work.