There is a community and shared culture of expert programmers and
networking wizards that traces its history back through decades to the
first time-sharing minicomputers and the earliest ARPAnet experiments.
The members of this culture were the first "hackers." Breaking into
computers and phreaking phone systems have come to symbolize hacking in
popular culture, but hacking culture is much more complex and moralistic
than most people know. Learn basic hacking techniques, how to think
like a hacker, and how to gain respect in order to crack your way into
the complex world of hacking.
Part 1 of 3: Learning Basic Hacking Skills
1
Run Unix.
Unix is the operating system of the Internet. While you can learn to
use the Internet without knowing Unix, you can't be an Internet hacker
without understanding Unix. For this reason, the hacker culture today is
pretty strongly Unix-centered. A Unix like Linux can run along side
Microsoft Windows on the same machine. Download Linux online or find a
local Linux user group to help you with installation.[1]
- A good way to dip your toes in the water is to boot up what Linux fans call a live CD, a distribution that runs entirely off a CD without having to modify your hard disk. This is a way to get a look at the possibilities without having to do anything drastic.
- There are other operating systems besides Unix, but they're distributed in binary — you can't read the code, and you can't modify it. Trying to learn to hack on a Microsoft Windows machine or under any other closed-source system is like trying to learn to dance while wearing a body cast.
- Under Mac OS X it's possible to run Linux, but only part of the system is open source — you're likely to hit a lot of walls, and you have to be careful not to develop the bad habit of depending on Apple's proprietary code.
- 2.
- Write HTML. If you don't know how to program, learning basic HyperText Mark-Up Language (HTML) and gradually building proficiency is essential. What you see when you look at a website of pictures, images, and design components is all coded using HTML. For a project, set out to learn how to make a basic home page and work your way up from there.
- In your browser, open the page source information to examine the HTML to see an example. Go to Web Developer > Page Source in Firefox and spend time looking at the code.
- You can write HTML in a basic word processing program like Notepad or Simple text and save your files as "text only," so you can upload them to a browser and see your work translated.[2]
- You'll need to learn to format tags and learn to think visually using them.[3] "<" is used to open a tag and "/> is used to close it. " " is the opening for a line of paragraph code. You'll use tags to signal anything visual: italics, formatting, color, etc. Learning HTML will help you to understand better how the Internet works.
3
Learn the language of programing.
Before you start writing poems you have to learn basic grammar. Before
you break the rules you have to learn the rules. But if your ultimate
goal is to become a hacker, you're going to need more than basic English
to write your masterpiece.[4]
- Python is a good "language" to start off with because it's cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful, flexible, and well-suited for large projects. Java is an alternative, but its value as a first programming language has been questioned.[5]
- If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. C is very efficient with your machine's resources, but will soak up huge amounts of your time on debugging and is often avoided for that reason, unless the efficiency of your computer is especially important.
- It is probably a good idea to use a good starting platform such as Backtrack 5 R3, Kali or Ubuntu 12.04LTS.
Part 2 of 3: Thinking Like a Hacker
1
Think creatively. Now
that you've got the basic skills in place, you can start thinking
artistically. Hackers are like artists, philosophers, and engineers all
rolled up into one. They believe in freedom and mutual responsibility.
The world is full of fascinating problems waiting to be solved. Hackers
take a special delight in solving problems, sharpening their skills, and
exercising their intelligence.
- Hackers have a diversity of interests culturally and intellectually, outside of hacking. Work as intensely as you play, and play as intensely as you work. For true hackers, the boundaries between "play," "work," "science," and "art" all tend to disappear, or to merge into a high-level creative playfulness.
- Read science fiction. Go to science fiction conventions, which is a great way to meet hackers and proto-hackers. Consider training in a martial art. The kind of mental discipline required for martial arts seems to be similar in important ways to what hackers do. The most hacker-ly martial arts are those which emphasize mental discipline, relaxed awareness, and control, rather than raw strength, athleticism, or physical toughness. Tai Chi is a good martial art for hackers.
2
Love solving problems.
No problem should ever have to be solved twice. Think of it as a
community in which the time of everyone is hackers is precious. Hackers
believe sharing information is a moral responsibility. When you solve
problems, make the information public to help everyone solve the same
issue.
- You don't have to believe that you're obligated to give all your creative product away, though the hackers that do are the ones that get most respect from other hackers. It's consistent with hacker values to sell enough of it to keep you in food and rent and computers.
- Read older pieces, such as the "Jargon File" or "Hacker Manifesto" by The Mentor. They may be out of date in terms of technical issues, but the attitude and spirit are just as timely.[6]
3
Learn to recognize and fight authority.
The enemy of the hacker is boredom, drudgery, and authoritarian figures
who use censorship and secrecy to strangle the freedom of information.
Monotonous work keeps the hacker from hacking.
- Embracing hacking as a way of life is to reject so-called "normal" concepts of work and property, choosing instead to fight for equality and common knowledge.
4
Be competent. Anyone who
spends time on Reddit can write up a ridiculous cyberpunk user name and
pose as a hacker. But the Internet is a great equalizer, and values
competence over ego and posture. Spend time working on your craft and
not your image and you'll more quickly gain respect than modeling
yourself on the superficial things we think of "hacking" in popular
culture.Part 3 of 3: Earning Respect
1
Write open-source software.
Write programs that other hackers think are fun or useful, and give the
program sources away to the whole hacker culture to use. Hackerdom's
most revered demigods are people who have written large, capable
programs that met a widespread need and given them away, so that now
everyone uses them.
2
Help test and debug open-source software.
Any open-source author who's thinking will tell you that good
beta-testers (who know how to describe symptoms clearly, localize
problems well, can tolerate bugs in a quickie release, and are willing
to apply a few simple diagnostic routines) are worth their weight in
rubies.
- Try to find a program under development that you're interested in and be a good beta-tester. There's a natural progression from helping test programs to helping debug them to helping modify them. You'll learn a lot this way, and generate goodwill 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 web pages or documents like Frequently Asked Questions
(FAQ) lists, and make those generally available. Maintainers of major
technical FAQs get almost as much respect as open-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 but
unglamorous work that needs done to keep it going — administering
mailing lists, moderating newsgroups, maintaining large software archive
sites, developing RFCs and other technical standards. People who do
this sort of thing well get a lot of respect, because everybody knows
these jobs are huge time sinks and not as much fun as playing with code.
Doing them shows dedication.
5
Serve the hacker culture itself.
This is not something you'll be positioned to do until you've been
around for a while and become well-known for one of the four previous
items. The hacker culture doesn't have leaders, exactly, but it does
have culture heroes and tribal elders and historians and spokespeople.
When you've been in the trenches long enough, you may grow into one of
these.
- Hackers distrust blatant ego in their tribal elders, so visibly
reaching for this kind of fame is dangerous. Rather than striving for
it, you have to sort of position yourself so it drops in your lap, and
then be modest and gracious about your status.
Tips
- Write your native language well. Though it's a common stereotype that programmers can't write, a surprising number of hackers are very able writers.
- LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP advanced image editing software.
- Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl to avoid C programming on jobs that don't require C's machine efficiency.
Warnings
- Cracking is an illegal activity which can result in major penalties. It is a major offense and is punishable under the law.