Why you should learn to program your computer

This is an essay I wrote for a one-off newspaper published by the Trade School folks. I haven’t found any trace of it online, but I bet a PDF version will materialize at some point.

An unusual book was published in 1974 called Computer Lib/Dream Machines. It has an oversized magazine format and two front covers. The two sides read inward to the center page, each side rotated 180° to the other. On the Computer Lib side, above a crudely-drawn clenched fist, reads the subtitle: You can and must understand computers NOW. I like the imperative nature of the phrase, even all these years later.

The book isn’t written by a computer scientist. Its author, Ted Nelson, isn’t a “technical person” so to speak, he has degrees in sociology and philosophy. He is a kind of über-generalist:

People keep pretending they can make things deeply hierarchical, categorizable and sequential when they can’t. EVERYTHING IS DEEPLY INTERTWINGLED. In an important sense there are no “subjects” at all; there is only all knowledge, since the cross- connections among the myriad topics of this world simply cannot be divided up neatly.

Nelson also coined the term “hyptertext” and continues to work on Xanadu, an ambitious (but tragically unpopular) hypertext system technically still in competition with the World Wide Web. I think of him, fondly, as the web’s crazy uncle. I appreciate his open resistance to the conventions of the web, even if my own career building websites is largely based on those conventions.

It’s hard to overstate the ubiquitous role the web now plays in our lives. The undergraduates I teach have grown up with access to Facebook and Google, these things must feel timeless to them. However, the internet as a whole is a fairly recent creation. It’s the result of very deliberate choices reflected in infrastructure and code. It’s easy to overlook how that hardware and software actually operates on our data.

As Lawrence Lessig has argued in Code, “we can build, or architect, or code cyberspace to protect values that we believe are fundamental. Or we can build, or architect, or code cyberspace to allow those values to disappear.” Setting aside Lessig’s unfashionable use of the word cyberspace, his point is an important one. It’s echoed more recently by Douglas Rushkoff in Program or Be Programmed:

Throughout the twentieth century, we remained blissfully ignorant of the real biases of automotive transportation. We approached our cars as consumers, through ads, rather than as engineers or, better, civic planners. We gladly surrendered our public streetcars to private automobiles, unaware of the real expenses involved.

Like global warming and urban sprawl, the dangers of centralized, corporate control over our mediated lives might seem daunting, inevitable even. It’s tempting to simply make due with those tools already at hand, to let professionals make the hard decisions about the software we rely on. The principle of intertwingularity suggests otherwise—your individual preferences and knowledge are fundamentally connected to the technologies where they become manifested. The capacity to write code is deeply intertwingled with what that software can produce.

Granted, the progress you can expect to make learning to program computers will be slow. It may take years before you build anything close to useful. Even so, the patterns of thought developed through understanding code will help you better negotiate the strange currents of our hypermediated world. The important first step is understanding why so that you will want to find out how. The second step is deciding on a project to undertake. The rest is a cyclical process of typing, befuddlement, and exhilaration when you finally understand how it works.

Intro to JavaScript

This afternoon I gave a very short introduction to computer programming at Trade School. I focused on JavaScript as a language to start with, mainly because there’s essentially nothing to install and there are many practical uses to knowing a little JS.

Here is my slide deck. I’ve also posted some example code and the original Keynote file to GitHub.

Download presentation PDF

Incidentally, it looks like the last presentation I posted here was for last year’s Trade School workshop on WordPress.

Events for March 12 and 13, 2010

WNYC on Trade Schoolwww.wnyc.org

I hadn’t quite gotten out of bed this morning when I heard this segment on the radio about Trade School.

MP3 link

If you’ve been following my posts here about the school, you may find this basic report to be redundant, but there’s something very nice about hearing Caroline (and Louise I think?) speaking on the radio.


Events for March 1-7 2010

  • Tonight I’ll be going to the final workshop at Trade School. The topic being the future of the school itself:

    As people with creative projects, we understand the value of creative labor regardless of its market value. Why don’t we share our resources? What happens when we decide how much our work is worth to each other? Let’s trade our skills, spaces, and objects.

    It says there aren’t any seats available, but I’m going to swing by anyway. Starts at 7pm.

  • On Thursday Mushon and Michael are giving a talk and launching their book at Eyebeam. I completely forgot about this when I agreed to be a contestant on geek Jeopardy.

  • Friday through Sunday there’s the Social Media Art Camp (or “SMartCAMP”) conference that I’ll be attending.

Events for February 24-28, 2010

In no particular order:

Trade School workshops this week

Ellie is co-teaching a class at Trade School tomorrow night called Drawing for Pleasure and Relaxation. My (non-keyboard) hand coordination is kind of pathetic and I’d like some practice. It is full, unfortunately, but if you’re really into the idea it’d probably be fine to just show up.

Another one I’ll be going to on Thursday is Art Work: A Discussion about Art, Labor, and Economics, which has a companion newspaper edition and website. There are 3 seats left as of right now.

Also, in case you missed it, there’s a free lecture tonight by CLUI‘s Matthew Coolidge out at Pratt (although, not on the main campus).

Events for February 19-21, 2010

I’m kind of annoyed I missed the sold out Will Wright lecture last night. I had tickets and just totally forgot about it. But there’s a lot happening this weekend in my little sphere of interest, so maybe it’s good that I conserved some “going out energy.”

Friday, February 19

Saturday, February 20

Sunday, February 21

And of course there are a few workshops with space left at Trade School including “Caviar: Demystified,” “Collecting amidst disaster” and “Accidental Pornographies: Developing Underground Health Magazines and Stealth Distribution Models.”

Making websites with WordPress

Tonight I’ll be giving an introductory presentation on using WordPress as part of the Trade School workshop series. Unfortunately my session is already full, but I’d like to do this again in the future (perhaps for The Public School?). In any case, here are my presentation slides (pdf).

Trade School has an interesting model: students bring an item or perform a task in exchange for the teacher’s time. In my case these objects (no tasks in my case) fall into two categories: personal enjoyment and materials for my projects. They range in “material value,” but the point for me isn’t so much that I get a fair exchange. Besides, our society is really bad at arriving at a reliable price on education.