A kid initially plays a game the way it was released. He (or she) gets as far as he can, and if he gets too stuck, his play is over. What then? He either practices, quits, or goes online to find the cheat codes.
Now he's playing beyond the frame of the original game. He's cheating. But since these codes were written by game designers and released, he's not really breaking anything but the rules of the inner game. He's simply choosing a new perspective from which to engage, beyond the original boundaries of play.
With infinite ammunition or impenetrable shields, he can make it through to the end of the game, which again means the end of play, or maybe an opportunity to go back and practice again as a player.
If he's really inspired by the game (or, conversely, incensed by it) he will go back online, find the modification tools (if the game company was smart enough to make this easy) and program his own version of the game. Now, instead of the game taking place in a dungeon, it can happen in a simulation of his high school, or instead of killing one another players can transform one another into angels.
Of course, in all likelihood he's not just creating the new level for himself to play. He finishes his version of the game and the posts it online, where he hopes other people will find it, play it, and love it.
For me, the development of a gamer from player to cheater to programmer mirrors our development as a society....
Finally, computers have changed our relationship to the text again. Instead of just reading the publications of others, we are free to write and distribute our own - on a relatively level playing field. We become authors.
Of course, we can argue that kids writing their own Doom wads aren't really programming. They're customizing an existing game, not delving into the game engine or writing code. Then again, those of us using computers to publish blogs aren't really programming, either. We're creating content within the proscribed constraints of the systems being offered to us. Most of us aren't even conscious of the biases of the interfaces to which we're submitting, much less capable of actually reprogramming them. We put our text in the blank space and hope someone's listening.
So we really went from listeners to readers to writers - but not yet to programmers. We're still (just) users. Only the programmers are capable of creating the architectures where all this writing and sharing takes place, and defining the rule sets through which it all happens.
Do we all need to become programmers? Not necessarily. While I mourn the devolution of computer classes in high school from a chance to learn Fortran to a chance to learn Excel, I don't believe everyone has to know how to write their own software any more than I believe people have to know how to build their own cars or pave their own roads.
But, we do have to at least be aware that the programs we're using have been programmed by someone. The way they work may not be the only way they can work. When we are introduced to computing as a suite of Office programs, we tend to think of computers as tools with a preset range of application.
Likewise, when we approach the world from the perspective of a player or cheater instead of a programmer, we tend to succumb to the values of the game rather than questioning if we are really choosing those values as our own.
(Douglas Rushkoff is a guestblogger)