How to Become a Hacker. In computer security, a hacker is someone who focuses on security mechanisms of computer and network systems. How To Become A Hacker As editor of the Jargon File, I often get email requests from enthusiastic. The Jargon File contains a bunch of definitions of the term `hacker'. The Hacker Attitude. Hackers solve problems and build things, and they believe in freedom. Basic Hacking Skills.
How to become a hackerYou will want to learn human psychology, what makes people give up their password to strangers? How to get information out of people without knowing them? Can people be fooled into thinking a stranger works for the company just because he says so?
How To Become A Hacker Back to Eric's FAQs PageUp to Site Map$Date: 2000/03/24 21:01:28 $Translations into:How To Become A Hacker Why This Document?As editor of the,I often get email requests from enthusiastic network newbies asking(in effect) 'how can I learn to be a wizard hacker?' Oddly enoughthere don't seem to be any FAQs or Web documents that address thisvital question, so here's mine.If you are reading a snapshot of this document offline, the currentversion lives at.What Is A Hacker?The contains a bunchof definitions of the term `hacker', most having to do with technicaladeptness and a delight in solving problems and overcoming limits. Ifyou want to know how to become a hacker, though, only two arereally relevant.There is a community, a shared culture, of expert programmers andnetworking wizards that traces its history back through decades to thefirst time-sharing minicomputers and the earliest ARPAnet experiments.The members of this culture originated the term `hacker'. Hackersbuilt the Internet.
Hackers made the Unix operating system what it istoday. Hackers run Usenet. Hackers make the World Wide Web work.
Ifyou are part of this culture, if you have contributed to it and otherpeople in it know who you are and call you a hacker, you're ahacker.The hacker mind-set is not confined to this software-hacker culture.There are people who apply the hacker attitude to other things, likeelectronics or music - actually, you can find it at the highestlevels of any science or art. Software hackers recognize thesekindred spirits elsewhere and may call them 'hackers' too - and someclaim that the hacker nature is really independent of the particularmedium the hacker works in. But in the rest of this document we willfocus on the skills and attitudes of software hackers, and thetraditions of the shared culture that originated the term`hacker'.There is another group of people who loudly call themselves hackers,but aren't. These are people (mainly adolescent males) who get a kickout of breaking into computers and phreaking the phone system. Realhackers call these people `crackers' and want nothing to do with them.Real hackers mostly think crackers are lazy, irresponsible, and notvery bright, and object that being able to break security doesn't makeyou a hacker any more than being able to hotwire cars makes you anautomotive engineer.
Unfortunately, many journalists and writers havebeen fooled into using the word `hacker' to describe crackers; thisirritates real hackers no end.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 newsgroup and getready to do five to ten in the slammer after finding out you aren't assmart as you think you are. And that's all I'm going to say aboutcrackers.The Hacker AttitudeHackers solve problems and build things, and they believe in freedomand voluntary mutual help. To be accepted as a hacker, you have tobehave as though you have this kind of attitude yourself.
And tobehave as though you have the attitude, you have to really believe theattitude.But if you think of cultivating hacker attitudes as just a way to gainacceptance in the culture, you'll miss the point. Becoming the kindof person who believes these things is important for you -for helping you learn and keeping you motivated. As with all creativearts, the most effective way to become a master is to imitate themind-set of masters - not just intellectually but emotionally aswell.So, if you want to be a hacker, repeat the following things untilyou believe them:1. The world is full of fascinating problems waiting to be solved.Being a hacker is lots of fun, but it's a kind of fun that takes lotsof effort. The effort takes motivation.
Successful athletes gettheir motivation from a kind of physical delight in making theirbodies perform, in pushing themselves past their own physical limits.Similarly, to be a hacker you have to get a basic thrill from solvingproblems, sharpening your skills, and exercising your intelligence.If you aren't the kind of person that feels this way naturally, you'llneed to become one in order to make it as a hacker. Otherwise you'llfind your hacking energy is sapped by distractions like sex, money, andsocial approval.(You also have to develop a kind of faith in your own learningcapacity - a belief that even though you may not know all of what youneed to solve a problem, if you tackle just a piece of it and learnfrom that, you'll learn enough to solve the next piece - and so on,until you're done.)2.
Nobody should ever have to solve a problem twice.Creative brains are a valuable, limited resource. They shouldn't bewasted on re-inventing the wheel when there are so many fascinatingnew problems waiting out there.To behave like a hacker, you have to believe that the thinking time ofother hackers is precious - so much so that it's almost a moral dutyfor you to share information, solve problems and then give thesolutions away just so other hackers can solve newproblems instead of having to perpetually re-address old ones.(You don't have to believe that you're obligated to give allyour creative product away, though the hackers that do are the onesthat get most respect from other hackers. It's consistent with hackervalues to sell enough of it to keep you in food and rent andcomputers. It's consistent to use your hacking skills to support afamily or even get rich, as long as you don't forget you're a hackerwhile you're doing it.)3.
Boredom and drudgery are evil.Hackers (and creative people in general) should never be bored or haveto drudge at stupid repetitive work, because when this happens itmeans they aren't doing what only they can do - solve new problems.This wastefulness hurts everybody. Therefore boredom and drudgery arenot just unpleasant but actually evil.To behave like a hacker, you have to believe this enough to want toautomate away the boring bits as much as possible, not just foryourself but for everybody else (especially other hackers).(There is one apparent exception to this. Hackers will sometimes dothings that may seem repetitive or boring to an observer as amind-clearing exercise, or in order to acquire a skill or have someparticular kind of experience you can't have otherwise. But this isby choice - nobody who can think should ever be forced into boredom.)4. Freedom is good.Hackers are naturally anti-authoritarian.
Anyone who can give youorders can stop you from solving whatever problem you're beingfascinated by - and, given the way authoritarian minds work, willgenerally find some appallingly stupid reason to do so. So theauthoritarian attitude has to be fought wherever you find it, lestit smother you and other hackers.(This isn't the same as fighting all authority. Children need to beguided and criminals restrained. A hacker may agree to accept somekinds of authority in order to get something he wants more than thetime he spends following orders. But that's a limited, consciousbargain; the kind of personal surrender authoritarians want is not onoffer.)Authoritarians thrive on censorship and secrecy. And they distrustvoluntary cooperation and information-sharing - they only like`cooperation' that they control.
So to behave like a hacker, you have todevelop an instinctive hostility to censorship, secrecy, and the useof force or deception to compel responsible adults. And you have tobe willing to act on that belief.5. Attitude is no substitute for competence.To be a hacker, you have to develop some of these attitudes. Butcopping an attitude alone won't make you a hacker, any more than itwill make you a champion athlete or a rock star. Becoming a hackerwill take intelligence, practice, dedication, and hard work.Therefore, you have to learn to distrust attitude and respectcompetence of every kind. Hackers won't let posers waste their time,but they worship competence - especially competence at hacking, butcompetence at anything is good.
Competence at demanding skills thatfew can master is especially good, and competence at demanding skillsthat involve mental acuteness, craft, and concentration is best.If you revere competence, you'll enjoy developing it in yourself -the hard work and dedication will become a kind of intense playrather than drudgery. And that's vital to becoming a hacker.Basic Hacking SkillsThe hacker attitude is vital, but skills are even more vital.Attitude is no substitute for competence, and there's a certain basictoolkit of skills which you have to have before any hacker will dreamof calling you one.This toolkit changes slowly over time as technology creates new skillsand makes old ones obsolete. For example, it used to include programmingin machine language, and didn't until recently involve HTML. Butright now it pretty clearly includes the following:1.
Learn how to program.This, of course, is the fundamental hacking skill. If you don'tknow any computer languages, I recommend starting with. It is cleanly designed,well documented, and relatively kind to beginners. Despite beinga good first language, it is not just a toy; it is very powerfuland flexible and well suited for large projects.But be aware that you won't reach the skill level of a hacker or evenmerely a programmer if you only know one language - you need to learnhow to think about programming problems in a general way, independentof any one language. To be a real hacker, you need to have gotten tothe point where you can learn a new language in days by relatingwhat's in the manual to what you already know.
This means you shouldlearn several very different languages.If you get into serious programming, you will have to learn C, thecore language of Unix (though it's not the one to try learning firstthing). Other languages of particular importance to hackers includeand. Perl is worthlearning for practical reasons; it's very widely used for active webpages and system administration, so that even if you never write Perlyou should learn to read it. LISP is worth learning for the profoundenlightenment experience you will have when you finally get it; thatexperience will make you a better programmer for the rest of yourdays, even if you never actually use LISP itself a lot.It's best, actually, to learn all four of these (Python, C, Perl, andLISP). Besides being the most important hacking languages, theyrepresent very different approaches to programming, and each willeducate you in valuable ways.I can't give complete instructions on how to learn to program here -it's a complex skill. But I can tell you that books and courses won'tdo it (many, maybe most of the best hackers are self-taught).What will do it is (a) reading code and (b) writingcode.Learning to program is like learning to write good natural language.The best way to do it is to read some stuff written by masters of theform, write some things yourself, read a lot more, write a littlemore, read a lot more, write some more. And repeat until yourwriting begins to develop the kind of strength and economy you see inyour models.Finding good code to read used to be hard, because there were fewlarge programs available in source for fledgeling hackers to read andtinker with.
This has changed dramatically; open-source software,programming tools, and operating systems (all built by hackers) arenow widely available. Which brings me neatly to our next topic.2.
Get one of the open-source Unixes and learn to use and run it.I'm assuming you have a personal computer or can get access toone (these kids today have it so easy:-)). The single mostimportant step any newbie can take towards acquiring hacker skillsis to get a copy of Linux or one of the BSD-Unixes, installit on a personal machine, and run it.Yes, there are other operating systems in the world besides Unix. Butthey're distributed in binary - you can't read the code, and youcan't modify it. Trying to learn to hack on a DOS or Windows machine orunder MacOS is like trying to learn to dance while wearing a bodycast.Besides, Unix is the operating system of the Internet. While you canlearn to use the Internet without knowing Unix, you can't be anInternet hacker without understanding Unix. For this reason, the hackerculture today is pretty strongly Unix-centered.
(This wasn't alwaystrue, and some old-time hackers still aren't happy about it, but thesymbiosis between Unix and the Internet has become strong enough thateven Microsoft's muscle doesn't seem able to seriously dent it.)So, bring up a Unix - I like Linux myself but there are other ways(and yes, you can run both Linux and DOS/Windows on the samemachine). Tinker with it. Talk to the Internetwith it. Read the code.
Modify the code. You'll get betterprogramming tools (including C, Lisp, Python, and Perl) than any Microsoftoperating system can dream of, you'll have fun, and you'll soak upmore knowledge than you realize you're learning until you look back onit as a master hacker.For more about learning Unix, see.To get your hands on a Linux, see the.You can find BSD Unix help and resources at.(Note: I don't really recommend installing either Linux or BSD as asolo project if you're a newbie.
For Linux, find a local Linux user'sgroup and ask for help; or contact the. LISC maintains whereyou can get help.)3. Learn how to use the World Wide Web and write HTML.Most of the things the hacker culture has built do their work out ofsight, helping run factories and offices and universities without anyobvious impact on how non-hackers live. The Web is the one bigexception, the huge shiny hacker toy that even politiciansadmit is changing the world. For this reason alone (and a lot ofother good ones as well) you need to learn how to work the Web.This doesn't just mean learning how to drive a browser (anyone can dothat), but learning how to write HTML, the Web's markup language.
Ifyou don't know how to program, writing HTML will teach you somemental habits that will help you learn. So build a home page.But just having a home page isn't anywhere near good enough to makeyou a hacker. The Web is full of home pages. Most of them arepointless, zero-content sludge - very snazzy-looking sludge, mindyou, but sludge all the same (for more on this see ).To be worthwhile, your page must have content - it must beinteresting and/or useful to other hackers. And that brings us to thenext topic.Status in the Hacker CultureLike most cultures without a money economy, hackerdom runs onreputation. You're trying to solve interesting problems, but howinteresting they are, and whether your solutions are really good, issomething that only your technical peers or superiors are normallyequipped to judge.Accordingly, when you play the hacker game, you learn to keep scoreprimarily by what other hackers think of your skill (this is why you aren'treally a hacker until other hackers consistently call you one).
This fact isobscured by the image of hacking as solitary work; also by a hacker-culturaltaboo (now gradually decaying but still potent) against admitting that egoor external validation are involved in one's motivation at all.Specifically, hackerdom is what anthropologists call a giftculture. You gain status and reputation in it not by dominatingother people, nor by being beautiful, nor by having things otherpeople want, but rather by giving things away.
Specifically, bygiving away your time, your creativity, and the results of yourskill.There are basically five kinds of things you can do to be respected byhackers:1. Write open-source software.The first (the most central and most traditional) is to write programsthat other hackers think are fun or useful, and give the programsources to the whole hacker culture to use.(We used to call these works ``free software', but this confused toomany people who weren't sure exactly what ``free' was supposed to mean.Many of us now prefer the term ``' software).Hackerdom's most revered demigods are people who have written large,capable programs that met a widespread need and given them away, sothat now everyone uses them.2. Help test and debug open-source softwareThey also serve who stand and debug open-source software. In this imperfectworld, we will inevitably spend most of our software development timein the debugging phase.
That's why any open-source author who'sthinking will tell you that good beta-testers (who know how todescribe symptoms clearly, localize problems well, can tolerate bugsin a quickie release, and are willing to apply a few simple diagnosticroutines) are worth their weight in rubies. Even one of these canmake the difference between a debugging phase that's a protracted,exhausting nightmare and one that's merely a salutary nuisance.If you're a newbie, try to find a program under development thatyou're interested in and be a good beta-tester. There's a naturalprogression from helping test programs to helping debug them tohelping modify them.
You'll learn a lot this way, and generategood karma with people who will help you later on.3. Publish useful information.Another good thing is to collect and filter useful and interesting informationinto Web pages or documents like FAQs (Frequently Asked Questionslists), and make those generally available.Maintainers of major technical FAQs get almost as much respect asopen-source authors.4. Help keep the infrastructure working.The hacker culture (and the engineering development of the Internet,for that matter) is run by volunteers. There's a lot of necessary butunglamorous work that needs done to keep it going - administeringmailing lists, moderating newsgroups, maintaining large softwarearchive sites, developing RFCs and other technical standards.People who do this sort of thing well get a lot of respect, becauseeverybody knows these jobs are huge time sinks and not as much fun asplaying with code. Doing them shows dedication.5. Serve the hacker culture itself.Finally, you can serve and propagate the culture itself (by, forexample, writing an accurate primer on how to become a hacker:-)).This is not something you'll be positioned to do until you've beenaround for while and become well-known for one of the first fourthings.The hacker culture doesn't have leaders, exactly, but it does haveculture heroes and tribal elders and historians and spokespeople.When you've been in the trenches long enough, you may grow into one ofthese. Beware: hackers distrust blatant ego in their tribal elders,so visibly reaching for this kind of fame is dangerous.
Rather thanstriving for it, you have to sort of position yourself so it drops inyour lap, and then be modest and gracious about your status.The Hacker/Nerd ConnectionContrary to popular myth, you don't have to be a nerd to be a hacker.It does help, however, and many hackers are in fact nerds. Being a socialoutcast helps you stay concentrated on the really important things, likethinking and hacking.For this reason, many hackers have adopted the label `nerd' and evenuse the harsher term `geek' as a badge of pride - it's a way ofdeclaring their independence from normal social expectations.
See forextensive discussion.If you can manage to concentrate enough on hacking to be good at itand still have a life, that's fine. This is a lot easier today thanit was when I was a newbie in the 1970s; mainstream culture is muchfriendlier to techno-nerds now.
There are even growing numbers ofpeople who realize that hackers are often high-quality lover andspouse material.If you're attracted to hacking because you don't have a life, that's OKtoo - at least you won't have trouble concentrating. Maybe you'llget one later.Points For StyleAgain, to be a hacker, you have to enter the hacker mindset. Thereare some things you can do when you're not at a computer that seem tohelp. They're not substitutes for hacking (nothing is) but manyhackers do them, and feel that they connect in some basic waywith the essence of hacking. Read science fiction.
Go to science fiction conventions(a good way to meet hackers and proto-hackers). Study Zen, and/or take up martial arts. (The mental disciplineseems similar in important ways.). Develop an analytical ear for music.
Learn to appreciate peculiarkinds of music. Learn to play some musical instrument well, orhow to sing. Develop your appreciation of puns and wordplay.
Learn to write your native language well. (A surprising number ofhackers, including all the best ones I know of, are able writers.)The more of these things you already do, the more likely it is that youare natural hacker material.