How to Be a Hacker

Do you want to be a hacker?

“No!” you answer. “I’m an honest person! I don’t break into computers and steal private information!”

Calm down. The word “hacker” once had an honorable meaning — at least mostly honorable — before the media turned it into “computer criminal.” It still does for many people.

Origins of “Hacker”

The term “hacker” sprang up in MIT’s Tech Model Railroad Club (TMRC). The club’s Signals and Power (S&P) Subcommittee went wild with elaborate control systems. They had their own jargon. According to Stephen Levy’s 1984 book Hackers, “the most productive people working on S&P called themselves ‘hackers’ with great pride.”

MIT had a long history of hacks before then. A “hack” was an elaborate prank, often illegal but not malicious. Notable hacks include turning the windows of a building into a Tetris game and putting a car on the Great Dome at the center of the Institute. The oldest known citation of “hack” in that sense belongs to TMRC in 1955. Long before then, though, “hacking” meant doing a rough, quick job, and that meaning doubtless contributed to the MIT use.

For the hacker, the accomplishment is everything. A hack must be creative and technically elegant. For the cracker — the person who breaks in for hire or revenue — the outcome is the point, and crude methods like guessing or stealing passwords are just as good. Still, hacking has always had a double edge. As with the Force, it’s easy to go over to the dark side.

Computer Hacks

Getting a computer to dance and sing is more impressive than getting it to handle a payroll.

In 1956, the TX-0 computer became available for use at MIT. It wasn’t the first computer on campus, but it was the first designed for hands-on use. In those days, computers lived in rooms which few people entered; users submitted decks of punched cards and came back hours later to get their output.

The TX-0 was different. Input didn’t come from a card deck left at the desk. Instead, the programmers themselves fed a punched paper tape through. They could see the results by reading the blinking lights or listening to the programmable speaker. It had only 4K words of memory, but it was an interactive computer! The “hackers” from TMRC lined up to use it in the middle of the night. They did things like converting numbers to Roman numerals and making the speaker play Bach tunes. This was the dawn of computer hacking.

The Hacker Culture and Ethic

Julia Ecklar’s song “Ladyhawke!” sums up the hacker credo: “Unheard of means only it’s undreamed of yet. Impossible means not yet done.” Undocumented features or unexpected ways of using known ones could lead anywhere. Eric Raymond has said, “There’s a little bit of the mad scientist in all hackers.”

Hackers are very individualistic, and they don’t form a tight cultural group, but we can talk about a hacker culture. It’s evident in the style, the jargon, the communications. They exchange ideas, and exceptional hacks win them status in the community. We can also talk about a hacker ethic, but it’s like talking about a cat ethic. Hackers, like cats, naturally expect certain things and do certain things, and they don’t much care what anyone else thinks.

The Hacker Ethos

The hacker ethos can be summarized as follows:

  1. Get your hands into stuff, take it apart, and figure out how it works. Hackers want systems that they can do that with. They want to know not just the documented features but what’s really going on.
  2. Information should be free. This follows from the tinkering instinct. Hackers want to show off what they’ve created. They want to know everything about a system and have access to everything in it. The Free Software Foundation draws a distinction between “free as in beer” and “free as in freedom.” They mean “the freedom to run, copy, distribute, study, change and improve the software.”
  3. Don’t trust authority. This applies to two senses of “authority”: those who offer definitive knowledge and those who set the rules. Hackers want to find out for themselves and not let any assumptions or prohibitions get in their way.
  4. Original and clever is beautiful. Practical use doesn’t count so much. Getting a computer to dance and sing is more impressive than getting it to handle a payroll. The first application to let employees view their pay status online must have impressed hackers, though.

Item 1 defines a hacker, but otherwise these are general trends. Many hackers respect laws and property rights while diving deep into code. Most of the rest observe limits on what rules they’ll break. Many have practical goals in mind. The number of truly loose cannons is small. Remember: the central points are independence and creativity.

The Modern Hacker

Two huge changes have rocked the hacking scene since its early days. The first was the growth of networks. Arpanet went online in 1969. Its history was an odd and surprisingly productive alliance among officers, entrepreneurs, academics, and hackers. The ability to be “hands-on” with a computer thousands of miles away changed everything. It led to email and long-distance discussions, as well as the first efforts to break into remote computers. Network games like MUD (Multi-User Dungeon) and Maze War were the ancestors of today’s multi-player internet games.

The Raise of Personal Computers

The other big breakthrough was the personal computer. Starting with the Altair, small and inexpensive computers (by the standards of the seventies) were available to anyone with a few hundred dollars to spare. Hackers could buy their own machines and do anything with them!

Personal computers have changed since then. If you get a Windows or Macintosh computer, the OS vendor seems to have more control over it than you have. It’s for your protection, of course, but hackers don’t like being protected. They want access to all the low-level features. For them, Unix (Linux and other free implementations) is the preferred operating system. It’s free, the source code is available, and they can do whatever they want with it.

There are Mac and Windows hackers, of course. They “jailbreak” their computers to get around the vendor’s restrictions. There’s a challenge in opening up a closed operating system. Linux is the scene of most of the action, though.

GNU/Linux and Free Software

Many hackers today write and distribute “free” and “open source” software. The two terms aren’t exact synonyms, and they’ve been the subject of hacker feuds. By either name, the software is available as source code, which anyone can read, modify, and check for bugs. Usually anyone can submit new code or bug fixes.

