A hacker is a computer software or hardware expert who displays exceptional knowledge and understanding in his field. Originally, the term was reserved for those who created or modified their hardware to do things that readily available hardware could not do. Over the years, the term was expanded to computer programmers who could create programs of extraordinary simplicity or complexity, often exploiting bugs in software to cause it to perform functions that it was not meant to perform. Later use of the word hacker was in reference to specific portions of software code where an elegant solution was not available. In these cases, hackers would write the code in unconventional ways, which were often difficult to understand and therefore difficult to maintain. The code was said to be 'hacked' together.
The word hacker has many negative connotations in the computer security field. Hackers who have deep understanding of certain systems or programs can often identify weaknesses in those systems. While there are many professional hackers who examine systems for potential weaknesses, most of them work for large software companies who pay them to discover weaknesses with the intention of correcting them. Relatively few security hackers make their living by exploiting software weaknesses. Security incentives such as The Zero Day Initiative ensure that even if a hacker does discover a weakness in software, he would likely stand to profit more from reporting the weakness then exploiting it. Additionally, public reputation garnered by discovering potential security exploits and reporting them can help hackers find employment and social status. Credible, law-abiding hackers disapprove of the use of the term hacker for those who perform malicious activity. They prefer the term "cracker" for those who exploit computer security weaknesses professionally, and the term "script kiddie" for amateurs who use publicly available information to break into networks without understanding fully what they are doing.
The most famous and recognizable hacker is probably Bill Gates, founder and former CEO of Microsoft Corporation. Gates is known as a philanthropist, and founded the Bill and Melinda Gates Foundation with the intention of promoting healthcare and education. Richard Stallman, founder of the Free Software Foundation, is another distinguished software hacker. Richard is a media figure as well as a computer hacker, as he tours to promote free software. Other notable, famous hackers include Linus Torvalds, inventor of the Linux kernel, Dennis Ritchie, creator of the C programming language and the Unix operating system, and Tim Berners-Lee, who invented the World Wide Web. Note that none of these hackers have ever been involved with a security breach or other malicious incident.
Programming Security Terminology Questions