ThisArticleHe is a work by Mr. Eric Raymond and translated from Ken Lee into Chinese.
How to become a hacker why does this article exist?
As the author of jargon file, I often receive emails from enthusiastic new online players asking, "How can I become a hacker? "Strangely, there is no file or FAQ on the Internet to introduce this important question, so I wrote this article.
If you are only reading this article offline, you can read the latest Chinese version of this article here.
What is a hacker?
There are several hacker definitions in jargon file, mainly describing "Technical Experts" or "people who are interested in solving problems and beyond the limit ".HackerThere are only two key points
Originally, hackers described a class of professional programmers and network specialists who used early microcomputer and ARPANET labs. they advocate sharing, they establish the internet, they establish and develop into the current UNIX operating system. they manage Usenet discussion groups. they also make the Internet operate. therefore, if you have the above features and participate in similar communities, you have also contributed to the above, and the community knows who you are, also known as you are a hacker, you are a hacker.
However, the concept of hacking is not limited to the "software" community. many people apply the hacker's attitude to other things, such as electronic or music. In fact, the hacker's philosophy exists in any science or literature. from understanding the concept and spirit of hackers, hackers in the software community will also name the latter as hackers. some people also think that the concept of hacking is independent of the media that hackers are engaged in. however, we will focus on the skills, attitudes, and traditions of software hacking in this article.
In addition, a group of people also called themselves "hackers", WHO (mostly young people) use computers to intrude into other computer systems to make damage. hackers call this group A "Cracker" and do not recognize it as a hacker. most hackers think that the destroyer is a lazy, irresponsible, and unremarkable person. the ability to intrude into the security system does not make you a hacker, just as the ability to steal a car with a wire may not make you a engineering company. unfortunately, many writers and reporters call this group A "hacker ".
Cracker and Hacker are mainly damaged by the former and established by the latter.
If you want to become a hacker, take a look. If you only want to become a cracker, go to the alt.2600 discussion team to prepare for system damage. I believe that you will not feel as intelligent as you think. so far I am talking about cracker.
Hacker attitude
Hackers solve problems, establish things, and believe in freedom and sharing. to become a hacker and be accepted as a hacker, your behavior must "show" The above attitude. to "show" The above attitude, you must "truly believe" that the above attitude is correct
I believe that the above attitude is not just to be accepted as a hacker, but to makeYouBeing able to learn and maintain the spontaneous nature of hacking. Just like other creative arts, learning must focus on concepts and attitudes at the same time.
Therefore, to become a hacker, read the following points carefully until you believe it:
1. There are a lot of interesting problems in the world that are waiting to be solved.
It is interesting to be a hacker, but efforts are also required. effort requires spontaneous efforts. successful sports have a strong desire to bring themselves to the limit, just as hackers must have the desire to solve problems, constantly strengthen technology and use wisdom.
If you are not such a hacker, you need to make changes to become a hacker. otherwise, your hacking career and energy will only be consumed by sexual desire, money, and established social values, 1.1 drops.
(You also need to have a strong belief that even if you pause, you will not be able to solve the entire problem, but you will be able to solve and learn from it, you can solve another part until the whole problem is solved)
2. No one should have to solve the same problem twice.
Your wisdom is a valuable but "Limited" resource. please do not use this valuable resource to "reinvent the wheel ". because there are many other unsolved problems that are waiting for you.
To become a hacker, you must believe that the ideas of other hackers are precious. Therefore, you have a moral responsibility to share information, solve problems, and share solutions, so that other hackers do not have to spend more time solving the same problem, but can use time to solve it.NewProblems.
(You do not have to believe that you mustAllEven if you are willing to do this, hackers are the most dedicated. selling enough creden. to buy food, paying rent and using computers does not violate hacker values. you can use your hacking skills to support your family, or even get rich. As long as you do this, don't forget that you are a hacker)
3. Reject dull and boring things
Just like creators, hackers should not be dull, boring, stupid, and repetitive. this means they are not doing what only they can do-solving new problems. this is a waste. therefore, the dull and boring things are not only bad but evil for hackers.
To become a hacker, you must trust this idea so that you can automate all dull and boring things as much as possible, not just for yourself but for others (other hackers ).
(But sometimes hackers do repetitive and boring things to exercise or gain some technology and experience, but this is a personal choice, no one who is good at thinking should be forced to do dull things)
4. Free
Hackers are naturally opposed to hegemony. if someone can give you a command, it will be enough to stop you-stop you to solve problems that you think are meaningful. the special thoughts of a authoritarian person will give you a very stupid reason to stop you from solving these meaningful problems. in order not to suffocate you and other hackers, you must fight against hegemony.
(This is not a challenge to all power. Just as children need adult guidance, criminals must be put down. hackers can accept certain powers. but only limited and consciously agree to accept. what the authoritarian people demand is not what hackers can agree)
They like "ban" and "confidentiality". They do not trust free cooperation and information exchange-they accept the form of "cooperation" that can be controlled by them. as a result, hackers must fight against unreasonable bans, confidentiality, and the means of forcing people by violence or deception.
5. belief cannot replace Ability
As a hacker, you must develop your attitude and have your own beliefs, but believe that you cannot become a hacker, just as if you have a belief that you cannot become a good athlete or rock player. to become a hacker, you must be smart, exercise, and diligent.
Therefore, hackers need to trust their capabilities. all capabilities are good, and only a few people can appreciate the "better". The "best" is some talents that require high intelligence, skills, and concentration.
If you respect talent and desire it-your efforts will be fun, not dull, and this is what hackers must possess.
Basic hacker skills
The hacker attitude is important, but the hacker skill is more important. attitude cannot be replaced. Therefore, you must learn some basic knowledge to be called a hacker.
As technology continues to evolve, these basic knowledge will continue to change. (for example, in the past, mechanical code was required to write computer programs, but recently people love html .) now you need the following knowledge:
1. Learn how to write computer programs
This is of course the most basic hacker skill. if you do not understand any computer programming language, I suggest you learn python. this is a well-designed, clear-analysis-recording syntax that is suitable for beginners in computer programming languages. although it may be your first computer programming language, it is never a toy. it is a computer programming language that is very powerful, flexible, and applicable to large-scale projects.
But keep in mind that if you only know one computer programming language, you cannot become a computer programmer, let alone a hacker.-You need to understand programming methods, it is not restricted by any computer programming language. therefore, you need to learn how to learn a new computer programming language within several days by referring to the user guide and associating the content with what you have learned. that is, you need to learn a variety of computer programming languages.
If you have strict requirements on computer programs, you must learn the Unix core language-C (although C should not be your first computer programming language ). other hackers need to learn Perl and lisp. for practicality, Perl is worth learning. Perl is widely used in active web pages and system management, therefore, even if you don't use Perl to write programs, you also need to learn how to read and understand Perl. learning lisp can give you an unexpected and valuable experience to help you write good computer programs in the days to come, even if you may not always use LISP to program.
Therefore, you 'd better learn the above four computer programming languages (Python, C, Perl, and lisp ). apart from being the most important hacking language, they also represent different programming methods. each language provides you with valuable experience in different ways.
I cannot teach you how to write computer programs here, because this is a complex skill. What I can only say to you is that books and courses are not effective (many, or evenMajorityHackers are all self-taught). The most effective way to learn computer programs is (1)Read the code(2)Code Writing
Learning to write a computer program is just like learning a common language. The best way is to read other people's masterpiece, write some programs, read more, and write more... until you develop a unique set of computer programming methods.
It is very difficult to find a good program to read and learn. In the past, there was a lack of large programs for beginners to practice hacking. but the current situation has changed. Software with open code, computer programming tools, and operating systems (all created by hackers) are now easy to get. lead us to the next question...
2. Obtain an open code UNIX operating system and learn it.
I suppose you have/or can use a personal computer (today's children can easily get it at any time :-)). the first step to become a hacker is to install a Linux or BSD-UNIX operating system on your computer and use it.
Of course, there are many other operating systems in the world except UNIX, but they are all distributed in binary form-you can neither read those code, nor modify them. hacking activities on DOS, windows, Mac, or other operating systems are like dancing in armor.
In addition, UNIX is a job system on the Internet. Although you do not understand UNIX, you can still use the Internet. However, if you do not understand UNIX, you cannot engage in hacking activities on the Internet. therefore, most of today's hackers prefer UNIX. (previously, hackers may disagree, but the interconnectivity between the Internet and Unix has made it difficult to replace other jobs, including Microsoft.
Therefore, install a set of Unix-I personally love Linux, but there are other types (youYesInstall Linux and DOS/windows on the same computer ). learn it, use it, and play it. use it to access the Internet. read and modify its code. it provides better programming tools (including C, lisp, Python, and Perl) than Microsoft operating systems ). you will get interesting and learn more and better knowledge than you think.
To learn more about UNIX, please go to loginataka
For Linux, please go here
For more information about bsd unix and assistance, visit www.bsd.org.
(Note: If you are a beginner, I do not recommend that you install Linux or Bsd on your own. if you want to install Linux, go to some Linux user groups for assistance, or go to the Linux Internet support co-operative (LISC) IRC channel .)
3. Learn how to use the Internet and HTML to write web pages
Most of what hackers do, such as work in factories, offices, or universities, will not affect non-hackers, but the Internet is an exception.PoliticiansThey all admit that the Internet is something that can influence the world. It is also because of this (and other reasons) that you want to learn how to work on the Internet.
This is not to say that you want to learn how to use a browser (everyone knows how to use it ..), I mean, you should first use HTML to write web pages. if you do not know how to write a program, using HTML to write a webpage can help you get some basic concepts of programming.
However, writing a webpage is still insufficient. There are many webpages on the Internet, but most of them are webpages with no direction and clearly have no connotation. (You can see the HTML hell page)
Therefore, Your webpage must haveContent□It must be interesting and/or useful (for other hackers). This is what I want to talk about in the next question ..
Identity of the hacker community
Like most non-profit communities, hackers focus on reputation. you will try to solve interesting problems, but whether the problem is interesting and whether your solution is effective, only other skilled hackers can evaluate the problem.
Therefore, to play the hacking game, you should evaluate your views by other hackers. (As I said, you are not a hacker, unless other hackers also call you a hacker ). however, this fact is sometimes misunderstood because they often think that hackers work alone.
An expert called the hackerContribute to communities. The hacker's status and reputation are not the power of self-reliance on others, nor the beauty of appearance, or the ability to be different from ordinary people, but the result is the influence of others. clearly, it is to contribute the results of your time, creativity, and creativity to others.
Basically, you can contribute 5 things to gain the respect of other hackers:
1. Software for compiling public code
First (the most traditional and basic method), it is to write some other programs that hackers think are interesting and useful, and publish the code.
(People used to call such programs "Free Software", but since too many people misunderstand the meaning of "Free Software. currently, most people call such programs open code. The most respected hacker in the hacker community is some large-sized, powerful, and useful open code software, for other users.
2. software that helps others test and debug open code
In this imperfect world, people cannot avoid spending a long time on testing and debugging software. therefore, many authors of open code software will highly evaluate those good program testers (who can clearly express program error forms and program error locations, accept temporary errors during software development and continue testing ). A good program tester can make a nightmare test and debugging work a little bit worth experiencing.
If you are a beginner, you can find programs that are under development and you are interested in testing and debugging. when you understand testing and debugging, you will naturally learn how to change the program. in this way, you can not only learn, but also establish good relationships with other experts. They may also help you in the future.
3. Release useful information
In addition, you can collect and select useful information and make it into a webpage or FAQ (Frequently Asked Questions) for the same purpose.
Technical FAQ operators often have the same specialization as experts who compile open code software.
4. Help System Operation
The hacker community (especially the developer of the Internet) is composed of volunteers. there are a lot of things that must be processed by someone, such as managing emails, monitoring discussion groups, operating storage websites for large programs, and developing technical standards.
Many people who do the above work are dedicated, because everyone knows that such work is time-consuming but not as interesting as programming. Such work requires a sense of mission.
5. Serve the hacker community
Finally, you can serve and spread news for the hacker community (for example, you can write an article on how to become a hacker :-)). you usually do not do this until you have done the same of the above four types of work.
There is no established leader in the hacking community, but a spokesman for a respected hero and elders. when you have some experience here, you may become a hero or elder. but remember, the hacker community does not recognize arrogant self-centerers, so do not be such a leader. you should not pursue being a leader. You should understand your own direction and look at your position and identity with a modest mind.
Relationship between hackers and geeks
Unlike the legend, hackers are not necessarily geeks, but many are really geeks. Normally, geeks who do not agree with each other will spend more time thinking and engaging in hacking activities.
As a result, many hackers use the name of geeks to express their idea of being independent from society. You can see more of these discussions here.
If you can concentrate on hacking activities and do well and maintain your life, it is really rare. compared to the 1970s s, it is easier to create a hacker now. people are beginning to understand that hackers are actually high-quality talents.
However, if you are a hacker because you are too depressed, I also welcome you. At least you can concentrate on hacking activities. Maybe one day you will have fun in your life.
Other items
I would like to say that if you want to become a hacker, you must have a hacker idea. even if you are not in front of a computer, you can do the following things related to this idea. of course, nothing can replace hackers' computer activities.
- Read technology stories and participate in technology meetings (other hackers are likely to be present)
- Learn Zen and kung fu (concepts are similar to those of hackers in many aspects)
- Develop and analyze the hearing of music. Learn to appreciate specific music and learn to sing with one or more learning tools.
- Learn to appreciate texts and deutons
- Learn your local language well (many hackers are talented writers)
To do more of the above, you are more likely to become a hacker, this may be because the above behavior will mix the Left and Right brains (the hacker needs to rationally analyze things and handle the work in an instant by thinking beyond the logic)
Finally, some of youNoWhat should be done
- Do not use stupid, exaggerated user IDs or Kana.
- Do not get involved in Usenet and other discussions.
- Do not speak of yourself as a 'computer hooligan' or engage with such people.
- Do not issue emails or email discussions with a large number of incorrect words or grammar.
If you do the above, you will get a very bad reputation, and the hacker has a good memory. What you do in the most period will make you be accepted by other hackers after many years.
The question of using Kana is worth pondering. hiding identities is a child's practice. It is also a feature of cracker, warez d00dz, and other lower-level creatures. hackers will not do these things. They are proud of their own creations and actions, so they love to use them.TrueName. Therefore, if you use a pseudonym now, please give up immediately. In the hacker community, only the people who use the pseudonym will be treated as losers.
Other resources
Peter seebach maintains a good hacker FAQ for those who do not know how to handle the hacker. If the above hyperlink does not respond, you can search for the excite finder.
Loginataka provides information about the training and attitude of UNIX hackers.
I also wrote a brief web page about the history of the hacker community.
I also wrote an article titled the cathedral and the bazaar to explain the culture of Linux and open code. I will explain this question directly in my continued Article homesteading the noosphere.
Frequently Asked Questions: Will you teach me how to become a hacker?
Since I wrote this webpage, I have received the above requirements every week (sometimes several times a day). Unfortunately, I have no time or energy to teach people how to become a hacker. I spent 110% of my time on hacking activities.
Even if I have time, hackers are a kind of attitude and skill. You need to learn from yourself. you will find that hackers are willing to provide assistance, but if you keep asking for assistance like a baby, they will not respect you.
Therefore, you should first learn some basic knowledge, show that you are trying, and you have the ability to learn by yourself, and then discuss special problems with hackers.
How do I start?
It is best to discuss with lug (Linux User Group) first. you can find these groups on the LDP general Linux information page. Many times you can find a group close to you, most of which are provided by the university. lug members may provide you with a set of Linux and teach you how to install and start.
Will you teach me how to crack the system or how to crack the system?
I won't. Anyone who has read this FAQ and is still asking this question is too stupid and cannot teach (even if I have time to teach) any of these emails will be ignored or answered in a rough tone
My system has just been cracked. Will you help me prevent further attacks?
No. every time I receive such requirements, I use a Windows operating system. basically, it is impossible to effectively prevent Windows operating systems from being cracked, because this operating system has too many program and structure defects, just like using a sieve to drag the ship. this problem can be solved only by switching to Linux and other operating systems with real security.
Where can I communicate with real hackers?
It is best to contact a discussion group on Unix or Linux in your region and participate in the discussion (you can find the hyperlink on the LDP webpage)
I once said that I could not find a real hacker in IRC (online instant discussion group), but I found that the situation has changed. (At present, some real-time hackers also appear in online discussion groups such as Gimp and Perl .)
Can you introduce some useful books about hacking?
You can check out the Linux reading list howto maintained by yourself. loginataka also has relevant information.
What programming language should I learn first?
If you do not understand HTML, you should first learn it. There are manyNot goodThere are few good HTML books. My favorite HTML: the definitive guide.
However, HTML is not a complete programming language. when you are prepared to start programming, I suggest you learn python. many people may have suggested learning Perl, but Perl is actually used by more people than python. but for beginners, Perl is hard to learn. and (I think) Perl is not as well designed as Python. there is a lot of Python Information on the Internet for beginners.
C language is very important, but it is more difficult to learn than Python and Perl. Do not start with it.
For Windows operating system users, pleaseDo not just learnVisual Basic. It will make you get bad programming habits and cannot be used on different operating system platforms. Try not to use it.
Q: Can Anyone who writes open programs make money?
It seems that no □until now, the open program industry is creating jobs rather than reducing job opportunities. if you successfully write a program that is economically positive, the programmer, whether it is open or not, can also get a salary. in addition, no matter how many open programs there are, there are more new and customized applications. I have a more detailed explanation on the Open Source Page.
Q: How do I get started? Where can I enjoy free Linux?
There are hyperlinks in other parts of the web page to take you to a place where you can get free UNIX. To become a hacker, you need to be proactive, spontaneous, and self-taught. Start now ....
Eric S. Raymond's e-mail esr@snark.thyrsus.com