Open-source applications provide free substitutes for expensive commercial applications and provide nearly all their functionality. Instead of buying Word or Photoshop, you can download LibreOffice or GIMP. Some open source software plays a leading role strictly on its own. For example, Apache is the most popular web server on the internet.

Working on open source software gives people a sense of creating something useful and giving people more choices while sticking it to big corporations. Having your name on a popular project also looks good on your resume.

Might You Be a Hacker?

Do these ideas resonate with you? Does digging deep into code appeal to you? Do you like making clever things work, even if you don’t always get money for them? Have you ever stayed up all night on a project? If so, you might be a hacker, or at least a hacker in training. But think carefully about what kind of hacker you want to be.

Depending on what you dive into, all kinds of software skills may be useful. Certain ones show up repeatedly, though. Knowing them will open up a lot of doors for you. Whatever you learn, learn it deep.

Master the Web

HTML is central to almost everything today. You need to know exactly how tags and attributes work. You need to understand the DOM (document object model), which is the web’s API, as well as how CSS manipulates it.

Taking control of the page requires understanding JavaScript. Over the years it’s grown from a scripting language for little bits of code to a full-blown programming language. Hackers have emulated entire computers in JavaScript.

For serious web hacking, you need to be comfortable on the server side as well. Apache is the usual HTTP server of choice. You should know a couple of ways to write web applications. PHP, Python, and Ruby are among the most popular. Server-side JavaScript, in the form of Node.js, has become their equal lately. You need to know about SQL and databases as well.

Master Computers

Hackers use Unix whenever possible. This is usually Linux, but certainly not always. In fact, hackers argue about the best implementation of Unix: Linux, FreeBSD, or others. If you are going to be a hacker, you ought to be able to install any distribution, configure it as a server, and manage its file system. You should be aware of the range of command shells and know at least one of them thoroughly. Hacker attitudes toward GUIs range from tolerance to outright disdain. It isn’t always necessary to write new computer code. Tools exist that let you do a lot with little effort, if you know them well.

Beware of the dark side, though. It’s easy to take the extra step and get into places where you aren’t allowed. It might look like a chance to do something good and important. Sometimes the penalties are far more severe than you could imagine.

The utilities awk and sed let you pull selected information out of files or reformat it. To use them effectively, you need an instinctive knowledge of regular expressions.

You can make files stand up and dance using ExifTool and Image Magick. ExifTool lets you identify file types, extract metadata, and convert between formats. ImageMagick lets you transform image files, apply special effects, and convert them to a different format.

Emacs is the hacker’s favorite text editor. It’s completely customizable, and incidentally can run as a shell, handle email, and run LISP programs. Some people think of it as an operating system in its own right. (St IGNUcius of the Church of Emacs — AKA Richard Stallman — says that using vi is not a sin, but rather penance.)

Some tasks require programming in old-fashioned C, which is the language of the Linux kernel. Writing kernel modules lets you support new hardware and add other functionality. Check out Linux Programming Introduction and Resources, for a good place to start.

These skills are a base to start from. Find your own niche and become an expert at it.

From Hacking to a Career

A good hacker can be a good software developer, QA engineer, or administrator. If you’ve got the hacking temperament and skills, you can solve difficult problems with unconventional approaches. You may need to learn some discipline along the way, though.

A hack accomplishes something, but it’s often hard to understand and maintain. As a developer on a team, you need to write well-organized code. It needs to have sensible variable names, a good structure, and enough documentation for someone else to pick it up.

Security analysis is attractive to the hacker mindset. If you can find ways to do things that others haven’t thought of, you can find security holes. There are lots of well-paying, legitimate jobs in this area. You can also freelance and collect bug bounties.

The Dark Side

Beware of the dark side, though. It’s easy to take the extra step and get into places where you aren’t allowed. It might look like a chance to do something good and important. Sometimes the penalties are far more severe than you could imagine. At least be aware of how big a risk you’re taking. Read up on Aaron Swartz to understand just how bad it can get.

Another path for a hacker is turning an idea into a business. Some say this is just another kind of dark side, but there’s nothing wrong with making money by offering a valuable product. Both the hacker and the entrepreneur go against established models and push new ideas to the limit.

The entrepreneur’s mindset and skills, though, are very different from the hacker’s. Producing a great software product is one thing. Turning it into a successful business is another. Choose your partners wisely and learn to read contracts as carefully as you read code. Recognize you can go broke more easily than you can get rich. Don’t be evil.

Summary

Reclaiming the word “hacker” from the media may be a lost cause, but a true hacker doesn’t care. If you’re smart and have the right temperament, you can be one in the positive sense of the word. The secret powers of the operating system are at your command. At the same time, remember that brilliance can become arrogance and impatience can lead to choices you’ll regret.

It’s not really a question of choosing to be a hacker. It’s what you choose to do with it, if your inclinations run that way. You can find your own private specialty to hack and not bother anyone. Or you can develop your skills to the maximum and build a career or business out of them. You can even become a crusader living on the edge. Or you can ignore all standards, indulge your whims, and most likely end up in a bad place.

Having choices is good. Making the right ones is better.

Hacker Resources

Here are some resources that will make your road to hackerdome eaiser:

 

How to Be a Hacker by
Twitter Facebook

Discussion

What Do You Think?

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>