How To Become A Hacker

Eric Steven Raymond
Thyrsus Enterprises Why This Document? What Is a Hacker? The Hacker Attitude 1. The world is full of fascinating pro lems waiting to e sol!ed. ". #o pro lem should e!er ha!e to e sol!ed twice. $. %oredom and drudgery are e!il. &. 'reedom is good. (. Attitude is no su stitute for competence. %asic Hacking )kills 1. *earn how to program. ". +et one of the open,source -ni.es and learn to use and run it. $. *earn how to use the World Wide We and write HT/*. &. If you don0t ha!e functional English1 learn it. )tatus in the Hacker 2ulture 1. Write open,source software ". Help test and de ug open,source software $. 3u lish useful information &. Help keep the infrastructure working (. )er!e the hacker culture itself The Hacker4#erd 2onnection 3oints 'or )tyle 5ther 6esources 're7uently Asked 8uestions

Why This Document?
As editor of the 9argon 'ile and author of a few other well,known documents of similar nature1 I often get email re7uests from enthusiastic network new ies asking :in effect; <how can I learn to e a wi=ardly hacker?<. %ack in 1>>? I noticed that there didn0t seem to e any other 'A8s or we documents that addressed this !ital 7uestion1 so I started this one. A lot of hackers now consider it definiti!e1 and I suppose that means it is. )till1 I don0t claim to e the e.clusi!e authority on this topic@ if you don0t like what you read here1 write your own. If you are reading a snapshot of this document offline1 the current !ersion li!es at httpA44cat .org4Besr4fa7s4hacker,howto.html. #oteA there is a list of 're7uently Asked 8uestions at the end of this document. 3lease read theseCtwiceC efore mailing me any 7uestions a out this document.

1

#umerous translations of this document are a!aila leA Ara ic %ulgarian1 2atalan1 2hinese :)implified;1 Danish1 Dutch1 Estonian1 'arsi1 'innish1 +erman1 +reek He rew1 Italian 9apanese1 #orwegian1 3olish1 3ortuguese :%ra=ilian;1 6omanian 6ussian )panish1 Turkish1 and )wedish. #ote that since this document changes occasionally1 they may e out of date to !arying degrees. The fi!e,dots,in,nine,s7uares diagram that decorates this document is called a glider. It is a simple pattern with some surprising properties in a mathematical simulation called *ife that has fascinated hackers for many years. I think it makes a good !isual em lem for what hackers are like C a stract1 at first a it mysterious,seeming1 ut a gateway to a whole world with an intricate logic of its own. 6ead more a out the glider em lem here.

What Is a Hacker?
The 9argon 'ile contains a unch of definitions of the term DhackerE1 most ha!ing to do with technical adeptness and a delight in sol!ing pro lems and o!ercoming limits. If you want to know how to become a hacker1 though1 only two are really rele!ant. There is a community1 a shared culture1 of e.pert programmers and networking wi=ards that traces its history ack through decades to the first time,sharing minicomputers and the earliest A63Anet e.periments. The mem ers of this culture originated the term DhackerE. Hackers uilt the Internet. Hackers made the -ni. operating system what it is today. Hackers run -senet. Hackers make the World Wide We work. If you are part of this culture1 if you ha!e contri uted to it and other people in it know who you are and call you a hacker1 you0re a hacker. The hacker mind,set is not confined to this software,hacker culture. There are people who apply the hacker attitude to other things1 like electronics or music C actually1 you can find it at the highest le!els of any science or art. )oftware hackers recogni=e these kindred spirits elsewhere and may call them DhackersE too C and some claim that the hacker nature is really independent of the particular medium the hacker works in. %ut in the rest of this document we will focus on the skills and attitudes of software hackers1 and the traditions of the shared culture that originated the term DhackerE. There is another group of people who loudly call themsel!es hackers1 ut aren0t. These are people :mainly adolescent males; who get a kick out of reaking into computers and phreaking the phone system. 6eal hackers call these people DcrackersE and want nothing to do with them. 6eal hackers mostly think crackers are la=y1 irresponsi le1 and not !ery right1 and o Fect that eing a le to reak security doesn0t make you a hacker any more than eing a le to hotwire cars makes you an automoti!e engineer. -nfortunately1 many Fournalists and writers ha!e een fooled into using the word DhackerE to descri e crackers@ this irritates real hackers no end. The asic difference is thisA hackers uild things1 crackers reak them.

"

If you want to e a hacker1 keep reading. If you want to e a cracker1 go read the alt."?GG newsgroup and get ready to do fi!e to ten in the slammer after finding out you aren0t as smart as you think you are. And that0s all I0m going to say a out crackers.

The Hacker Attitude
1. The world is full of fascinating pro lems waiting to e sol!ed. ". #o pro lem should e!er ha!e to e sol!ed twice. $. %oredom and drudgery are e!il. &. 'reedom is good. (. Attitude is no su stitute for competence. Hackers sol!e pro lems and uild things1 and they elie!e in freedom and !oluntary mutual help. To e accepted as a hacker1 you ha!e to eha!e as though you ha!e this kind of attitude yourself. And to eha!e as though you ha!e the attitude1 you ha!e to really elie!e the attitude. %ut if you think of culti!ating hacker attitudes as Fust a way to gain acceptance in the culture1 you0ll miss the point. %ecoming the kind of person who elie!es these things is important for you C for helping you learn and keeping you moti!ated. As with all creati!e arts1 the most effecti!e way to ecome a master is to imitate the mind,set of masters C not Fust intellectually ut emotionally as well 5r1 as the following modern Hen poem has itA To follow the pathA look to the master1 follow the master1 walk with the master1 see through the master1 ecome the master. )o1 if you want to e a hacker1 repeat the following things until you elie!e themA

1. The world is full of fascinating problems waiting to be solved.
%eing a hacker is lots of fun1 ut it0s a kind of fun that takes lots of effort. The effort takes moti!ation. )uccessful athletes get their moti!ation from a kind of physical delight in making their odies perform1 in pushing themsel!es past their own physical limits. )imilarly1 to e a hacker you ha!e to get a asic thrill from sol!ing pro lems1 sharpening your skills1 and e.ercising your intelligence.

$

If you aren0t the kind of person that feels this way naturally1 you0ll need to ecome one in order to make it as a hacker. 5therwise you0ll find your hacking energy is sapped y distractions like se.1 money1 and social appro!al. :Iou also ha!e to de!elop a kind of faith in your own learning capacity C a elief that e!en though you may not know all of what you need to sol!e a pro lem1 if you tackle Fust a piece of it and learn from that1 you0ll learn enough to sol!e the ne.t piece C and so on1 until you0re done.;

2. No problem should ever have to be solved twice.
2reati!e rains are a !alua le1 limited resource. They shouldn0t e wasted on re,in!enting the wheel when there are so many fascinating new pro lems waiting out there. To eha!e like a hacker1 you ha!e to elie!e that the thinking time of other hackers is precious C so much so that it0s almost a moral duty for you to share information1 sol!e pro lems and then gi!e the solutions away Fust so other hackers can sol!e new pro lems instead of ha!ing to perpetually re,address old ones. #ote1 howe!er1 that <#o pro lem should e!er ha!e to e sol!ed twice.< does not imply that you ha!e to consider all e.isting solutions sacred1 or that there is only one right solution to any gi!en pro lem. 5ften1 we learn a lot a out the pro lem that we didn0t know efore y studying the first cut at a solution. It0s 5J1 and often necessary1 to decide that we can do etter. What0s not 5J is artificial technical1 legal1 or institutional arriers :like closed,source code; that pre!ent a good solution from eing re,used and force people to re,in!ent wheels. :Iou don0t ha!e to elie!e that you0re o ligated to gi!e all your creati!e product away1 though the hackers that do are the ones that get most respect from other hackers. It0s consistent with hacker !alues to sell enough of it to keep you in food and rent and computers. It0s fine to use your hacking skills to support a family or e!en get rich1 as long as you don0t forget your loyalty to your art and your fellow hackers while doing it.;

3. Boredom and drudgery are evil.
Hackers :and creati!e people in general; should ne!er e ored or ha!e to drudge at stupid repetiti!e work1 ecause when this happens it means they aren0t doing what only they can do C sol!e new pro lems. This wastefulness hurts e!ery ody. Therefore oredom and drudgery are not Fust unpleasant ut actually e!il. To eha!e like a hacker1 you ha!e to elie!e this enough to want to automate away the oring its as much as possi le1 not Fust for yourself ut for e!ery ody else :especially other hackers;. :There is one apparent e.ception to this. Hackers will sometimes do things that may seem repetiti!e or oring to an o ser!er as a mind,clearing e.ercise1 or in order to ac7uire a

&

skill or ha!e some particular kind of e.perience you can0t ha!e otherwise. %ut this is y choice C no ody who can think should e!er e forced into a situation that ores them.;

4. Freedom is good.
Hackers are naturally anti,authoritarian. Anyone who can gi!e you orders can stop you from sol!ing whate!er pro lem you0re eing fascinated y C and1 gi!en the way authoritarian minds work1 will generally find some appallingly stupid reason to do so. )o the authoritarian attitude has to e fought where!er you find it1 lest it smother you and other hackers. :This isn0t the same as fighting all authority. 2hildren need to e guided and criminals restrained. A hacker may agree to accept some kinds of authority in order to get something he wants more than the time he spends following orders. %ut that0s a limited1 conscious argain@ the kind of personal surrender authoritarians want is not on offer.; Authoritarians thri!e on censorship and secrecy. And they distrust !oluntary cooperation and information,sharing C they only like DcooperationE that they control. )o to eha!e like a hacker1 you ha!e to de!elop an instincti!e hostility to censorship1 secrecy1 and the use of force or deception to compel responsi le adults. And you ha!e to e willing to act on that elief.

5. Attitude is no substitute for competence.
To e a hacker1 you ha!e to de!elop some of these attitudes. %ut copping an attitude alone won0t make you a hacker1 any more than it will make you a champion athlete or a rock star. %ecoming a hacker will take intelligence1 practice1 dedication1 and hard work. Therefore1 you ha!e to learn to distrust attitude and respect competence of e!ery kind. Hackers won0t let posers waste their time1 ut they worship competence C especially competence at hacking1 ut competence at anything is !alued. 2ompetence at demanding skills that few can master is especially good1 and competence at demanding skills that in!ol!e mental acuteness1 craft1 and concentration is est. If you re!ere competence1 you0ll enFoy de!eloping it in yourself C the hard work and dedication will ecome a kind of intense play rather than drudgery. That attitude is !ital to ecoming a hacker.

Basic Hacking Skills
1. *earn how to program. ". +et one of the open,source -ni.es and learn to use and run it. $. *earn how to use the World Wide We and write HT/*. &. If you don0t ha!e functional English1 learn it.

(

The hacker attitude is !ital1 ut skills are e!en more !ital. Attitude is no su stitute for competence1 and there0s a certain asic toolkit of skills which you ha!e to ha!e efore any hacker will dream of calling you one. This toolkit changes slowly o!er time as technology creates new skills and makes old ones o solete. 'or e.ample1 it used to include programming in machine language1 and didn0t until recently in!ol!e HT/*. %ut right now it pretty clearly includes the followingA

1. Learn how to program.
This1 of course1 is the fundamental hacking skill. If you don0t know any computer languages1 I recommend starting with 3ython. It is cleanly designed1 well documented1 and relati!ely kind to eginners. Despite eing a good first language1 it is not Fust a toy@ it is !ery powerful and fle.i le and well suited for large proFects. I ha!e written a more detailed e!aluation of 3ython. +ood tutorials are a!aila le at the 3ython we site. I used to recommend 9a!a as a good language to learn early1 ut this criti7ue has changed my mind :search for KThe 3itfalls of 9a!a as a 'irst 3rogramming *anguageL within it;. A hacker cannot1 as they de!astatingly put it Kapproach pro lem,sol!ing like a plum er in a hardware storeL@ you ha!e to know what the components actually do. #ow I think it is pro a ly est to learn 2 and *isp first1 then 9a!a. If you get into serious programming1 you will ha!e to learn 21 the core language of -ni.. 2MM is !ery closely related to 2@ if you know one1 learning the other will not e difficult. #either language is a good one to try learning as your first1 howe!er. And1 actually1 the more you can a!oid programming in 2 the more producti!e you will e. 2 is !ery efficient1 and !ery sparing of your machine0s resources. -nfortunately1 2 gets that efficiency y re7uiring you to do a lot of low,le!el management of resources :like memory; y hand. All that low,le!el code is comple. and ug,prone1 and will soak up huge amounts of your time on de ugging. With today0s machines as powerful as they are1 this is usually a ad tradeoff C it0s smarter to use a language that uses the machine0s time less efficiently1 ut your time much more efficiently. Thus1 3ython. 5ther languages of particular importance to hackers include 3erl and *I)3. 3erl is worth learning for practical reasons@ it0s !ery widely used for acti!e we pages and system administration1 so that e!en if you ne!er write 3erl you should learn to read it. /any people use 3erl in the way I suggest you should use 3ython1 to a!oid 2 programming on Fo s that don0t re7uire 20s machine efficiency. Iou will need to e a le to understand their code. *I)3 is worth learning for a different reason C the profound enlightenment e.perience you will ha!e when you finally get it. That e.perience will make you a etter programmer for the rest of your days1 e!en if you ne!er actually use *I)3 itself a lot.

?

:Iou can get some eginning e.perience with *I)3 fairly easily y writing and modifying editing modes for the Emacs te.t editor1 or )cript,'u plugins for the +I/3.; It0s est1 actually1 to learn all fi!e of 3ython1 242MM1 9a!a1 3erl1 and *I)3. %esides eing the most important hacking languages1 they represent !ery different approaches to programming1 and each will educate you in !alua le ways. %ut e aware that you won0t reach the skill le!el of a hacker or e!en merely a programmer simply y accumulating languages C you need to learn how to think a out programming pro lems in a general way1 independent of any one language. To e a real hacker1 you need to get to the point where you can learn a new language in days y relating what0s in the manual to what you already know. This means you should learn se!eral !ery different languages. I can0t gi!e complete instructions on how to learn to program here C it0s a comple. skill. %ut I can tell you that ooks and courses won0t do it C many1 may e most of the est hackers are self,taught. Iou can learn language features C its of knowledge C from ooks1 ut the mind,set that makes that knowledge into li!ing skill can e learned only y practice and apprenticeship. What will do it is :a; reading code and : ; writing code. 3eter #or!ig1 who is one of +oogle0s top hackers and the co,author of the most widely used te.t ook on AI1 has written an e.cellent essay called Teach Iourself 3rogramming in Ten Iears. His <recipe for programming success< is worth careful attention. *earning to program is like learning to write good natural language. The est way to do it is to read some stuff written y masters of the form1 write some things yourself1 read a lot more1 write a little more1 read a lot more1 write some more ... and repeat until your writing egins to de!elop the kind of strength and economy you see in your models. 'inding good code to read used to e hard1 ecause there were few large programs a!aila le in source for fledgeling hackers to read and tinker with. This has changed dramatically@ open,source software1 programming tools1 and operating systems :all uilt y hackers; are now widely a!aila le. Which rings me neatly to our ne.t topic...

2. Get one of the open-source Unixes and learn to use and run it.
I0ll assume you ha!e a personal computer or can get access to one. :Take a moment to appreciate how much that means. The hacker culture originally e!ol!ed ack when computers were so e.pensi!e that indi!iduals could not own them.; The single most important step any new ie can take toward ac7uiring hacker skills is to get a copy of *inu. or one of the %)D,-ni.es or 5pen)olaris1 install it on a personal machine1 and run it. Ies1 there are other operating systems in the world esides -ni.. %ut they0re distri uted in inary C you can0t read the code1 and you can0t modify it. Trying to learn to hack on a

N

/icrosoft Windows machine or under any other closed,source system is like trying to learn to dance while wearing a ody cast. -nder /ac 5) O it0s possi le1 ut only part of the system is open source C you0re likely to hit a lot of walls1 and you ha!e to e careful not to de!elop the ad ha it of depending on Apple0s proprietary code. If you concentrate on the -ni. under the hood you can learn some useful things. -ni. is the operating system of the Internet. While you can learn to use the Internet without knowing -ni.1 you can0t e an Internet hacker without understanding -ni.. 'or this reason1 the hacker culture today is pretty strongly -ni.,centered. :This wasn0t always true1 and some old,time hackers still aren0t happy a out it1 ut the sym iosis etween -ni. and the Internet has ecome strong enough that e!en /icrosoft0s muscle doesn0t seem a le to seriously dent it.; )o1 ring up a -ni. C I like *inu. myself ut there are other ways :and yes1 you can run oth *inu. and /icrosoft Windows on the same machine;. *earn it. 6un it. Tinker with it. Talk to the Internet with it. 6ead the code. /odify the code. Iou0ll get etter programming tools :including 21 *I)31 3ython1 and 3erl; than any /icrosoft operating system can dream of hosting1 you0ll ha!e fun1 and you0ll soak up more knowledge than you reali=e you0re learning until you look ack on it as a master hacker. 'or more a out learning -ni.1 see The *oginataka. Iou might also want to ha!e a look at The Art 5f -ni. 3rogramming. To get your hands on a *inu.1 see the *inu. 5nlineP site@ you can download from there or : etter idea; find a local *inu. user group to help you with installation. During the first ten years of this H5WT50s life1 I reported that from a new user0s point of !iew1 all *inu. distri utions are almost e7ui!alent. %ut in "GG?,"GGN1 an actual est choice emergedA - untu. While other distros ha!e their own areas of strength1 - untu is far and away the most accessi le to *inu. new ies. Iou can find %)D -ni. help and resources at www. sd.org. A good way to dip your toes in the water is to oot up what *inu. fans call a li!e 2D1 a distri ution that runs entirely off a 2D without ha!ing to modify your hard disk. This will e slow1 ecause 2Ds are slow1 ut it0s a way to get a look at the possi ilities without ha!ing to do anything drastic. I ha!e written a primer on the asics of -ni. and the Internet. I used to recommend against installing either *inu. or %)D as a solo proFect if you0re a new ie. #owadays the installers ha!e gotten good enough that doing it entirely on your own is possi le e!en for a new ie. #e!ertheless1 I still recommend making contact with

Q

your local *inu. user0s group and asking for help. It can0t hurt1 and may smooth the process.

3. Learn how to use the World Wide Web and write HTML.
/ost of the things the hacker culture has uilt do their work out of sight1 helping run factories and offices and uni!ersities without any o !ious impact on how non,hackers li!e. The We is the one ig e.ception1 the huge shiny hacker toy that e!en politicians admit has changed the world. 'or this reason alone :and a lot of other good ones as well; you need to learn how to work the We . This doesn0t Fust mean learning how to dri!e a rowser :anyone can do that;1 ut learning how to write HT/*1 the We 0s markup language. If you don0t know how to program1 writing HT/* will teach you some mental ha its that will help you learn. )o uild a home page. Try to stick to OHT/*1 which is a cleaner language than classic HT/*. :There are good eginner tutorials on the We @ here0s one.; %ut Fust ha!ing a home page isn0t anywhere near good enough to make you a hacker. The We is full of home pages. /ost of them are pointless1 =ero,content sludge C !ery sna==y,looking sludge1 mind you1 ut sludge all the same :for more on this see The HT/* Hell 3age;.To e worthwhile1 your page must ha!e content C it must e interesting and4or useful to other hackers. And that rings us to the ne.t topic...

4. If you don't have functional English, learn it.
As an American and nati!e English,speaker myself1 I ha!e pre!iously een reluctant to suggest this1 lest it e taken as a sort of cultural imperialism. %ut se!eral nati!e speakers of other languages ha!e urged me to point out that English is the working language of the hacker culture and the Internet1 and that you will need to know it to function in the hacker community. %ack around 1>>1 I learned that many hackers who ha!e English as a second language use it in technical discussions e!en when they share a irth tongue@ it was reported to me at the time that English has a richer technical !oca ulary than any other language and is therefore simply a etter tool for the Fo . 'or similar reasons1 translations of technical ooks written in English are often unsatisfactory :when they get done at all;. *inus Tor!alds1 a 'inn1 comments his code in English :it apparently ne!er occurred to him to do otherwise;. His fluency in English has een an important factor in his a ility to recruit a worldwide community of de!elopers for *inu.. It0s an e.ample worth following. %eing a nati!e English,speaker does not guarantee that you ha!e language skills good enough to function as a hacker. If your writing is semi,literate1 ungrammatical1 and riddled with misspellings1 many hackers :including myself; will tend to ignore you. While sloppy writing does not in!aria ly mean sloppy thinking1 we0!e generally found

>

the correlation to e strong C and we ha!e no use for sloppy thinkers. If you can0t yet write competently1 learn to.

Status in the Hacker Culture
1. Write open,source software ". Help test and de ug open,source software $. 3u lish useful information &. Help keep the infrastructure working (. )er!e the hacker culture itself *ike most cultures without a money economy1 hackerdom runs on reputation. Iou0re trying to sol!e interesting pro lems1 ut how interesting they are1 and whether your solutions are really good1 is something that only your technical peers or superiors are normally e7uipped to Fudge. Accordingly1 when you play the hacker game1 you learn to keep score primarily y what other hackers think of your skill :this is why you aren0t really a hacker until other hackers consistently call you one;. This fact is o scured y the image of hacking as solitary work@ also y a hacker,cultural ta oo :gradually decaying since the late 1>>Gs ut still potent; against admitting that ego or e.ternal !alidation are in!ol!ed in one0s moti!ation at all. )pecifically1 hackerdom is what anthropologists call a gift culture. Iou gain status and reputation in it not y dominating other people1 nor y eing eautiful1 nor y ha!ing things other people want1 ut rather y gi!ing things away. )pecifically1 y gi!ing away your time1 your creati!ity1 and the results of your skill.There are asically fi!e kinds of things you can do to e respected y hackersA

1. Write open-source software
The first :the most central and most traditional; is to write programs that other hackers think are fun or useful1 and gi!e the program sources away to the whole hacker culture to use. :We used to call these works Kfree softwareL1 ut this confused too many people who weren0t sure e.actly what KfreeL was supposed to mean. /ost of us now prefer the term Kopen,sourceL software;. Hackerdom0s most re!ered demigods are people who ha!e written large1 capa le programs that met a widespread need and gi!en them away1 so that now e!eryone uses them.%ut there0s a it of a fine historical point here. While hackers ha!e always looked up to the open,source de!elopers among them as our community0s hardest core1 efore the mid,1>>Gs most hackers most of the time worked on closed source. This was still true when I wrote the first !ersion of this H5WT5 in 1>>?@ it took the mainstreaming of open,source software after 1>>N to change things. Today1 <the hacker community< and

1G

<open,source de!elopers< are two descriptions for what is essentially the same culture and population C ut it is worth remem ering that this was not always so.

2. Help test and debug open-source software
They also ser!e who stand and de ug open,source software. In this imperfect world1 we will ine!ita ly spend most of our software de!elopment time in the de ugging phase. That0s why any open,source author who0s thinking will tell you that good eta,testers :who know how to descri e symptoms clearly1 locali=e pro lems well1 can tolerate ugs in a 7uickie release1 and are willing to apply a few simple diagnostic routines; are worth their weight in ru ies. E!en one of these can make the difference etween a de ugging phase that0s a protracted1 e.hausting nightmare and one that0s merely a salutary nuisance. If you0re a new ie1 try to find a program under de!elopment that you0re interested in and e a good eta,tester. There0s a natural progression from helping test programs to helping de ug them to helping modify them. Iou0ll learn a lot this way1 and generate good karma with people who will help you later on.

3. Publish useful information
Another good thing is to collect and filter useful and interesting information into we pages or documents like 're7uently Asked 8uestions :'A8; lists1 and make those generally a!aila le./aintainers of maFor technical 'A8s get almost as much respect as open,source authors.

4. Help keep the infrastructure working
The hacker culture :and the engineering de!elopment of the Internet1 for that matter; is run y !olunteers. There0s a lot of necessary ut unglamorous work that needs done to keep it going C administering mailing lists1 moderating newsgroups1 maintaining large software archi!e sites1 de!eloping 6'2s and other technical standards. 3eople who do this sort of thing well get a lot of respect1 ecause e!ery ody knows these Fo s are huge time sinks and not as much fun as playing with code. Doing them shows dedication.

5. Serve the hacker culture itself
'inally1 you can ser!e and propagate the culture itself : y1 for e.ample1 writing an accurate primer on how to ecome a hacker A,;;. This is not something you0ll e positioned to do until you0!e een around for while and ecome well,known for one of the first four things. The hacker culture doesn0t ha!e leaders1 e.actly1 ut it does ha!e culture heroes and tri al elders and historians and spokespeople. When you0!e een in the trenches long enough1 you may grow into one of these. %ewareA hackers distrust latant ego in their tri al 11

elders1 so !isi ly reaching for this kind of fame is dangerous. 6ather than stri!ing for it1 you ha!e to sort of position yourself so it drops in your lap1 and then e modest and gracious a out your status.

The Hacker/Nerd Connection
2ontrary to popular myth1 you don0t ha!e to e a nerd to e a hacker. It does help1 howe!er1 and many hackers are in fact nerds. %eing something of a social outcast helps you stay concentrated on the really important things1 like thinking and hacking. 'or this reason1 many hackers ha!e adopted the la el DgeekE as a adge of pride C it0s a way of declaring their independence from normal social e.pectations :as well as a fondness for other things like science fiction and strategy games that often go with eing a hacker;. The term 0nerd0 used to e used this way ack in the 1>>Gs1 ack when 0nerd0 was a mild peForati!e and 0geek0 a rather harsher one@ sometime after "GGG they switched places1 at least in -.). popular culture1 and there is now e!en a significant geek,pride culture among people who aren0t techies. If you can manage to concentrate enough on hacking to e good at it and still ha!e a life1 that0s fine. This is a lot easier today than it was when I was a new ie in the 1>NGs@ mainstream culture is much friendlier to techno,nerds now. There are e!en growing num ers of people who reali=e that hackers are often high,7uality lo!er and spouse material. If you0re attracted to hacking ecause you don0t ha!e a life1 that0s 5J too C at least you won0t ha!e trou le concentrating. /ay e you0ll get a life later on.

Points For Style
Again1 to e a hacker1 you ha!e to enter the hacker mindset. There are some things you can do when you0re not at a computer that seem to help. They0re not su stitutes for hacking :nothing is; ut many hackers do them1 and feel that they connect in some asic way with the essence of hacking.

*earn to write your nati!e language well. Though it0s a common stereotype that programmers can0t write1 a surprising num er of hackers :including all the most accomplished ones I know of; are !ery a le writers. 6ead science fiction. +o to science fiction con!entions :a good way to meet hackers and proto,hackers;. Train in a martial,arts form. The kind of mental discipline re7uired for martial arts seems to e similar in important ways to what hackers do. The most popular forms among hackers are definitely Asian empty,hand arts such as Tae Jwon Do1 !arious forms of Jarate1 Jung 'u1 Aikido1 or 9u 9itsu. Western fencing and Asian sword arts also ha!e !isi le followings. In places where it0s legal1 pistol shooting

1"

has een rising in popularity since the late 1>>Gs. The most hackerly martial arts are those which emphasi=e mental discipline1 rela.ed awareness1 and control1 rather than raw strength1 athleticism1 or physical toughness.

)tudy an actual meditation discipline. The perennial fa!orite among hackers is Hen :importantly1 it is possi le to enefit from Hen without ac7uiring a religion or discarding one you already ha!e;. 5ther styles may work as well1 ut e careful to choose one that doesn0t re7uire you to elie!e cra=y things. De!elop an analytical ear for music. *earn to appreciate peculiar kinds of music. *earn to play some musical instrument well1 or how to sing. De!elop your appreciation of puns and wordplay.

The more of these things you already do1 the more likely it is that you are natural hacker material. Why these things in particular is not completely clear1 ut they0re connected with a mi. of left, and right, rain skills that seems to e important@ hackers need to e a le to oth reason logically and step outside the apparent logic of a pro lem at a moment0s notice. Work as intensely as you play and play as intensely as you work. 'or true hackers1 the oundaries etween <play<1 <work<1 <science< and <art< all tend to disappear1 or to merge into a high,le!el creati!e playfulness. Also1 don0t e content with a narrow range of skills. Though most hackers self,descri e as programmers1 they are !ery likely to e more than competent in se!eral related skills C system administration1 we design1 and 32 hardware trou leshooting are common ones. A hacker who0s a system administrator1 on the other hand1 is likely to e 7uite skilled at script programming and we design. Hackers don0t do things y hal!es@ if they in!est in a skill at all1 they tend to get !ery good at it. 'inally1 a few things not to do.
• • •

Don0t use a silly1 grandiose user ID or screen name. Don0t get in flame wars on -senet :or anywhere else;. Don0t call yourself a Dcy erpunkE1 and don0t waste your time on any ody who does. Don0t post or email writing that0s full of spelling errors and ad grammar.

The only reputation you0ll make doing any of these things is as a twit. Hackers ha!e long memories C it could take you years to li!e your early lunders down enough to e accepted. The pro lem with screen names or handles deser!es some amplification. 2oncealing your identity ehind a handle is a Fu!enile and silly eha!ior characteristic of crackers1 ware=

1$

dGGd=1 and other lower life forms. Hackers don0t do this@ they0re proud of what they do and want it associated with their real names. )o if you ha!e a handle1 drop it. In the hacker culture it will only mark you as a loser.

Other Resources
3aul +raham has written an essay called +reat Hackers1 and another on -ndergraduation1 in which he speaks much wisdom.3eter )ee ach maintains an e.cellent Hacker 'A8 for managers who don0t understand how to deal with hackers.There is a document called How To %e A 3rogrammer that is an e.cellent complement to this one. It has !alua le ad!ice not Fust a out coding and skillsets1 ut a out how to function on a programming team.I ha!e also written A Brief History Of Hackerdom. I ha!e written a paper1 The Cathedral and the Bazaar1 which e.plains a lot a out how the *inu. and open,source cultures work. I ha!e addressed this topic e!en more directly in its se7uel Homesteading the Noosphere. 6ick /oen has written an e.cellent document on how to run a *inu. user group. 6ick /oen and I ha!e colla orated on another document on How To Ask )mart 8uestions. This will help you seek assistance in a way that makes it more likely that you will actually get it. If you need instruction in the asics of how personal computers1 -ni.1 and the Internet work1 see The -ni. and Internet 'undamentals H5WT5. When you release software or write patches for software1 try to follow the guidelines in the )oftware 6elease 3ractice H5WT5. If you enFoyed the Hen poem1 you might also like 6ootless 6ootA The -ni. Joans of /aster 'oo.

Frequently Asked Questions
8A How do I tell if I am already a hacker? 8A Will you teach me how to hack? 8A How can I get started1 then? 8A When do you ha!e to start? Is it too late for me to learn? 8A How long will it take me to learn to hack? 8A Is Risual %asic a good language to start with? 8A Would you help me to crack a system1 or teach me how to crack? 8A How can I get the password for someone else0s account? 8A How can I reak into4read4monitor someone else0s email? 8A How can I steal channel op pri!ileges on I62? 8A I0!e een cracked. Will you help me fend off further attacks?

1&

8A I0m ha!ing pro lems with my Windows software. Will you help me? 8A Where can I find some real hackers to talk with? 8A 2an you recommend useful ooks a out hacking,related su Fects? 8A Do I need to e good at math to ecome a hacker? 8A What language should I learn first? 8A What kind of hardware do I need? 8A I want to contri ute. 2an you help me pick a pro lem to work on? 8A Do I need to hate and ash /icrosoft? 8A %ut won0t open,source software lea!e programmers una le to make a li!ing? 8A Where can I get a free -ni.? Q: How do I tell if I am already a hacker? Ask yourself the following three 7uestionsA A: • Do you speak code1 fluently? • Do you identify with the goals and !alues of the hacker community?

Has a well,esta lished mem er of the hacker community e!er called you a hacker?

If you can answer yes to all three of these 7uestions1 you are already a hacker. #o two alone are sufficient. The first test is a out skills. Iou pro a ly pass it if you ha!e the minimum technical skills descri ed earlier in this document. Iou low right through it if you ha!e had a su stantial amount of code accepted y an open,source de!elopment proFect. The second test is a out attitude. If the fi!e principles of the hacker mindset seemed o !ious to you1 more like a description of the way you already li!e than anything no!el1 you are already halfway to passing it. That0s the inward half@ the other1 outward half is the degree to which you identify with the hacker community0s long,term proFects. Here is an incomplete ut indicati!e list of some of those proFectsA Does it matter to you that *inu. impro!e and spread? Are you passionate a out software freedom? Hostile to monopolies? Do you act on the elief that computers can e instruments of empowerment that make the world a richer and more humane place? %ut a note of caution is in order here. The hacker community has some specific1 primarily defensi!e political interests C two of them are defending free,speech rights and fending off <intellectual,property< power gra s that would make open source illegal. )ome of those long,term proFects are ci!il,li erties organi=ations like the Electronic 'rontier 'oundation1 and the outward attitude properly includes support of them. %ut eyond that1 most hackers !iew attempts to systemati=e the hacker attitude into an e.plicit political program with suspicion@ we0!e learned1 the hard way1 that these attempts are di!isi!e and distracting. If someone tries to recruit you to march on

1(

your capitol in the name of the hacker attitude1 they0!e missed the point. The right response is pro a ly K)hut up and show them the code.L The third test has a tricky element of recursi!eness a out it. I o ser!ed in the section called KWhat Is a Hacker?L that eing a hacker is partly a matter of elonging to a particular su culture or social network with a shared history1 an inside and an outside. In the far past1 hackers were a much less cohesi!e and self,aware group than they are today. %ut the importance of the social,network aspect has increased o!er the last thirty years as the Internet has made connections with the core of the hacker su culture easier to de!elop and maintain. 5ne easy eha!ioral inde. of the change is that1 in this century1 we ha!e our own T,shirts. )ociologists1 who study networks like those of the hacker culture under the general ru ric of <in!isi le colleges<1 ha!e noted that one characteristic of such networks is that they ha!e gatekeepers C core mem ers with the social authority to endorse new mem ers into the network. %ecause the <in!isi le college< that is hacker culture is a loose and informal one1 the role of gatekeeper is informal too. %ut one thing that all hackers understand in their ones is that not e!ery hacker is a gatekeeper. +atekeepers ha!e to ha!e a certain degree of seniority and accomplishment efore they can estow the title. How much is hard to 7uantify1 ut e!ery hacker knows it when they see it. Q: Will you teach me how to hack? )ince first pu lishing this page1 I0!e gotten se!eral re7uests a week :often se!eral a A: day; from people to <teach me all a out hacking<. -nfortunately1 I don0t ha!e the time or energy to do this@ my own hacking proFects1 and working as an open,source ad!ocate1 take up 11GS of my time. E!en if I did1 hacking is an attitude and skill you asically ha!e to teach yourself. Iou0ll find that while real hackers want to help you1 they won0t respect you if you eg to e spoon,fed e!erything they know. *earn a few things first. )how that you0re trying1 that you0re capa le of learning on your own. Then go to the hackers you meet with specific 7uestions. If you do email a hacker asking for ad!ice1 here are two things to know up front. 'irst1 we0!e found that people who are la=y or careless in their writing are usually too la=y and careless in their thinking to make good hackers C so take care to spell correctly1 and use good grammar and punctuation1 otherwise you0ll pro a ly e ignored. )econdly1 don0t dare ask for a reply to an I)3 account that0s different from the account you0re sending from@ we find people who do that are usually thie!es using stolen accounts1 and we ha!e no interest in rewarding or assisting thie!ery. Q: How can I get started1 then? A: The est way for you to get started would pro a ly e to go to a *-+ :*inu. user 1?

group; meeting. Iou can find such groups on the *D3 +eneral *inu. Information 3age@ there is pro a ly one near you1 possi ly associated with a college or uni!ersity. *-+ mem ers will pro a ly gi!e you a *inu. if you ask1 and will certainly help you install one and get started. Q: When do you ha!e to start? Is it too late for me to learn? A: Any age at which you are moti!ated to start is a good age. /ost people seem to get interested etween ages 1( and "G1 ut I know of e.ceptions in oth directions. Q: How long will it take me to learn to hack? A: That depends on how talented you are and how hard you work at it. /ost people who try can ac7uire a respecta le skill set in eighteen months to two years1 if they concentrate. Don0t think it ends there1 though@ in hacking :as in many other fields; it takes a out ten years to achie!e mastery. And if you are a real hacker1 you will spend the rest of your life learning and perfecting your craft. Q: Is Risual %asic a good language to start with? If you0re asking this 7uestion1 it almost certainly means you0re thinking a out trying to A: hack under /icrosoft Windows. This is a ad idea in itself. When I compared trying to learn to hack under Windows to trying to learn to dance while wearing a ody cast1 I wasn0t kidding. Don0t go there. It0s ugly1 and it ne!er stops eing ugly. There is a specific pro lem with Risual %asic@ mainly that it0s not porta le. Though there is a prototype open,source implementations of Risual %asic1 the applica le E2/A standards don0t co!er more than a small set of its programming interfaces. 5n Windows most of its li rary support is proprietary to a single !endor :/icrosoft;@ if you aren0t extremely careful a out which features you use C more careful than any new ie is really capa le of eing C you0ll end up locked into only those platforms /icrosoft chooses to support. If you0re starting on a -ni.1 much etter languages with etter li raries are a!aila le. 3ython1 for e.ample. Also1 like other %asics1 Risual %asic is a poorly,designed language that will teach you ad programming ha its. #o1 don t ask me to descri e them in detail@ that e.planation would fill a ook. *earn a well,designed language instead. 5ne of those ad ha its is ecoming dependent on a single !endor0s li raries1 widgets1 and de!elopment tools. In general1 any language that isn0t fully supported under at least *inu. or one of the %)Ds1 and4or at least three different !endors0 operating systems1 is a poor one to learn to hack in. Q: Would you help me to crack a system1 or teach me how to crack?

1N

A: #o. Anyone who can still ask such a 7uestion after reading this 'A8 is too stupid to e educa le e!en if I had the time for tutoring. Any emailed re7uests of this kind that I get will e ignored or answered with e.treme rudeness. Q: How can I get the password for someone else0s account? A: This is cracking. +o away1 idiot. Q: How can I reak into4read4monitor someone else0s email? A: This is cracking. +et lost1 moron. Q: How can I steal channel op pri!ileges on I62? A: This is cracking. %egone1 cretin. Q: I0!e een cracked. Will you help me fend off further attacks? A: #o. E!ery time I0!e een asked this 7uestion so far1 it0s een from some poor sap running /icrosoft Windows. It is not possi le to effecti!ely secure Windows systems against crack attacks@ the code and architecture simply ha!e too many flaws1 which makes securing Windows like trying to ail out a oat with a sie!e. The only relia le pre!ention starts with switching to *inu. or some other operating system that is designed to at least e capa le of security. Q: I0m ha!ing pro lems with my Windows software. Will you help me? A: Ies. +o to a D5) prompt and type <format cA<. Any pro lems you are e.periencing will cease within a few minutes. Q: Where can I find some real hackers to talk with? The est way is to find a -ni. or *inu. user0s group local to you and go to their A: meetings :you can find links to se!eral lists of user groups on the *D3 site at i i lio;. :I used to say here that you wouldn0t find any real hackers on I621 ut I0m gi!en to understand this is changing. Apparently some real hacker communities1 attached to things like +I/3 and 3erl1 ha!e I62 channels now.; Q: 2an you recommend useful ooks a out hacking,related su Fects? I maintain a *inu. 6eading *ist H5WT5 that you may find helpful. The *oginataka A: may also e interesting. 'or an introduction to 3ython1 see the introductory materials on the 3ython site.

1Q

Q: Do I need to e good at math to ecome a hacker? #o. Hacking uses !ery little formal mathematics or arithmetic. In particular1 you won0t A: usually need trigonometry1 calculus or analysis :there are e.ceptions to this in a handful of specific application areas like $,D computer graphics;. Jnowing some formal logic and %oolean alge ra is good. )ome grounding in finite mathematics :including finite,set theory1 com inatorics1 and graph theory; can e helpful. /uch more importantlyA you need to e a le to think logically and follow chains of e.act reasoning1 the way mathematicians do. While the content of most mathematics won0t help you1 you will need the discipline and intelligence to handle mathematics. If you lack the intelligence1 there is little hope for you as a hacker@ if you lack the discipline1 you0d etter grow it. I think a good way to find out if you ha!e what it takes is to pick up a copy of 6aymond )mullyan0s ook !hat "s The Name Of This Book#. )mullyan0s playful logical conundrums are !ery much in the hacker spirit. %eing a le to sol!e them is a good sign@ en$oying sol!ing them is an e!en etter one. Q: What language should I learn first? OHT/* :the latest dialect of HT/*; if you don0t already know it. There are a lot of A: glossy1 hype,intensi!e bad HT/* ooks out there1 and distressingly few good ones. The one I like est is HT%&' The (efiniti)e *uide. %ut HT/* is not a full programming language. When you0re ready to start programming1 I would recommend starting with 3ython. Iou will hear a lot of people recommending 3erl1 and 3erl is still more popular than 3ython1 ut it0s harder to learn and :in my opinion; less well designed. 2 is really important1 ut it0s also much more difficult than either 3ython or 3erl. Don0t try to learn it first.Windows users1 do not settle for Risual %asic. It will teach you ad ha its1 and it0s not porta le off Windows. A!oid. Q: What kind of hardware do I need? It used to e that personal computers were rather underpowered and memory,poor1 A: enough so that they placed artificial limits on a hacker0s learning process. This stopped eing true in the mid,1>>Gs@ any machine from an Intel &Q?DO(G up is more than powerful enough for de!elopment work1 O1 and Internet communications1 and the smallest disks you can uy today are plenty ig enough. The important thing in choosing a machine on which to learn is whether its hardware is *inu.,compati le :or %)D,compati le1 should you choose to go that route;. Again1 this will e true for almost all modern machines. The only really sticky areas are modems and wireless cards@ some machines ha!e Windows,specific hardware that won0t work with *inu..There0s a 'A8 on hardware compati ility@ the latest !ersion is here. 1>

Q: I want to contri ute. 2an you help me pick a pro lem to work on? A: #o1 ecause I don0t know your talents or interests. Iou ha!e to e self,moti!ated or you won0t stick1 which is why ha!ing other people choose your direction almost ne!er works.Try this. Watch the proFect announcements scroll y on 'reshmeat for a few days. When you see one that makes you think <2oolP I0d like to work on thatP<1 Foin it. Q: Do I need to hate and ash /icrosoft? A: #o1 you don0t. #ot that /icrosoft isn0t loathsome1 ut there was a hacker culture long efore /icrosoft and there will still e one long after /icrosoft is history. Any energy you spend hating /icrosoft would e etter spent on lo!ing your craft. Write good code C that will ash /icrosoft 7uite sufficiently without polluting your karma. Q: %ut won0t open,source software lea!e programmers una le to make a li!ing? A: This seems unlikely C so far1 the open,source software industry seems to e creating Fo s rather than taking them away. If ha!ing a program written is a net economic gain o!er not ha!ing it written1 a programmer will get paid whether or not the program is going to e open,source after it0s done. And1 no matter how much <free< software gets written1 there always seems to e more demand for new and customi=ed applications. I0!e written more a out this at the 5pen )ource pages. Q: Where can I get a free -ni.? A: If you don0t ha!e a -ni. installed on your machine yet1 elsewhere on this page I include pointers to where to get the most commonly used free -ni.. To e a hacker you need moti!ation and initiati!e and the a ility to educate yourself. )tart now...

"G