You have probably read about computer hackers in the newspaper and seen stories on the evening news about gangs of teenage hackers breaking into computer systems and causing tremendous damage. If so, then your impression of what it means to be a hacker is likely be quite negative. The popular press tends to depict the hacker as a criminal, or at the very least someone who enjoys causing lots of people lots of trouble. He is usually teenage and very smart, but also socially outcast; the overall impression is often one of dangerous intellect of the sort you typically see only in spy movies. In the media's version, the goal of a hacker is often simply to cause computer systems to crash, but sometimes the goals are more directly criminal. Stealing long-distance phone service, credit card numbers, financial information, or other valuable forms of information are all targets of these dangerous individuals.
The term ``hacker'' has a very different meaning, however, amongst computer programmers. Although the media version of a hacker certainly exists, by far the majority of programmers do not engage in criminal activity. To the working programmer, the term ``hacker'' is much more likely to be used as a term of respect for another's programming abilities than as an insult. A well-known on-line lexicon of programming terminology, known as either The Jargon File or The Hacker's Dictionary , defines a hacker as:
hacker n. [originally, someone who makes furniture with an axe] 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating hack value. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in `a UNIX hacker'. (Definitions 1 through 5 are correlated, and people who fit them congregate.)
Because the understood definition of ``hacker'' relates to a specific attitude towards programming as well as a level of programming talent, not all programmers, not even all good ones, are considered hackers. The Jargon File goes on to say that:
It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you'll quickly be labeled bogus)
Implicit in the notion of a meritocracy is the fact that some members of the group represent higher or lower levels of ability within the basic qualifications for group membership. As a programmer, to be known as a ``true hacker'' is a compliment indeed.
As with any community, programmers have their own heros. If a hero is a figure who is larger than life, one who is endowed with greater skills and powers than ordinary persons, then a hacker hero is one who exhibits tremendous abilities in the aspects that hackers value. The heroic figures in hackerdom are those whose programming feats amaze even skilled programmers. A hacker of this magnitude can, through his programming prowess, make the computer do things that seem magical even to one skilled in the art of programming. Legends of these feats are circulated throughout the community. In this case the communication media are an integral part of the community's identity. Email, newsgroups, the Internet, and the world wide web comprise the virtual home of the hacker community. Physically disparate but connected intimately through these high-speed electronic networks, the hacker community tells legends of their heros' exploits around the high-tech equivalent of a campfire: a glowing computer display.