Tuesday, November 4, 2008

How to Become a Hacker ...

What is a Hacker ?

Originally, a hacker was someone who makes furniture with an axe. In those days, nails were hard to come by (they had to be made, one by one, by a blacksmith), screws did not exist, and saws were only used to slice trees into beams and planks. A carpenter would use an axe to hack wood in to table legs or so, and to shape the parts in such a way that they could be joint together with glue. This takes quite some skill.

When I was working in Azerbaijan in 1997, there was a carpenter, Ali, who still worked that way, and the beds, tables and cabinets he made were better, stronger than those of his younger colleagues, who used more modern techniques. They also had a rough kind of beauty to them. Ali was a hacker.

It goes without saying that if a less skilled person would try to hack furniture with an axe, the result would be rather less impressive.

picture of Ali
-- Ali --

Hacking is about skill, competence, excellence. The term 'hacker' got a new meaning when computer technology began to evolve. It dates back to the first time-sharing minicomputers and the earliest ARPAnet experiments. (The ARPAnet was the seed from which the internet grew.) Hackers built the Internet. Hackers made the Unix operating system what it is today. Hackers make the World Wide Web work.

In The Jargon File (entry:hacker) you can look up the meaning(s) of the words 'hacker' and 'hack'. You'll find things like

* Hack : An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed.
* to hack : To pull a prank on. Preferably in a playful, harmless way but with ingenuity, and ideally involving the (creative) use of technology.
* to interact with a computer in a playful and exploratory rather than goal-directed way.
* Hacker : A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.
* An expert at a particular program, or one who frequently does work using it or on it; as in `a Unix hacker'.
* An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
* One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.

But in short : someone who enjoys doing something in a creative way and is extremely good at it - the 'something' ideally being scientific, technological, etc.
But there's more to it. Being (or becoming) a hacker has also something to do with the hacker mind-set, hacker attitude, belonging to the hacker culture - and being acknowledged by other hackers.

Some insight in Hacker history, the hacker culture, its legends, its folklore, hacker ethics and so on can be found in these papers by Erik Brunvand, Department of Computer Science, University of Utah, SLC, Utah 84112.

And here is an exploration into the actual meaning of the word "hacking"
How do I become a hacker ?

In his paper on How to Become a Hacker, Eric S. Raymond describes these aspects of hackerdom rather in detail. The main requirements to become a hacker are competence (skills), attitude and style.
1. Skills

1. Learn how to program.
This is the fundamental hacking skill. It means you'll have to learn a programming language. Preferably more than one; you can learn a lot by comparing two languages and look for similarities and differences in the way they handle a situation.
But programming is more than writing code.
2. Learn to run an operating system.
The Hacker community is much Unix/Linux oriented (nowadays). There are several reasons, an important one being that with (open-source) Unixes you get the code as well. You can actually read how the operating system is written, you can get to know it well enough to modify if you want to.
Unix / Linux is also very network/internet oriented : learning to understand Unix / Linux will help for the next skill you'll need to acquire. And it comes with free programming tools.
(get your hands dirty : Learn Linux Hands-On) :
3. Learn about datacommunication and networks : How do computers talk to each other ?
4. Learn how to use the World Wide Web and write HTML.
Technically, the internet is just a collection of computer networks. But it has become an important communication medium as well, and can be used for many things. Sharing information is one. You'll need to know how to write HTML to publish on the web.
Designing a web site with a good logical structure and a matching directory structure is also an exercise worth doing to sharpen a skill or two.
5. If you don't have functional English, learn it. A lot of information, be it on the web or in books, is only available in English. And apparently English has developed a richer technical vocabulary so that a lot gets lost in translations.

2. Style

Style matters. Not as much as competence though. In a way, your style is an expression of your personality, and as in any group of kindred spirits, hackers recognize certain personality traits. Apart from intelligence, the ability to learn, concentration, analytical thinking, hackers usually also show signs that they use both hemispheres of the brain, not just the left side, the logical, analytical mind. This ability allows them to dig in to the logic of a problem, then step out of it again to see the bigger picture or try a completely different, unexpected approach, or to intuitively know where to start.

Activities that show you may have this ability, and can help you to improve it, are

* Learn to write your native language well. Expressing your thoughts (in writing) helps to organize your thoughts, see relationships, approach a subject from different angles.
* Read science fiction. Among my favorites are
o Star Trek (Captain Kirk is a hacker. So is Scotty.)
o Isaac Asimov
o Kurt Vonnegut. I never thought of Kurt Vonnegut as a science fiction writer, but he seems to fit in here. I like the way he can put together a good story with unique humor, consistently elaborating pleasantly bizarre starting points.
o The Hitch Hiker's Guide to the Galaxy
* Study Zen (and/or take up martial arts - the mental discipline seems similar in important ways). You may start by reading Zen and the Art of Motorcycle Maintenance, by Robert M. Pirsig. Although, in the author's words "it should in no way be associated with that great body of factual information relating to orthodox Zen Buddhist practice. It's not very factual on motorcycles, either", it provides an interesting way of looking at technology, some insight on how the analytical mind works, a few Zen like things, and something about Quality. Quality is good.
* Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn to play some musical instrument well, or how to sing. Discover the mathematics of music, and the beauty in the mathematics. (Read Blues for Nerds as a first introduction)
* Develop your appreciation of puns and wordplay.(Here may be a good starting point.)

The more of these things you already do, the more likely it is that you are natural hacker material.
3. Attitude

Hackers solve problems and build things, and they believe in freedom and voluntary mutual help. Hacker Attitude has to do with finding pleasure in solving problems and building things, looking for new problems to solve rather than re-invent the wheel time and time again. Hackers are open-minded, towards the problems they want to solve as well as towards the world in general. Hackers avoid boredom and brain-dead repetitive work (they rather invent a way to automate it instead). Most important : they believe that attitude is no substitute for competence.
To be accepted as a hacker, you have to behave as though you have this kind of attitude yourself. And to behave as though you have the attitude, you have to really believe the attitude. But if you think of cultivating hacker attitudes as just a way to gain acceptance in the culture, you'll miss the point. Becoming the kind of person who believes these things is important for you -- for helping you learn and keeping you motivated. As with all creative arts, the most effective way to become a master is to imitate the mind-set of masters -- not just intellectually but emotionally as well.

Or, as the following modern Zen poem has it:

to follow the path,
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.

(from How to Become a Hacker by Eric S. Raymond)

Style and Attitude are important, but can never be a substitute for competence. Attitude without competence means your posing. Attitude and style are things you develop in time. Hacker skills require intelligence, and hard work. The 'Library' part of this site is a collection of tutorials and other information that could be useful to acquire some of these skills.
4. Status

There are hackers and hackers. Some hackers obviously are more well-known than others. Some Hackers' names are pronounced with reverence, also by other hackers. There is something like status in the hacker community : see How to Become a Hacker by Eric S. Raymond.

You can also check out these 10 tips for would-be hackers, by Gary Robson
5. Ethics

With knowledge comes power, and with power comes responsibility.
Many books have been written about ethics, many more will be written. I won't add to that discussion. Star Wars said it all : there are hackers, so there is also the temptation of The Dark Side.

1 comment:

Ethan Smith said...

Buy and sell new and used modern, outdoor, office, bedroom and home furniture.
Choose from a great selection of gently used furniture for every room in your home.
More here www.postallads4free.com