Thyrsus Enterprises
Copyright © 2001 Eric S. Raymond
Original English: How To Become A Hacker
Translation: Miquel Vidal ,
from a previous version by César Ballardini.
Table of Contents
Why is this document?
What is a hacker?
The hacker attitude
1. The world is full of fascinating problems waiting to be solved
Two. No problem would be solved twice
Three. Boredom and drudgery are evil
April. Freedom is good
May. Attitude is no substitute for competence
Basic Skills for hacking
1. Learn to program
Two. Get one of the free Unixes and learn to use and operate it
Three. Learn how to use the Web and HTML programming
April. If you do not have functional English, learn
Status in the Hacker Culture
1. Programming software free
Two. Help test and debug software free
Three. Post useful information
April. Help keep the infrastructure working
May. Serve the hacker culture itself
Connecting hacker / nerd
Style Matters
Other sources of information
FAQ
Why is this document?
As editor of the Jargon File (the «Jargon File hacker») and author of some well-known documents of the same type, I often get emails from enthusiastic novices Network asking, «How I can learn to be a skilled hacker?» Sad to say that there seems no web or FAQ document addressing this vital issue, so here goes mine.
If you’re reading this document offline, the original online version can be found at http://www.catb.org/ ~ esr / faqs / hacker-howto.html.
Note: There is a list of Frequently Asked Questions at the end of this document. Please read it before -2 times-email me with questions about this document.
There available numerous translations of this document: Bulgarian, Catalan, Chinese (Simplified), Chinese (Traditional), Danish, Dutch, French, German, Hebrew, Hungarian, Indonesian, Japanese, Italian, Korean, Portuguese (Brazilian), Portuguese (European) , Russian, and Swedish. Please note that the content of this document changes occasionally, such translations may be outdated to varying degrees.
What is a hacker?
The Jargon File contains a bunch of definitions of the term ‘hacker’, most adeptness to technical and pleasure to solve problems beyond the limits. To learn how to become a hacker, well, just 2 points are really relevant.
There is a community, a shared culture, of expert programmers and networking wizards, whose history goes back decades to the days of the first time-sharing minicomputers and the earliest ARPAnet experiments. The members of this culture originated the term ‘hacker’. Hackers built the Internet. Hackers made the Unix operating system it is today. Hackers do go Usenet. Hackers operated the WWW. If you are part of this culture, if you have contributed to it and other people know who you are and call you a hacker, then you’re a hacker.
The hacker mentality is not confined to this software culture. There are people who apply the hacker attitude to other things, like electronics or music-in fact, you can find it in the highest levels of any science or art. Software hackers recognize these kindred spirits elsewhere and may call them ‘hackers’ too, and some claim that the hacker nature is really independent of the particular medium in which the hacker works. However, in the remainder of this document we will focus on the skills and attitudes of software hackers, and the traditions of the shared culture that originated the term ‘hacker’.
There is another group of people who call themselves hackers, but are not. These are people (usually male teenagers) having fun illegally breaking into computers and doing «phreaking» in the phone system. Real hackers have a name for those people: «crackers» and want no part of them. Real hackers say that most crackers are lazy, irresponsible, and not very bright, and based on its review to be able to break security does not make one a hacker, in the same way to be able to start a car with a bridge in the key does not make him automotive engineer. Unfortunately, many journalists and writers mistakenly use the word ‘hacker’ to describe crackers, this causes huge irritation to the real hackers.
The basic difference is this: hackers build things, crackers break them.
If you want to be a hacker, keep reading. If you want to be a cracker, go read the alt.2600 live and ready to withstand the harsh reality when you discover you’re not as smart as you think. And that’s all I’ll say about crackers.
The hacker attitude
Hackers solve problems and build things, and they believe in freedom and voluntary mutual help. To be accepted as a hacker, you have to behave as if you had this attitude in you. And to behave as though you have this attitude, you will truly believe that attitude.
But if you think of cultivating hacker attitudes as just a way to gain acceptance in the culture, you’re wrong. Becoming the kind of person who believes these things is important for you, to help you learn and stay motivated. As with all creative arts, the most effective way to become a master is to imitate the mind of the teachers-not just intellectually, but also emotionally.
Or as the following modern Zen poem says:
To follow the path:
look at the teacher,
follows the master,
walking with the teacher,
looking through teacher
become the master.
So if you want to be a hacker, repeat the following until you believe what you’re saying:
1. The world is full of fascinating problems waiting to be solved
It’s fun to be a hacker, but it’s the kind of fun that requires much effort. The effort takes motivation. The winners athletes get their motivation from a kind of physical pleasure from working your body, to force themselves past their own physical limits. Similarly, to be a hacker you have to feel a thrill of primitive type when solving problems, you sharpen your skills, and exercising your intelligence.
If you’re not the kind of person that you feel inclined to these things naturally, you need to be able to experience to become a hacker. Otherwise, you will find your energy to «hack» you will be exhausted by other distractions like sex, money or social approval.
(Also you should develop some sort of faith in your own ability to learn-the belief that even though you may not know all you need to solve a problem, if you take part of it and learn from there, you’ll learn enough to solve the next part, and so, until you have fully resolved.)
Two. No problem would be solved twice
Creative brains are a valuable and limited resource. Should not be wasted reinventing the wheel when there are so many fascinating new problems waiting out there.
To behave like a hacker, you must believe that the time to think about using other hackers is precious-so much that it’s almost a moral duty for you to share information, solve problems and then exposing the solution so that other hackers can solve new problems instead of dealing with old perpetually.
(You need not think you’re obligated to give all your creative product, even those hackers that do are the ones that get most respect from other hackers.’s Consistent with the values of a hacker sold enough to pay for food, rent and computers.’s also good to use these hacking skills to support a family or even get rich, as long as do not forget your loyalty to your art and your fellow hackers while you do it.)
Three. Boredom and drudgery are evil
Hackers (and creative people in general) should never be subjected to stupidly repetitive work, because when this happens it means they are not doing what only they can do: solve new problems. This waste of talent hurts everyone. Therefore, routine, repetitive and boring tasks are not only unpleasant, but intrinsically evil.
To behave like a hacker, you have to believe this enough to automate routine tasks all that is possible, not only for yourself, but for the benefit of everyone else (especially other hackers).
(There is one apparent exception to this rule. Hackers sometimes do things that may seem repetitive or boring to an observer, but an exercise to achieve mental clarity or to acquire some skill or get some kind of experience that could not be achieved in other mode. But this is an election-any thinking person should ever be forced into a situation that they get bored.)
April. Freedom is good
Hackers are naturally anti-authoritarian. Anyone who can give you orders can force you to stop you solve that problem is fascinating-and, given the way authoritarian minds work, will find some appallingly stupid reason to do so. So the authoritarian attitude has to be fought wherever you find it’s because if left to suffocate you, both you and other hackers.
(This is not the same as fighting all authority. Children need guidance and criminals restrictions. A hacker may agree to accept some kinds of authority in order to get something he wants more than the time spent on follow orders. But this is a limited pact, conscious,. kind of authoritarian submission that want is not on offer)
Authoritarians thrive on censorship and secrecy. And they distrust voluntary cooperation and information-sharing cooperation only pleases them under their control. So to behave like a hacker, you have to develop an instinctive hostility to censorship, secrecy, and the use of force or fraud to subdue responsible adults. And you must be prepared to act on consencuencia.
May. Attitude is no substitute for competence
To be a hacker, you have to develop some of these attitudes. But having the attitude not only transform you into hacker, as I can not transform into a champion athlete or a rock star. To transform into hacker need intelligence, practice, dedication and hard work.
Therefore, you must learn to distrust attitude and respect competence in all its forms. A hacker likes to waste any time with those who adopt the pose of hacker but revere competition-especially the hacking competition, but competition in any field is good. Especially good is the competition in demanding skills that few people master, and is the best competition in demanding skills that require mental alertness, skill and concentration.
If you respect the competition, you’ll enjoy developing it in yourself, hard work and dedication will become a kind of intense play, and not a routine. That attitude is vital to becoming a hacker.
Basic Skills for hacking
The hacker attitude is vital, but even more so are the skills. Attitude is no substitute for competence, and there is a certain set of basic tools that you must master before any hacker dream with the name.
This toolkit changes slowly over time as technology creates new skills and makes old ones obsolete. For example, the schedule included in machine language, and did not talk about HTML until recently. But by late 1996, it is clear that you must include the following:
1. Learn to program
This is, of course, the fundamental skill of the attacker. If you do not know any programming language, I recommend starting with Python. It is clean, well documented, and relatively easy for novices. Despite being a good first language, it is not a toy, it is very powerful, flexible and well suited to large projects. I have written a detailed analysis of Python. There are good tutorials available on the website of Python.
Java is also a good language to start programming. It’s harder than Python, but produces faster code than Python. I think it’s a good second language to learn.
But do not think you can be a hacker, a programmer even if you only know one language, you must learn how to think about programming problems in a general, independent of any language. To be a real hacker, you get to the precise point at which you learn a new language in days by relating what’s in the manual to what you already know before. This means you should learn several very different languages together.
If you seriously want to get into programming, you have to learn C, based on Unix. C + + is very similar to C, if you know one, learning the other will not be difficult for you. However, none of them is good to learn programming. And today, the more you can avoid programming in C the more productive you will be.
C is very efficient, and works well with the resources of the machine. Unfortunately, C gets its efficiency based much low-level management of resources (like memory) by hand. All the low-level programming is very complex and prone to errors, and you have to spend a lot of time debugging the programs. With today’s machines, so powerful, so this is no longer necessary, it is smarter to use a language that uses the machine time less efficiently, but instead use your time more efficiently. That is, Python.
Other languages of particular importance to hackers are Perl and LISP. Perl is worth learning for practical reasons: it is overwhelmingly the used by dynamic web pages and system administration, so even if you’ve never written in Perl, you should learn to read. Many people use Perl in the way I suggest using Python, to avoid C programming on jobs that do not require the efficiency of C. You’ll need to be able to understand.
LISP is worth learning for a different reason – the profound and enlightening experience that you get when you succeed you will finally be better programmer for the rest of your days, even if you do not use LISP lot. (You can easily get some first experience with LISP writing and modifying editing modes Emacs editor.)
The best thing today is to learn these five (Python, Java, C / C + +, Perl and LISP). Besides being these the most important languages in the hacking, represent very different ways of approaching programming, and each will educate you in different ways.
I can not give complete instructions in this document you can learn how to program-is a complex skill. But I can come on the books and courses will not do (many, maybe most of the best hackers are self-taught). You can learn language features-parts-book knowledge, but the true knowledge you acquire in real life by applying what you know. What we serve is a) reading code and b) writing code.
Learning programming is like learning to write good natural language. The best way to learn is to read some of the things written by the masters of style, then write some things yourself, read a lot more, write some more … and repeat until your writing begins to show the kind of strength and economy you appreciate in your models.
Earlier it was difficult to find good quality code to read, because there were few programs of some magnitude in source code so that novice hackers could get his hands. This situation has changed dramatically: open source software, free programming tools and free operating systems (all done by hackers) are now widely available. Which brings me to our next topic elegantly …
Two. Get one of the free Unixes and learn to use and operate it
I assume you have a personal computer or you can access one (these kids today find it so easy to get it … :-)). The very most important step any newbie can give in the way of acquiring hacker skills is to get a copy of Linux or one of the other free BSD Unices, install it on a personal machine and make it work.
Yes, it is true that there are other operating systems in the world besides Unix. But they can only be found in binary format-no you can not read the code or modify it. If you’re trying to learn to hack on a DOS machine, Windows or MacOS you will feel as if you try to learn to dance with the body casting.
Under OS / X is possible, but only part of the system is open-source code is like you’re hitting a wall of several layers of cement, and other have to be careful not to develop the bad habit of relying on proprietary code Apple. If you concentrate on Unix under the hood, you can learn more useful things.
Unix is the operating system of the Internet. While you can learn to use the Internet without knowing Unix, you can never be an Internet hacker without knowing. For this reason, the hacker culture today is very focused on Unix. (This was not always so, and even dislikes the situation to some of the most experienced hackers, but the symbiosis between Unix and the Internet is so strong that even the power of Microsoft seems unable to make a dent.)
So with a Unix-personally I like Linux, but there are other (and yes, you can run Linux and DOS / Windows on the same machine). I learn it. Make it work. Métele hand, go for it. Contact him via Internet. Read the code. Modify it. The best programming tools (including C, Lisp and Perl) than any Microsoft operating system could not even dream of, plus you’ll have fun and find yourself immersed in a wealth of knowledge such that you never imagined that system includes until at one point, looking back, you will realize that you are already a consummate master hacker.
To learn more about learning Unix, see The Loginataka.
If you want to get your hands on Linux, take a look at where I can get Linux.
You can find help and resources http://www.bsd.org BSD Unix.
I have written about the basics of Unix and the Internet.
(. Note: I recommend installing Linux or BSD or alone if you are new to Linux, is a group of local Linux users and ask for help, or contact him by LISC maintains Open Projects IRC Network where you can get help..)
Three. Learn how to use the Web and HTML programming
Most of the things the hacker culture has built work out of sight of the general public, helping run factories, offices and universities, and lack of an obvious impact on the lives of those who are not hackers. The Web is the one big exception, and it is so huge shiny hacker toy that even politicians admit is changing the world. For this reason alone (and there are plenty of other equally good), you must learn to work on the Web.
I’m not referring to learning to drive a browser (anyone can do that), but you must learn how to write HTML, the markup language of the Web. If you do not know how to program, learning that involves writing HTML will teach you some mental habits that will then help with programming. So do yourself a personal page. Try XHTML, which is lighter than classic HTML. (There are good beginner tutorials on the Web, here’s one.)
But do not go thinking that having a personal page’re closer to being a hacker. The Web is full of home pages. Most of them are banal, without content-trash trash very showy, but rubbish at the end (if you want to know more about this topic, see The HTML Hell Page in).
To be worthwhile, your page must have content-should be interesting and / or useful to other hackers. And this brings us to the next topic …
April. If you do not have functional English, learn
As an American and native English speaker, he was reluctant to suggest this, as it was interpreted as a kind of cultural imperialism. But native speakers of other languages have urged me to point out that English is the working language in the hacker culture and the Internet, and you need to know to function in the hacker community.
This is very true. Way back around 1991, I learned that many hackers who have English as a second language I used in technical discussions even when they shared their native language, I was told that English has a richer than any other language and simply technical vocabulary so It was better tool for the job. For similar reasons, translations of technical books originally written in English are often unsatisfactory with (if you do).
Linus Torvalds, a Finn, comments his code in English (it apparently never occurred to him to do otherwise). His fluency in English has been an important factor in their ability to recruit a worldwide community of Linux developers. And this brings us to the next topic …
Status in the Hacker Culture
Similar to many other cultures without monetary economy way the hackerism is based on reputation. You’re trying to solve interesting problems, but how interesting and good is to find solutions is something that only your equal or superior technically be able to judge.
Accordingly, when you play the game hacker, you learn to puntuarte mainly depending on what other hackers think about your skills (this is the reason why you can not be a real hacker until other hackers will denominate so consistently). This fact is obscured by the image of hacking as solitary work, also by a hacker cultural taboo (now declining, but still strong) that prevents the ego or external validation as elements involved in one’s motivation is supported.
Specifically, hackerism is what anthropologists call a gift culture. You gain status and reputation not by dominating other people, nor by being beautiful / a, nor by having things other people want, but rather by giving things. Specifically, by donating your time, your creativity, and the results of your skill.
There are basically five kinds of things you can do to get respect from hackers:
1. Writing open source software
What (most central and most traditional) first is to write programs that other hackers opinion that are fun or useful, and donate supplies to the hacker culture program to be used.
(We used to call free software but this confused too many people who were not sure what was supposed to mean free [in English, the term free is polysemic and can mean «free» or «free.» In Castilian such ambiguity is given so the term «free software» is perfectly adequate -. NT] Most of us, at least 2:1 ratio according to the analysis of web content, software now prefer the term «open source «[In Castilian, however, is usually using» free software «, but in this version we have respected, of course, the change in terminology from Eric, which has replaced» free software «for open source in its documents, and we have translated as «open source» – NT]).
The most revered demigods hackerism are people who have written large programs with large capacities to meet long-range needs, and donate, so that anyone can use.
Two. Help test and debug open-source software
Are also recognized those who purify errors open source software. In this imperfect world, inevitably spend most of our development time in the debugging phase. This is why the developers of open source software think that a good «beta-tester» (beta tester, someone who knows how to clearly describe the symptoms, which can correctly locate problems, tolerating errors a rushed delivery, and is willing to apply a few simple diagnostic routines) are worth their weight in gold. Even with a single tester of these, it can be made to the debugging process from being a long nightmare that leaves one exhausted to be just a healthy discomfort.
If you are new, try to find a program under development in which you are interested, and you become a beta tester good. There is a natural progression from helping test programs to helping debug them and then later helping modify them. You will learn a lot that way, and people will help you in the future.
Three. Post useful information
Another good thing you can do is to collect and filter useful and interesting information and build web pages or type FAQ («Frequently Asked Questions») documents and make them available to others.
People who hold the most important technical FAQ enjoyed almost as much respect as the authors of free software.
April. Help keep the infrastructure working
The hacker culture (and the engineering development of the Internet, for that matter) run on voluntary work. There is a lot of necessary but unglamorous work that must be done for this to continue marching-manage mailing lists, moderating forums, sites maintain large amounts of archived software, developing RFCs and other technical standards.
People who develop these activities has a lot of respect, because everybody knows these jobs are huge consumers of time and not as fun as messing with the code. By doing so demonstrate their dedication.
May. Serve the hacker culture itself
Finally, you can spread the hacker culture itself (for example, typing a text on how to become a hacker :-)). This is something that you will not be willing to do until you are well known in the atmosphere for any of the four things just described.
The hacker culture does not have leaders, exactly, but has cultural heroes, tribal elders and historians and spokespeople. When you’ve been in the trenches long enough, you can grow and transform into one of them. But beware: hackers distrust noisy ego in their tribal elders, so the visible search for that kind of fame is dangerous. Rather than work hard at it, is better placed in a position such that it falls on you, then you should behave modestly and gracefully with their status.
Connecting hacker / nerd
Contrary to popular myth, you do not have to be a nerd [literally «nerd», but in hacker jargon has taken ironically, losing the originally derogatory nuance, and ended up being used as a synonym for someone who cares about the important things and does not linger on trivia. – N. T.] to be hacker. Help, however, and many hackers are nerds. Being a social outcast, the nerd can stay focused on the really important things, like thinking and hacking.
For this reason, many hackers have adopted the «nerd» label and even use the term as a badge of geek pride unpleasant-it’s his way of declaring their independence from normal social expectations.
If you can you concentrate enough on hacking to be good at it, and enjoy personal life over, okay. It is much easier now than when I was a rookie in the seventies, the dominant culture sees more favorably to techno-nerds now. There is also a growing number of people who realize that hackers are often high-quality item for boyfriend / girlfriend / husband / wife.
If you are attracted by the hacker activity because you have no life, that’s fine too, at least you will not have trouble concentrating. Maybe later you can get a life like other people.
Style Matters
Again, to be a hacker, you have to develop the mindset of the hacker. There are some things you can do when you are without a computer, which can help you. These things are no substitute for the activity of hacking (nothing is) but many hackers are performed, and feel that in some primitive way connected with the essence of hacking activity.
Learn to write correctly in your language. Although there is a stereotype that programmers are not able to write, a surprising number of hackers (including the best I know), are proficient writers.
Read science fiction. Go to meetings on science fiction (it’s a good way to meet hackers and proto-hackers).
Study Zen, and / or practicing martial arts. (The mental discipline is similar in both cases.)
Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn how to properly play a musical instrument or sing.
Develops penchant for double entenders and puns.
The more of these things you’ve done, are more likely to possess natural material for hacker. Why these particular things and not others is something that is not completely clear, but all are connected to a mixing of your left and right of your brain skills, what appears to be an important thing; hackers be able both logical as taking steps outside apparent logic of a problem at a given time reasoning.
Work as intensely as you play and play as intensely as you work. For true hackers, the diferiencia between «play», «work», «science» and «art» tend to disappear, or mixed in a high level of creativity. Also, do not give satisfied with having a narrow range of skills. Though most hackers self-describe as programmers, they tend to be more competent in various activities-management systems, web design and fix hardware problems are common. A hacker, on the one hand, systems administrator, on the other is also skilled at script programming and web design. Hackers do not do things by halves, if they get a full issue, tend to be very good at it.
Finally, a few things you should not do:
Do not use a silly name or grandiose user.
Do not get in «flamewars» (angry discussions) on Usenet (or anywhere else).
Do not call yourself «cyberpunk», and do not waste your time with anyone who does.
Do not post in forums or posting emails with lots of typos or incorrect grammatical constructions.
The only reputation you gain with these customs you is silly. Hackers have long memories-can take years until you accept again after these things.
The problem with virtual aliases deserves some explanation. Hide your identity behind a nickname is a childish and foolish behavior that is characteristic of crackers, warez d00dz, and other lower forms of life. Hackers do not do that, they are proud of what they do and they want it associated with their real names. So if you have a name for these, abandon. In the hacker culture will only serve to mark you as a loser.
Other sources of information
Peter Seebach maintains an excellent Hacker FAQ for managers who do not understand the deal with hackers. If the page does not answer Peter, the following Excite search you can find a copy.
I have also written A Brief History Of hackerdom [Spanish translation exists: Brief history of the hacker culture – N. T.].
I wrote an article The Cathedral and the Bazaar [Spanish translation exists: The Cathedral and the Bazaar – N. T.], which explains a lot about how the culture of Linux and open source software works. I have studied this issue more directly in its sequel, Homesteading the Noosphere [Spanish translation exists: Cultivating the noosphere – N. T.].
Rick Moen has written an excellent document on how to run a Linux user group.
Rick Moen and I have collaborated on another document on How To Ask Smart Questions [Spanish translation exists: How to ask questions intelligently – N. T.]. This will help you find roadside assistance.
If you need instructions on basics such as personal computers, Unix and the Internet, see The Unix and Internet Fundamentals HOWTO.
When you publish software or write patches, try to follow the guidelines in the Software Release Practice HOWTO.
FAQ
Q: Will you teach me to hack?
Q: How I can initiate me then?
Q: When should I start? Is it too late to learn?
Q: How long will it take me to learn to hack?
Q: Are Visual Basic or C # good languages to start?
Q: Can you help me to crack a system, or you teach me how?
Q: How I can get the password for the account of another person?
Q: How do I access / read / monitor someone else’s email?
Q: How I can steal channel op privileges on IRC?
Q: I’ve been cracked. Will you help me to protect myself from future attacks?
Q: I am having problems with my Windows, will you help me?
Q: Where I can find some real hackers to talk with them?
Q: Can you recommend useful books about hacking and related topics?
Q: I need to be good at math to become a hacker?
Q: What language should I learn first?
Q: What kind of hardware do I need?
P:. I want to contribute. Can you help me pick a problem to work on?
Q: Do I need to hate and beat Microsoft?
Q. But not preclude open source software living for programmers?
Q: How I can get started? Where I can get a free Unix?
http://biblioweb.sindominio.net/telematica/hacker-como.html