Being a hacker 2006-12-03

To me, "hacker" is not a label describing a particular set of activities (viz., cracking, system compromise, etc) but rather a general worldview and approach to things.

Components (some core, some cultural):

  1. Curiosity. Wanting to know how things work, even if you have no particular intention to use them, just because - rather than being satisfied with the dumbed-down-instructions version
    1. Analytical mindset. Desire and ability to figure out how things work in their detailed subcomponent parts and in gestalt. Applies to everything. (This post is an example.)
    2. Rationality. Using valid logic routinely as a matter of course standard wherever it is applicable, e.g. to any empirical question and many emotional ones. (Emotion is frequently considered "irrational", but I disagree - it merely has a different axiom set and places a far higher stress on associative inference than inductive logic does.)
  2. Control: Desire to be maximally in control of systems; irritation at artificial limitations to this, like restrictive permissions, poor design, etc.
    1. Configuration. Desire to have things configured just right - which is essentially a matter of making up for poor design. (Note how many hackers are still happy with well-designed things, like ipod's UI)
    2. Freedom. Extreme dislike of any sense of restriction on fulfilling personal desires or whims (even hypothetical ones), whatever the source.
  3. Information freedom. Desire to have most information (with ethical limits) be as free and easily found as possible.
  4. Humor
    1. Recursivity and self-reference
    2. Cross-discipline puns
    3. Intellectual / dry / witty / serious humor
    4. Terseness
  5. Meritocracy. Lack of instinct for "respect for authority" or respect for people by virtue of the positions they hold. Strong instinct for respect based on acheivements, talents, skills, or other personal qualities.
    1. Personalization. Strong dislike of depersonalizing, "soulless" systems.
  6. Design aesthetic. Love of good design, things that Just Work Right, are Pretty, are Shiny, are Powerful, or are otherwise Good Things™.
  7. Personal drive. Belief in one's own desires, interests, etc. Holding one's own values as more important than those of the surrounding culture. Disdain / pity for people without strong personal interests as borderline-zombies.
    1. Internalization over obediance. Belief that un-internalized rules are borderline useless; that they will be "cracked anyway" if someone wants to; and disobeyed when not enforced. Thus a preference for internalized, consensus-based governance; decentralization; generic anti-authority / anti-centralization stance.
    2. Drive-based learning. Learning things when and where they are useful to learn, or expected to be in the future (unless they come under 'curiosity for its own sake' above). Dislike of being forced to study facts that are irrelevant, uninteresting, rote, and bullimically regurgitated.
  8. Systems approach. Belief that most things are systemic, rather than one-time exceptions; that the source of a problem in the system itself must be fixed rather than patching the symptoms; that systems are a powerful tool. And conversely, that systems can be evil inasmuch as they take a life of their own and start existing to sustain themselves, rather than to serve their original beneficial purposes, and that when that happens they must be reformed (if possible) or destroyed and replaced (if not).

You'll note that these have very little to do with what someone actually does per se, though the mindset lends itself better to some jobs (programmer, designer, artist) than others (corporate wageslave, advertising, yesman, etc). It is also ethically neutral; I consider the blackhat/whitehat or hacker/cracker sort of distinction to be a completely separate one, and that people can be any combination of the above.

Only an incidental byproduct of this is being a skilled computer programmer. I have only had a handful of computer projects I wanted to accomplish - I learned what was necessary to accomplish them. I am not particularly interested in/by programming for its own sake, though I certainly appreciate programming as an art form. I am thus quite (or completely) unskilled in a number of areas of programming, simply by virtue of the fact that they have never been needed to accomplish something I felt like accomplishing.

This is why I would describe myself as a 'hacker', and consider it a term of praise when applied to others.