The "art" of hacking is not just a description of how to program effectively. Rather, it is a description of a philosophy that one can apply to one's life. It involves the application of several perspectives and attitudes to your everyday life; you can cultivate these attitudes and perspectives through application of several techniques and actions in your daily life.
What is "Hacking"?
Most people mis-define hacking in a multitude of ways, or define it much more specifically than the term actually represents. Here is a proper definition of hacking:
hacking: The art or techique of manipulation of the inner workings of a task of any type, going hand-in-hand with problem solving.
In other words, hacking is the ability to discern, consider, and utilize the inner workings of anything in the quest to solve new and interesting problems. Many people apply this to computers specifically; this is because there are a great number of interesting problems to solve.
Hacking is not cracking; it has nothing to do with illegal entry into protected systems.
What is the Difference Between "Hacking" and Problem Solving?
Problem solving is basically a specific instance of hacking; one can hack without solving a problem. For example, reading a book and contemplating it does not directly solve any problems, but is most assuredly a form of hacking. On the other hand, writing a computer program is most assuredly both hacking and problem solving.
Problem solving is solving the problem; hacking is understanding the problem.
How Does It Apply To My Life?
Hacking is a mindset, a way of approaching everything in the world around you. Becoming a hacker of anything causes your perspective on the world to change greatly; a realization of the techniques used in hacking and applying them to other aspects of life brings about a feeling that is almost transcendent.
Beyond that, it adds a sense of direction to your life, something that has a great deal of value to many people. One never has to feel without direction any longer.
Fourteen Steps To Enlightenment
To actually achieve this requires some changes to your living style. Most of these are small changes that won't be widely noticeable to the outside world, but truly delving into the art of hacking may bring about some overall changes in your life.
You can feel free to skip any of these that you like, and attempt these in any order; however, each of these steps are important and should at least be attempted.
The overall goal with these steps is to make yourself hack various things, in order to discover the hacking processes that work for you. Through the repetition presented here, you will gradually find yourself incorporating these processes into your daily life.
1. Listen to challenging music, and think about what makes it challenging.
We're not talking about pop music here; we're talking about music that attempts new things and expresses conflicting ideas. The type of music you should look for is the type that causes a great deal of conflicting thought and reaction in your mind, merely from the music of the piece. But why is there a conflict, and what is the conflict? Pondering these issues serves to hack into the core of the music that you are hearing.
Some musicians to look into:
Greg Osby (acoustic jazz)
Isaac Stern (classical violin, esp. his version of Mendelssohn's Violin Concerto)
Kongar-ol Ondar (world music)
2. Become a strong player at a "thinking" game (i.e., chess).
Although chess is a strong choice for a game to learn, it doesn't have to be your choice, particularly if you have a partner available to play against. Other strong choices include Twixt, shogi, and go. Duplicate bridge or contract bridge are also excellent choices, but require four players.
Your choices become much more limited, however, if you are a solitary person. Your best choice if you are alone is to pick up a top-quality chess-playing engine, such as gnuchess, Fritz, or Chessmaster, and play against a machine. Thankfully, these programs are quite good at teaching the game at a graduated pace.
The goal is to eludicate strategies on your own from experience playing the game. Much like the rest of life, all games are full of subtle patterns, and the strong players are the ones that can discern those patterns. Playing a game repeatedly will cause those patterns to be slowly revealed to you, and you'll gain skill in discerning those patterns.
3. Cook meals for yourself from base ingredients.
A meal is one of the most hackable thing that there is. From the basic ingredients to the herbs and spices that you add, food preparation allows for a great deal of modification -- and requires a great deal of understanding of how things interact with one another.
One potential way to do this is (seriously) play Iron Chef in your own kitchen. Pick a random ingredient that you've never tried, gain some familiarity with recipes that utilize it, then just simply experiment.
After some time, you'll begin to gain a deeper understanding of cooking in terms of how flavors mix and contrast one another. The experience is invaluable, as you often gain a deep perception on how to mix and match things, which you can apply to all avenues of life.
4. Unplug your television set.
This is a difficult one for many people, but the television is the most effective instrument there is in providing brain candy ... and brain candy is the most dangerous thing there is for a thriving mind. Television programs are designed to provide all (or almost all) of the answers for you in a nice tidy package, leaving you uninterested in seeking more.
Unplug your television set, and take the 3.9 hours a day (on average) that you spent in front of the set attempting some of the other activities on this list. Your perspective on the world will change quickly.
5. Read challenging books.
Simply select reading choices that force you to consider perspectives different than your own, and most importantly, try to understand those positions. The best way of doing this is to reach out to a genre that you don't typically read; classical lit fans should give science fiction a whirl, or a heavy fiction reader should try a biography.
When you've finished reading, spend some time merely thinking about the book. Consider the motivation of each character. Try to figure out the symbolism of various objects and events in the work.
Gravity's Rainbow by Thomas Pynchon (modern literature)
Billy Budd by Herman Melville (classic literature)
Truman by David McCullough (biography)
Godel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter (non-fiction)
6. Take up a musical instrument.
Music is almost impossible to describe in words, simply because it is a method of communication that is so different from our understanding of language. It is literally an audio construction of things that are not based in sound, like beauty, love, and pain. Catching even a glimpse of the process of creating music is a transcendent thing, and attempting to understand it unlocks many doors into the world.
One doesn't need to take up a complex instrument that requires years of training. In fact, a simple instrument such as a harmonica (my choice) has layers upon layers of depth in it, but you can begin to play simple songs on the instrument almost immediately.
The goal is to gain a deeper insight into music: what makes it, well, music? It becomes difficult to describe, but approaching it from an analytical perspective makes the miracle of the creation of music seem that much greater.
7. Take up a martial art or another meditative practice.
Martial arts (or similar meditative arts) are essential in training the mind and body to focus and concentrate, and encourages a great deal of self-discipline, in addition to the obvious physical benefits.
The purpose is to learn how to truly focus your mind on a task, to discipline yourself so that you can attack life and all of its amazing challenges with a strong internal discipline.
If the violence of some martial arts bothers you, try a meditative art such as yoga; in fact, try both if you'd like. Yoga provides similar benefits to martial arts, but the two are distinct enough to warrant participation in both.
8. Attend religious services for as many different faiths as you can.
The goal here is to hack belief structures, so that you can develop your own set of beliefs in terms of the world around you. If you believe in something, the ability to share that belief with others is an amazingly powerful thing.
One does not have to strictly follow one religion; in fact, that would go against the idea of hacking. Instead, focus on taking from each religion the parts that ring true to you, and then consider why those parts ring true. You'll eventually reach a set of core beliefs, and from there you can truly begin to comprehend the inner workings of religions and belief structures.
9. Delete Windows from your hard drive, and install Linux.
This is perhaps less true now than it was about five years ago, but in most cases Linux still forces you to understand what is going on with your computer more. Not only that, it provides most pieces of software that you would ever want.
Some may balk at wiping their hard drive, so you may want to buy a cheap used computer at your local computer store (they always have a used one on sale). However, unless you absolutely need to, try to avoid using your Windows-based machine (or Macintosh) for at least a couple of months.
Some things to try out with Linux:
The vi text editor
Apache (if you've got a persistent connection, like a DSL or Ethernet)
The emacs text editor
10. Learn a programming language by writing something fun.
This actually has a lot in common with number #12; the goal is to learn how to express yourself in a much different way than before. In essence, that's what programming is; it's much like talking in a different language to a person who knows how to follow very specific tasks. Your job is to tell the person what tasks to do in what order so that something much greater can occur.
If you actually did #9, you've already got a huge number of languages to try out. Linux generally comes with interpreters for Perl, PHP, Python, and others, and compilers for C++, C, and others. The best language to start with is probably Python, to be followed by Perl and C.
If you can't think of any programs of interest, try something involving E2, perhaps using one of the XML feeds. Generate the information from your own nodes in whatever way you want, or something that generates a web page full of links to random nodes.
If it's something simple, fun, and useful, you'll gain many things from the activity.
11. Take an English composition class in your spare time.
The English language is another highly "hackable" thing; the ability to effectively describe or discuss something in a written format is a challenging task. Understanding the mechanics behind effective composition leads to a greater understanding of communication between people on this planet.
Beyond that, the study of language itself is valuable in that it is, like many things in life, a system with both written and unwritten rules. Understanding those rules leads to a greater understanding of life itself.
12. Learn a foreign language.
This just builds upon the previous idea, but with a twist; it forces you to start again largely from ground zero in terms of learning the written and unwritten rules of language. This is perhaps most effective when learning a language that doesn't have roots in common with your native tongue; for example, a native English speaker may want to learn Mandarin or Japanese.
While studying the language, however, the goal is to understand how the language truly works: how does it really express an idea, a feeling, or a thought? How do I take what I feel or think and express it in this new way?
13. Record what you've hacked.
Keep a detailed notebook or journal of the things you've done or considered. Not only does it improve your composition skills, but it creates a record of your thoughts for future reference. My system for storing these thoughts was the result of a computer program I wrote myself to store things in a way that I liked; it's essentially a series of Post-It notes with subjects and topics attached.
After you accumulate enough of a record, you'll begin to discover patterns in your own thoughts, and the records you have here will begin to flow together. At this point, you've truly achieved a hacking mindset.
14. Share what you know.
The last step of achieving the mindset is simply to share what you know, and attempt to absorb the knowledge of others. The best way to do this is become an active member in several forums and try to share the things you've learned. Usually, this can come from your own records of hacks.
Sharing the knowledge benefits everyone; it benefits you because others come to respect and have interest in your work, and it benefits everyone else because they have another source from which to draw information and ideas.
15. Node the results of each of these here at E2.
A fundamental theme in the above steps is digging into and understanding the deeper issues behind the topic. This is further expressed in the final steps, #19 and #20. One can then apply this easily and share the knowledge and improved understanding at everything2.
How the Art of Hacking Has Affected My Life
In a nutshell, the art of hacking (as I've come to call it) has given my life direction that it did not have before. I went through several low points in my life, and I finally realized that I simply did not have a direction to call my own. I made several changes in my life then, and most of them are listed or hinted at above: I found my own religious path, I discovered a number of amazing hobbies, and I learned how to express myself. It all added up to a new way of viewing the world.
I have taken great solace in Zen buddhism in the last few years, so I feel it appropriate to leave things with this Zen poem:
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.