Battle Plan to Hackerdom

First off, I'd better define what a hacker is. The Jargon File has this definition for hacker.


hacker /n./
[originally, someone who makes furniture with an axe]
  1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed te most users, who prefer to lear only the minimum necessary.
  2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
  3. A person capable of appreciating hack value.
  4. A person who is good at programming quickly.
  5. An expert at a particular program, or one who frequently does work using it or on it; as it 'a Unix hacker'. (Definitions 1 throught 5 are correlated, and people who fit them congregate.)
  6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
  7. One who enjoys the intellectualy challenge of creatively overcoming or circumventing limitations.
  8. [deprecated] A malicious meddler whe tries to discover sensitive information by poking around. Hence 'password hacker', 'network hacker'. The correct term for this sense is cracker.

The term 'hacker' also tends to connote membership in the global community defined by the net. It also imlies that the person described is seen to subscribe to some version of the hacker ethic.

It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you'll quickly be labeled bogus). See also wannabee.


So that is the definition of hacker. Please not that definition 8 is deprecated. I do not want to be a cracker. If becoming a hacker enables me to be a good cracker, so be it. Knowledge is power, but you will be remember by how you use that power.

I think that it would be good also include the definition of 'wannabee' as that is my current state.


wannabee /won'*-bee/ /n./

(also, more plausibly, spelled 'wannabe')
[from a term recently used to describe Madonna fans who dress, talk, and act like their idol; prob. originally from biker slang]

A would-be hacker. The connotations of this term differ sharply depending on the age and exposure of the subject. Used of a person who is in or might be entering larval stage, it is semi-approving; such wannabees can be annoying but most hackers remember that they, too, were once such creatures. When used of any professional programmer, CS academic, writer, or suit, it is dorogatory, implying that said person is trying to cuddle up to the hacker mystique but doesn't, fundamentally, have a prayer of understanding what it is all about. Overuse of terms from this lexicon is often a indication of the wannabee nature. Compare nembie.

Historical note: The wannabee phenomenon has a slightly different flavor now (1993) than it did ten or fifteen years ago. When the people who are now hackerdom's tribal elders were in larval stage, the process of becoming a hacker was largely unconscious and unaffected by models known in popular culture -- communities formed spontaneously around people who, as individuals, felt irresistibly drawn to do hackerly things, and what wannabees experienced was a fairly pure, skill-focused desire to become similarly wizardly. Those days of innocence are gone forever; society's adaptation to the advent of the microcomputer after 1980 included the elevation of the hacker as a new kind of folk hero, and the result is that some people semi-consciously set out to be hackers and borrow hackish prestige by fitting the popular image of hackers. Fortunately, to do this really well, one has to actually become a wizard. Nevertheless, old-time hackers tend to share a poorly articulated disquiet about the change; among other things, it gives them mixed feelings about the effects of public compendia of lore like this one.


So perhaps by even being so presumptuous as to put up this page, I may have destroyed all my chances of ever becoming a true hacker. But I hope, and I'm sure some of it will depend on luck, that some day I will be able to participate in a project and give back my little contribution into the world, and that someone else will be able to use that little contribution to go on to do greater and better things with it. I guess that's really why I want to do this. To leave something to be remembered by. To grasp my little bit of worldly immortality. (Must be in my blood. This is so like the Chinese.)

And, while I understand the discomfort of some of the elder hackers with people wanting to become hackers, such is life. Times have changed and hackers have gained exposure. They have become heros to us. People want to be like them. I don't think that there is anything wrong with the desire to be like your heros. It gives the initial desire, and that desire well change as you get better and do things to reach that desire.

Take, for example, hockey. Before the NHL, I'm sure the hockey players played for fun. And during the first generation of the NHL, they also played for fun. But as kids saw the attention that the players were getting, they want to become like their heros. I'm sure that Wayne Gretzky saw Gordie Howe play and said, "I want to be like him." That was the spark. So he learned to play hockey. He played and practiced. But in the process of playing and practicing, he forgot that he "wanted to be like him." He eventually just played and practiced. So by the time that he surpassed Gordie Howe's records, I'm pretty sure that doing so was the last thing on his mind. He just wanted to play better hockey.

So I do not think that the desire to be a hacker should be frown upon. If a person truely, honestly desires to be a hacker, then I believe that the hacker community should help him or her. Becoming a hacker is hard work anyways. The wannabees will be filtered from the true hackers-to-be by work. It's always like that. The people who strive will attain something, and in the case of hackers, the people who strive to create, will eventually create.

But enough of self-justification. If you wish to discuss this, e-mail me.

I will be following the general plan of the FAQ by Eric S. Raymond How To Become A Hacker. One of the first things that it says is that I need to aquire skill in programming. At the moment, though, I feel that my skills in computers and programming are not adequate to really participate in any project worth while. Sure, I can solve a few problems in Linux, and find the bugs in small programs, but that's mainly due to my methodical debugging methods. I can't program a device driver. I don't know how to write a cgi-script, or a perl script. My web pages aren't incredibly snazy. I can't write HTML without a reference book. Heck, I can't program without a reference book. And when it comes to more difficult problems, I just can't figure it out.

    So here is a list things that I want to learn:
  1. HTML
  2. Python
  3. Perl
  4. LISP (I already have studyied a variant, MIT-Scheme)
  5. C (I already have some experience. I need more practice.)
  6. Java (Same as C.)
  7. GIMP (for the webpages)
  8. CGI-scripts
  9. 286 Assembly
  10. 486 Assembly
  11. Pentium Assembly
  12. VIC20 Assembly?
  13. gdb (that's GNU debugger.)
  14. Networking (all and any). Currently Novell and TCP/IP. (Hey, I do need to get a job someday.)
  15. Emacs
  16. vi

So obviously I have a long way to go. But where do I want to go? What are my medium range goals?

Well, to take a quote from Eric S. Raymond's seminal paper "The Cathedral and the Bazaar", here are some of my "itchs that I want to scratch":

  1. A colour printer driver for the Canon BJC-240, for Linux.
  2. A demo.
  3. This webpage.
  4. Speech recognition and speech proccessing software.
  5. Find a way to connect using PPP without changing my hostname.
  6. Take a look at some of the applets that come with GNOME and see why they won't work.

So it's not a very long list, but perhaps something will come along that strikes my fancy to work with. Plus, most of these projects will require a lot of prep work. So the first one that will probably get the most work will be this webpage. Anything that I learn, tips, hints, etc. will probably end up here so others don't have to go about discovering it again. I think the next few things to learn is Python and Gimp. Gimp for the webpage, and Python as something new. And see if I can get that bloody ppp script to work!

I'm also quite interested in the theoretical aspects of Computer Science. Yes, I know, hackers aren't supposed to care about the theory, but I feel that learning some theory makes a better programmer. If you need a data structure, and you don't know about a data structure that fits your needs, and you recreate the data structure, you've just wasted your time. Implementation is hard enough. Coming up with new data structures is even harder, I think. Also, if there weren't advances in compiler theory, where would gcc, and egcs be?

I also enjoy these little mathematical diversions. Mental exercise, or mental masterbation. Call it what you want. It's fun. Heck, I'm an amateur mathematician anyways. (Which means that I took math in university but didn't like the teaching style.)

So that's the battle plan. There are a lot other things that I hope to do. My interests are pretty far-ranging. Linguistics, kinesiology, and electronic music, just to name a few. Information on these will be put on other pages.


Created by GNU/Emacs. Should find/make a button.
This site abides by the
WIP link
This document was last modified on April 3rd, 1999.
Please feel free to contact me about corrections, suggestions, flames, etc.
Marshal Wong [email protected]