You want to say that hackers are SBs, that's no fun ~ turn the article to you~
---What is a hacker?
There are many definitions of the term "hacker" in the Jargon File, most of which involve advanced programming skills, a strong desire to solve problems and overcome limitations. If you want to know how to become a hacker, well, there are only two things that matter. (attitude and skill)
There has long existed a community of expert programmers and network mavens in a ****-enjoyment culture that dates back decades to the days of the first time-sharing ****-enjoyment minicomputers and the earliest experiments with ARPAnet. Participants in this culture coined the word "hacker". Hackers built the Internet, hackers made the Unix operating system what it is today, and hackers built Usenet. Hackers built Usenet; hackers made the WWW work. If you're part of this culture, if you've contributed to it, and the rest of the community knows who you are and calls you a hacker, then you're a hacker.
Hacktivism is not limited to the software hacker culture. Some people approach other things like electronics and music with the same hacker attitude -- in fact, you can find it in any of the higher-level sciences and arts. Software hackers recognize these same kinds of people in other fields and call them hackers as well - some claim that hacking is actually independent of their field of work. In this article, however, we focus on the techniques and attitudes of software hackers, as well as on the ****enjoyable cultural tradition that coined the word "hacker".
There's another group of people who claim to be hackers when they're not. They are people (mostly adolescents) who deliberately sabotage computers and phone systems. Real hackers call these people "crackers" and don't care to be around them. Most real hackers think of crackers as lazy, irresponsible people who don't have much to offer. Being dedicated to destroying other people's security doesn't make you a hacker, just as being able to open a car with a piece of wire doesn't make you an automotive engineer. Unfortunately, many journalists and writers tend to mistake "hackers" for hackers; this practice angers real hackers.
The fundamental difference is that hackers build, and hackers destroy.
If you want to be a hacker, keep reading. If you want to be a hacker, go read alt.2600 newsgroups and go to jail 5 to 10 times when you realize you're not as smart as you think you are. That's all I have to say about hacking.
--Hacker's Attitude
Hackers solve problems, build things, believe in freedom and two-way help, all for one, one for all.
To be considered a hacker, your behavior must show that you already have this attitude. To act as if you have that attitude, you have to actually have that attitude. But if you want to be recognized in hacker culture by cultivating a hacker attitude, you're making a big mistake. Because becoming that kind of person with these qualities is important to yourself, helps you learn, and gives you a constant stream of energy. As with all creative arts, the most effective way to become a master is to imitate the spirit of the master -- not just intellectually, but emotionally.
So, if you want to be a hacker, repeat the following things until you believe them:
1 The world is full of fascinating problems to be solved
Being a hacker is a lot of fun, but it's fun that takes a lot of effort. These endeavors require motivation. Successful athletes draw motivation from being fit and pushing their limits. Likewise, to hack, you have to
have a fundamental desire to solve problems, hone your skills, and exercise your intellect. If you're not already one of those people and you want to hack, you need to try to become one. Otherwise you'll find that your hacker enthusiasm will be ruthlessly swallowed up by other temptations -- such as money, sex, and social vanity.
(Similarly you have to build confidence in your own ability to learn --- to believe that even though you don't know much about a problem, if you learn and test it out bit by bit, you'll eventually master it and solve it.)
2. A problem shouldn't be solved twice
Bright minds are a precious, finite resource. They shouldn't be wasted on things like reinventing the wheel when the world is full of other interesting problems to be solved. As a hacker, you have to believe that other hackers' thinking time is valuable -- so it's almost moral to **** enjoy the information, solve the problem and post the results for other hackers so that others can work on new problems instead of dealing with old ones over and over again.
(You don't have to think you have to publish your inventions, but the hackers who do are the ones who earn the most respect from everyone. Selling some money to support your family, buying a house, a car, a computer or even getting rich is also compatible with hacker values, as long as you don't forget that you're still a hacker.)
3. Boredom and tedium are evil
Hackers should never be bothered by stupid repetitive labor, because when that happens it means they're not doing what only they can do - solving new problems. Such waste hurts everyone. Thus, boring and tedious jobs are more than just uncomfortable; they are hugely criminal. To behave like a hacker, you have to fully believe in this and automate as much of the tedious work as possible, not only for yourself, but also for others (especially other hackers).
(There is one notable exception to this. Hackers sometimes do repetitive, boring work to take a "brain break", either to practice a skill, or to gain experience they wouldn't otherwise have. But it's his choice - people with brains shouldn't be forced to do boring work.)
4 Freedom is good
Hackers are naturally anti-authoritarian. Anyone who can bark orders at you will force you to stop solving problems that fascinate you, while, in the general line of authority, he'll usually give some extremely foolish reasons. Therefore, whenever and wherever any authority is, fight him to the end if he oppresses you or any other hacker.
(This is not to say that any authority is unnecessary. Children need to be supervised, and criminals need to be kept under guard. Hackers will agree to accept some form of authority if obeying orders to get something is more time-efficient than getting it some other way. But that's a limited, deliberate bargain; the kind of personal obedience that power wants isn't what you give, it's unconditional obedience.)
Power loves censorship and secrecy. They don't trust voluntary cooperation and information **** sharing -- they only like cooperation controlled by them. So to behave like a hacker, you have to have an instinctive aversion and hostility to censorship, secrecy, and the use of force or deception to oppress people.
5. Attitude is not a substitute for competence
To be a hacker, you have to develop these attitudes. But just having these attitudes doesn't make you a hacker, just as it doesn't make you an athlete or a rock star. Becoming a hacker takes intelligence, practice, dedication, and hard work.
So you must learn to distrust attitudes and respect a wide range of abilities. Hackers don't waste their time with people who are deliberately pretending to be hackers, but they do respect competence - especially the ability to be a hacker, though any competence is always good. It's especially good to have technical skills that few people can master, and it's best to have skills that involve brainpower, skill, and concentration.
If you honor competence, you'll enjoy improving your abilities - hard work and dedication will become a high form of entertainment rather than servitude. To be a hacker, this is very important.
---Basic Hacking Techniques
Hacking attitude is important, but skill is even more important. Attitude is no substitute for skill, and there is a basic set of techniques you must master before you can be called a hacker by another hacker. This basic set of techniques has been slowly changing over time as new techniques emerge and old ones become obsolete. For example, it used to include programming using machine code, and it is known that the HTML language has only recently been included. But now it clearly includes the following techniques:
1 Learning how to program
This is, of course, the most basic hacking technique. If you don't know any computer languages yet, I suggest you start with Python. It's clearly designed, well documented, and great for beginners. Despite being a great beginner language, it's more than just a toy. It's very powerful, flexible and suitable for large projects as well.
But remember, if you only know one language, you won't reach the level of skill required to be a hacker, or even a regular programmer -- you need to learn how to think about programming in a generic way, independent of any language. To be a real hacker, you need to learn how to quickly master a new language in a few days by going through a few manuals that incorporate what you know now. This means you should learn several different languages.
To do some significant programming, you will have to learn C, the core language of Unix. Other languages that are more important to hackers include Perl and LISP. Perl is practical and worth learning; it's widely used for active web pages and system administration, so even if you never write programs in Perl, you should at least be able to read it. LISP is worth learning because of the wealth of experience you'll gain when you finally master it; experience that will make you a better programmer down the road, even if you may actually use LISP itself very little.
Of course, you're actually better off knowing all four. (Python, C, Perl, and LISP). In addition to being the four most important basic languages, they represent four very different approaches to programming, each of which will benefit you greatly.
I can't teach you how to program in its entirety here--it's a complicated job. But I can tell you that books and courses can't do it either. Almost all the best hackers are self-taught. The only thing that really works is to go and read and write the code yourself.
Learning how to program is like learning to write in natural language. The best thing to do is to read some masterpieces by the masters, try to write something yourself, read some more, write some more, read some more, write some more .... And so on and so forth until you achieve the simplicity and power you see in your own model writing.
It used to be difficult to find good code to read, because there was very little usable source code for large programs for novices to practice on. This situation has improved dramatically; there is now a lot of available open source software, programming tools, and operating systems (all written by hackers). This brings us naturally to the second topic...
2 Getting an open source Unix and learning to use and run it
I'm assuming that you already own a PC or have one available (happy kids today :-) ). The most basic step for newbies is to get a copy of Linux or BSD-Unix, install it on your personal computer, and run it.
Of course, there are other operating systems in the world besides Unix. But they are all sent in binary form - you can't read its source code, much less modify it. Trying to learn hacking on a DOS or Windows machine is like trying to learn to dance with iron blocks strapped to your legs.
On top of that, Unix is the operating system for the Internet. You can learn to use the Internet without knowing Unix, but you can't be an Internet hacker without knowing it. Because of this, today's hacker culture is largely Unix-centric. (This is not always true, and some very early hackers were upset about it, but the ****-breeding relationship between Unix and the Internet has gotten so strong that even Microsoft can't do anything about it)
So, put in a Unix -- I personally like Linux, but there are other options. (You can also run both DOS,Windows and Linux on the same machine) Learn it. Run it. Talk to the Internet with it. Read its code. Try to modify it. You'll get much better programming tools (including C, Lisp, Python, and Perl) than on Microsoft operating systems, you'll have fun, and you'll learn more than you ever thought possible.
For more information on learning Unix, see The Loginataka.
To get Linux, see: Where to get Linux.
3 Learning How to Use the WWW and Write HTML
Most of the stuff built by the hacker culture plays a role where you can't see it, helping factories, offices and universities function properly, and it's hard to see on the surface how it affects the lives of others.The Web is a big exception. Even politicians agree that this huge, shiny hacker toy is changing the world. For this reason alone (and many others), you need to learn how to master the Web.
This doesn't just mean how to use a browser (which anyone can do), but learning how to write HTML, the Web's markup language. If you can't program, writing HTML will teach you some habits of thought that will help you learn. So build your home page first.
But just building a home page won't make you a hacker. The Web is full of pages of all kinds. Most are meaningless, zero-information garbage.
To be worthwhile, your page must have content -- it must be interesting or useful to other hackers. Thus, we come to the next topic ....
--Status in Hacker Culture
Like most cultures that don't involve money, the hacker kingdom runs on reputation maintenance. You manage to solve interesting problems, but how interesting they are, and how good your solutions are, are judged by people who have the same level of skill as you, or better.
Correspondingly, when you're playing a hacking game, you know that your score is going to be given by other hackers' assessments of your skill. (That's why you're only a hacker if other hackers call you a hacker.) This fact is often attenuated by the impression that hacking is a solitary endeavor; it's also attenuated by another hacker-culture taboo (which is waning in potency, but still strong): the refusal to acknowledge self- or external-assessment as a motivation for a person.
Specifically, the hackerdom has been described by anthropologists as an elite culture. Here you build status and fame not by virtue of your dominance over others, nor by beauty, or having what others want, but by your devotion. Especially dedication of your time, your talents and your technical achievements.
There are five things you can do to gain the respect of other hackers:
1. Write open-source software
The first (and most basic and traditional) is to write programs that are considered interesting or useful by other hackers, and publish the original code of the program for everyone to **** and enjoy.
(We used to call this "free software", but that confused a lot of people who didn't know the exact meaning of free. Now many of us use the term "open source")
The most respected hackers in the hacker world are the ones who write large, widely-used pieces of software and publish them so that everyone is using them.
2. Helping to test and modify open source software
Hackers also respect those who use and test open source software. In this not-so-perfect world, we inevitably spend a lot of software development time in the testing and bug-catching phases. That's why any open source author who thinks about it for a moment will tell you that your beta tester is as precious as a ruby. (He knows how to clearly describe the symptoms of what's wrong, locates bugs well, tolerates bugs in fast-releasing software, and is willing to use a few simple diagnostic tools.) Even one of them can tell which testing phase is an extended, exhausting nightmare, and which one is just a wholesome gizmo.
If you're a newbie, try to find a program in development that catches your interest and be a good beta tester. From helping with testing, to helping catch bedbugs, to finally helping change the program, you'll keep getting better. Later on, when you write the program, someone else will help you, and you'll have been rewarded for your initial good deed.
3. Publishing useful information
Another good thing to do is to collect and organize useful and interesting information or documentation on web pages such as FAQs. many of the major FAQ maintainers are as well respected as the authors of other open source code.
4. Help keep the infrastructure running
Hacker culture runs on volunteers. There is a lot of boring work that has to be done to make the Internet work ---- managing mail lists, newsgroups, maintaining lots of documentation, developing RFCs and other technical standards, and so on. The people who do these things get a lot of respect because everyone knows that they are time-consuming, laborious drudgery, and not as much fun as coding. It takes perseverance to do these things.
5. Serve the hacker culture itself
Finally, you can serve the culture itself (e.g. by writing a "how to be a hacker" primer, like I did :-)) (hehe, like I did by flipping it into Chinese :-)), and this doesn't necessarily mean that you've been around for a long time. You can only do it after you've been around long enough to be proficient in all 4 of the above points and gain a certain reputation.
Hacker culture has no leaders. It does have some cultural heroes and tribal elders and historians and spokespeople, to be precise. If you've been around long enough, you might become one of them.
Remember: hackers don't believe in the self-congratulatory braggadocio of their tribal elders, so obviously it's dangerous to go after that kind of reputation. You must have basic humility and grace.
--Hacker and Nerd Connection
Contrary to popular lore, being a hacker doesn't necessarily require you to be a Nerd. However, many hackers are weirdos. Being an out-of-this-worlder helps you focus on more important things, such as thinking and programming.
So many hackers are willing to accept the label "geek," and even more are willing to use the term "geek" and be proud of it -- a declaration of their non-cooperation with mainstream society.
If you can focus enough on being a good hacker and still have a normal life, that's great. It's easier to do that today than it was when I was a newbie in the 1970s. Mainstream culture is much kinder to tech geeks today. Even more people are realizing that hackers are often more caring and make great lovers and spouses. See Girl's Guide to Geek Guys for more information.
If you're attracted to hacking because your life isn't as good as you'd like it to be, that's fine -- at least you won't be distracted. Maybe you'll find your other half later.
--The meaning of style
To reiterate, to be a hacker, you have to get into the hacker spirit. There are still plenty of things you can do when you're not at a computer. They don't replace real programming (nothing does), but a lot of hackers do that and feel they have an essential connection to the hacker spirit.
Read science fiction. Attend science fiction panels. (A great occasion to find hackers.)
Study Zen, or practice martial arts.
Practice an accurate ear and learn to appreciate special music. Learn to play a certain instrument, or sing.
Improve your appreciation of puns.
Learn to write fluently in your native language. (Surprisingly, all the best hackers I know are pretty good writers.)
The more of these things you do, the better you are at hacking. The reasons as to why these things are preferred are not very clear, but they all involve a combination of left-right brain skills, which seems to be the key. (Hackers need both clear logical thinking and sometimes a strong intuition to think outside the logical box.)
Finally, there are some don'ts.
Don't use stupid, claptrap IDs
Don't call yourself a punk, and don't waste your time with those who do
Don't send out emails that are full of spelling and grammatical errors, or post articles that are full of errors
Doing the above can do a lot of damage to your reputation. Hackers have long memories - it will take years for them to forget your stupidity.
---Other Resources
Peter Seebach maintains a wonderful Hacker FAQ for managers who don't know how to deal with hackers.
The Loginataka has a lot of material on how to properly develop the attitude of a Unix hacker.
I've also written a "Brief History of Hacker Culture".
I've also written another article, "Cathedrals and Bazaars", which explains a lot of the workings of Linux and open source culture. I also dealt with it more directly in its sequel, "Expanding the Intellectual Domain".
--FAQ (Frequently Asked Questions)
Q: Will you teach me how to hack?
Since the first posting of this page, I've been getting weekly requests to "teach him how to hack"; unfortunately, I don't have enough time or energy to do that; my own programming projects already take up 110% of my time.
I couldn't even teach you if I wanted to; hacking is basically an attitude and skill that you have to work on yourself. You'll find that even if real hackers want to help you, you won't earn their respect if you beg them to fill you in.
First go learn. Show that you're trying and that you can learn on your own. Then go ask the hackers questions.
Q: Will you help me "hack" a site? Or teach me how to hack it?
No. Anyone who asks this question after reading the FAQ is a fool and I wouldn't care if I had the time. Any such mail sent to me will be ignored or lambasted.
Q: Where can I find real hackers to talk to?
The best way is to join a Unix or Linux user group near you and attend their meetings.
Q: Which language should I learn first?
HTML, if you don't already know it.
But it's not really a programming language. When you're ready to program, I'd recommend starting with Python. You'll get a lot of people recommending Perl, which is even more popular than Python, but a bit harder to learn.
C is very important, but it is the hardest to learn. Don't try to learn C right off the bat.
Q: Doesn't open source free software starve programmers?
That seems unlikely -- so far, the open source software industry has created, not eliminated, tons of jobs.
If it's just a purely financial gain to write a program over not writing one, whether it's free or not, as long as it gets done, programmers will reap the rewards. And there will always be a demand for newer software applications, no matter how FREE the methodology by which the software was developed.
Q: Where do I start? Where can I get free Unix?
The rest of this page points to the most commonly used free Unix. to be a hacker, you need to be self-reliant, and self-educated.