I'm wondering if the term Hacker means different things to different people. When most people hear the word hacker what are the first things that come to mind?
In the programming sense, someone who is willing to go deep into the complexity of the system that they use to gain a greater understanding.
In the life sense, someone who approaches life from an unexpected and usually creative angle to achieve their objectives.
In the spiritual sense, someone who is taking a practical approach to enlightenment.
To programmers, it means "writes ninja code to get the thing to work", a positive connotation to someone whose code is awe-inspiring if a little scary. The project may be some open-source community project or just hobby code.
To the media, it means "subverts security mechanisms to infiltrate large organisations and steals money/data/Google source code", as can be seen from any web search, or even an article in today's online news: http://www.theregister.co.uk/2010/11/08/royal_navy_website_hack/
Paul Graham is the creator of Hacker News and has written several articles on his take on hackers. I'm surprised nobody has mentioned his definition:
To the popular press, "hacker" means someone who breaks into computers. Among programmers 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.
Further along, regarding hack:
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.
From The Word "Hacker"
And, hackers are makers:
What hackers and painters have in common is that they're both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things. They're not doing research per se, though if in the course of trying to make good things they discover some new technique, so much the better.
From Hackers and Painters
How To Become A Hacker by Eric S. Raymond says it for me. The essay deals with basic skills a prospective hacker should develop, along with attitude he should foster, common misconceptions of what a hacker is and even what the author calls "points of style", where he suggests what you could do while not being in a computer to help you nourish your hacking skills. I specially like the part that says:
Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn to play some musical instrument well, or how to sing.
It makes it all sound more like a lifestyle and less like a skill—in my opinion, way much more interesting.
A Locksmith is a hacker...
Let me expand what I mean by this: a hacker in my mind is more general than specific to computers.
"A hacker is a person who looks at any system in an attempt to understand it by breaking the system down, as a result new methods, techniques and or tools are formed."
So using the above, a locksmith is someone who "hacks" a lock, and as a result creates a master key and or skeleton key, or gains new insight into a new key system.
There's an RFC for that. RFC1392 states:
hacker A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. The term is often misused in a pejorative context, where "cracker" would be the correct term. See also: cracker.
I think the meaning of hacker is constantly changing. As an experienced programmer I would call a hacker someone who threw some code there just to make it work. Someone that knows what he/she is doing, but that is too lazy to write proper documentation and tests for it.
It's simply a programmer that isn't bounded by a company that wants things done under a certain specification.
In the office we say that we "hacked" a new feature in the sense that it will likely need to be reviewed and modified if it wants to be commited to our main repository.
If a fellow programmer would call me a hacker, I would feel insulted. If a person working in another field would call me a hacker, I would feel like I was doing something illegal.
So I don't think being a hacker these days has anything positive related to it. But this is just my opinion on how the meaning of the word evolved... it might technically mean something else (like a locksmith), but today its meaning is only related to negative things.
I prefer the (original) Jargon file definition:
[originally, someone who makes furniture with an axe]
Anyone who uses another definition probably has a (not necessarily malevolent) agenda.