A hacker is a person who creates and modifies computer
software and computer hardware, including computer programming, administration,
and security-related items. The term usually bears strong connotations, but may
be either favorable or denigrating depending on cultural context (see the
Hacker definition controversy). Common definitions include:
1. In computer programming, a hacker is a programmer who
hacks or reaches a goal by employing a series of modifications to exploit or
extend existing code or resources. For some, "hacker" has a negative
connotation and refers to a person who "hacks" or uses kludges to
accomplish programming tasks that are ugly, inelegant, and inefficient. This
negative form of the noun "hack" is even used among users of the positive
sense of "hacker".
2. In computer security, a hacker is a person who
specializes in work with the security mechanisms for computer and network
systems. While including those who endeavor to strengthen such mechanisms, it
more often is used, especially in the mass media, to refer to those who seek
access despite them.
3. In other technical fields, hacker is extended to mean a
person who makes things work beyond perceived limits through their own
technical skill, such as a hardware hacker, or reality hacker.
4. In hacker culture, a hacker is a person who has attained
a certain social status and is recognized among members of the culture for
commitment to the culture's values and a certain amount of technical knowledge.
Categories of hacker:
The hacker community, the set of people who would describe
themselves as hackers or described by others as hackers, falls into at least
four partially overlapping categories. Sometimes alternate terms such as
"cracker" are used in an attempt to more exactly distinguish which
category of hacker is intended, or when attempting to put a contextual distance
between the categories due to the Hacker definition controversy.
Hacker: Highly skilled programmer
The positive usage of hacker is one who knows a (sometimes
specified) set of programming interfaces well enough to program rapidly and
expertly. This type of hacker is well-respected (although the term still
carries some of the meaning of hack), and is capable of developing programs
without adequate planning or where pre-planning is difficult or impossible to
achieve. This zugzwang gives freedom and the ability to be creative against
methodical careful progress. At their best, hackers can be very productive. The
technical downside of hacker productivity is often in maintainability, documentation,
and completion. Very talented hackers may become bored with a project once they
have figured out all of the hard parts, and be unwilling to finish off the
"details". This attitude can cause friction in environments where
other programmers are expected to pick up the half finished work, decipher the
structures and ideas, and bullet-proof the code. In other cases, where a hacker
is willing to maintain their own code, a company may be unable to find anyone
else who is capable or willing to dig through code to maintain the program if
the original programmer moves on to a new job.
Additionally, there is sometimes a social downside
associated with hacking. The stereotype of a hacker as having gained technical
ability at a cost in social ability has historical basis in an uncomfortable
amount of factual foundation in many individuals. While not universal, nor even
restricted to hackers, the difficulty in relating to others and the often
abrasive personalities of some hackers makes some of them difficult to work
with or to organize into teams. On the other hand, it is not uncommon for
hackers to thrive on social interaction.
Hacker: Computer and network security expert
In the networking sense, a hacker is one who specializes in
work with the access control mechanisms for computer and network systems. This
includes individuals who work toward maintaining and improving the integrity of
such mechanisms. However, the most common usage of hacker in this respect
refers to someone who exploits systems or gains unauthorized access by means of
clever tactics and detailed knowledge, while taking advantage of any
carelessness or ignorance on the part of system operators. This use of hacker
as intruder (frequent in the media) generally has a strong negative
connotation, and is disparaged and discouraged within the computer community,
resulting in the modern Hacker definition controversy.
For such hackers specializing in intrusion, the highly
derogatory term script kiddies is often used to indicate those who either claim
to have far more skill than they actually have, or who exclusively use programs
developed by others to achieve a successful security exploit.
Hacker: Hardware modifier
Another type of hacker is one who creates novel hardware
modifications. At the most basic end of this spectrum are those who make
frequent changes to the hardware in their computers using standard components,
or make semi-cosmetic themed modifications to the appearance of the machine.
This type of Hacker modifes his/her computer for performance needs and/or
aesthetics. These changes often include adding memory, storage or LEDs and cold
cathode tubes for light effects. These people often show off their talents in
contests, and many enjoy LAN parties. At the more advanced end of the hardware
hackers are those who modify hardware (not limited to computers) to expand
capabilities; this group blurs into the culture of hobbyist inventors and
professional electronics engineering. An example of such modification includes
the addition of TCP/IP Internet capabilities to a number of vending machines
and coffee makers during the late 1980s and early 1990s.
Hackers who have the ability to write circuit-level code,
device drivers, firmware, low-level networking, (and even more impressively,
using these techniques to make devices do things outside of their spec sheets),
are typically in very high regard among hacker communities. This is primarily
due to the enormous difficulty, complexity and specialized domain knowledge
required for this type of work, as well as the electrical engineering expertise
that plays a large role. Such hackers are rare, and almost always considered to
be wizards or gurus of a very high degree.
Hacker stereotypes
There are theoretical types of hackers who are considered to
possess an atypical level of skill beyond that of other meanings of the
positive form of "hacker", which include the Guru and the Wizard.
In some portions of the computer community, a Wizard is one
who can do anything a hacker can, but elegantly; while a Guru not only can do
so elegantly, but instruct those who do not know how. In other sub-communities,
a Guru is one with a very broad degree of expertise, while a Wizard is expert
in a very narrow field. In practice, such exact distinction are usually more at
home in a RPG world, and not often heard in actual conversation.
Within the mainstream media, hackers are often characterised
as strange, mysterious, reclusive, and especially tricky. This may be seen as
an extension of the human tendency to stigmatise what is ill-understood, which
used often to be applied to natural philosophers who were often thought by
superstitious neighbours to be wizards or mystics. One such example was
Leonardo da Vinci, who was thought to be a necromancer due to his extensive
(and extraordinary at that time) knowledge of human anatomy and his study of
dead bodies.