A computer hacker is any skilled computer expert that uses their technical knowledge to overcome a problem. While “hacker” can refer to any skilled computer programmer, the term has become associated in popular culture with a “security hacker”, someone who, with their technical knowledge, uses bugs or exploits to break into computer systems.Today, mainstream usage of “hacker” mostly refers to computer criminals, due to the mass media usage of the word since the 1980s. This includes what hacker slang calls “script kiddies”, people breaking into computers using programs written by others, with very little knowledge about the way they work. This usage has become so predominant that the general public is largely unaware that different meanings exist.2 While the self-designation of hobbyists as hackers is generally acknowledged and accepted by computer security hackers, people from the programming subculture consider the computer intrusion related usage incorrect, and emphasize the difference between the two by calling security breakers “crackers” (analogous to a safecracker).
The controversy is usually based on the assertion that the term originally meant someone messing about with something in a positive sense, that is, using playful cleverness to achieve a goal. But then, it is supposed, the meaning of the term shifted over the decades and came to refer to computer criminals.3
As the security-related usage has spread more widely, the original meaning has become less known. In popular usage and in the media, “computer intruders” or “computer criminals” is the exclusive meaning of the word today. (For example, “An Internet ‘hacker’ broke through state government security systems in March.”) In the computer enthusiast (Hacker Culture) community, the primary meaning is a complimentary description for a particularly brilliant programmer or technical expert.