You’ve got your sights set on the world of hacking—but where are you supposed to start? Don’t worry; a hacking career is well within your reach, even if you don’t come from a tech background. We’ve put together a handy, comprehensive guide that will help you learn some coding fundamentals, adopt a hacker attitude, and hone your new craft. In a matter of minutes, you'll be one step closer to reaching all of your hacking goals and dreams!
Learning Fundamentals
Run a UNIX-like OS, such as Linux.
UNIX and UNIX-like operating systems are the operating systems 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. There are many types of UNIX-like operating systems, the most popular being Linux, which you can run alongside Microsoft Windows on the same machine. Download Linux online or find a local Linux user group to help you with installation.
- A good way to dip your toes in the water is to boot up a device called a live USB or CD, a distribution that runs entirely off a CD or USB without modifying your hard disk. A way to get a look at the possibilities without having to do anything drastic.
- There are other UNIX-like operating systems besides Linux, such as the *BSD systems. The most popular *BSD systems are FreeBSD, NetBSD, OpenBSD and DragonFly BSD. All are open source just like Linux. However, it’s important to remember that they are BSD and not Linux.
- MacOS on Darwin, a UNIX operating system that’s on FreeBSD. Darwin is fully free and open source and is available from http://opensource.apple.com. Because the core of the system is UNIX, and MacOS is very popular, many people have ported over Linux applications to MacOS. You can get those programs with a package manager like homebrew, fink or MacPorts. Alternatively, you can just run Linux on a Mac alongside macOS.
- If you want to get super niche, you can even run an operating system like Open Indiana, which is based on the open source release of the Solaris operating system before it was acquired by Oracle and made closed source. OpenIndiana and Solaris made on UNIX System V, and, as such, are not compatible with Linux applications. That said, there are many ports of Linux applications. You’re probably better off just using MacOS, BSD or Linux because they are much more popular and have many more programs available for them.
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 “yourCoolFileName.HTML” so you can upload them to a browser and see your work translated.
Learn the language of programming
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.
- 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 compelling, flexible, and well-suited for large projects.
- If you get into serious programming, you will have to learn Java is an alternative, but its value as a first programming language has been currently questioned in its particular state.
- Unlike Java, Javascript is very similar to Python as they are both a C-based language and extremely new user-friendly. Javascript is “the programming language of the web,” so If you’d like to continue your learning in web development/hacking, Javascript is better to learn than Python.
- An alternative to JavaScript would be PHP 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.
Adopting Hacking Attitudes
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.
Learn to 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 the 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 regarding technical issues, but the attitude and spirit are just as timely.
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.
Be competent.
So, anyone who spends time on Reddit can write up a ridiculous cyberpunk username 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.
Hacking Well
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.
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, 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.
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 available. Maintainers of major technical FAQs get almost as much respect as open-source authors.
Help keeps the infrastructure working.
Volunteers run the hacker culture (and the engineering development of the Internet, for that matter). There’s a lot of necessary but unglamorous work that needs to be 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.
Serve the hacker culture itself.
It 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 position yourself, so it drops in your lap, and then be modest and gracious about your status.
Tips
- Some companies pay for hackers to test their security. If you become good enough, this can be your job!
- Make sure not to get caught, though what you plan to do could be illegal, it is recommended that you DO NOT engage in Black Hat hacking.
- 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.
Warnings
- Black hat hacking (hacking for criminal purposes) is an illegal activity which can result in major penalties. It is a major offense and is punishable under the law.