At her Berkman Center talk today, I loved Diana Kimball’s characterization of programming not as an activity that’s focused on a product, a complete working program, but rather as a series of debugging steps. Programming is not about reaching the end; rather, it’s about focusing on the part of the program that’s not working and fixing that and understanding more, then fixing more and understanding more, then fixing more, etc. Its a reiterative, continuous process that has as its goal that very activity: fixing, learning, improving, fixing, learning, improving. And that requires a certain mental attitude. It trains us in humility and in developing mental fortitude. Resistance. Self-confidence. Boldness. Perhaps some faith.
Programmers remain students. Always. There are always new languages to learn, new patterns to study, new combinations of old narratives to keep up with. And if you stick with it long enough, you create.
Understanding an architect’s intention, a statue’s origin, a language that’s not your native one allows your to derive more meaning from the world around you. That understanding adds layers of meaning. It adds rich patterns, sometimes stories.
And the architecture in which most of us spend hours and hours of our day is that of the Internet. It’s the rooms we make with computer screens. The right and left turns we make with clicks. And Diana makes the point that speaking that language means we can experience that world differently. More richly. Learning to code (and added to that- learning how the Internet, etc. works in the first place) adds to those experiences we have behind screens.
I hope Diana doesn’t mind if I repost her “Coding and Decoding” course description and some other links she led me to. As I continue my self-teaching journey, they include many ideas I want to keep in mind.
CODING AND DECODING
by Diana Kimball
“This course is about the deep end, and building the courage to plunge into unfamiliar places. Using lessons derived from the practices of cryptography, programming, and foreign language acquisition, we will learn to deduce information from context and recognize new patterns.
A language—of jargon, words, symbols, gestures, or images—is a collection of tokens. Shared language is a primary marker of community, a handy in-group/out-group indicator. The more languages we know, the more patterns we can recognize; the otherwise fleeting signals around us sink into meaning. Finding the pulse in what would otherwise be white noise, we come to understand and affect the surrounding world.
Coding and Decoding aims to confront two realities.
ONE: Languages are everywhere, and everywhere they are crucial. By expanding the scope of “foreign languages” to include unspoken languages (such as Perl, Ruby, and HTML) and hyperverbal tongues (such as the vocabularies of science, slang, and religion), that scope begins to include tools not just of communication, but of invention.
TWO: Most languages are most useful to know upon first encounter. But, precisely because it is the first encounter, it is the very time when we understand them least. This course aims to elevate the experience of first encounter. Through repeated and total immersion in unfamiliar endeavors—new countries, new communities, new machines—we will learn more quickly how to float.
Coding and Decoding is about all modes of communication, and all are in its view. But it is built with particular attention to the future, and what that future will be like. Technological experts can seem like magicians, conjuring effects wordlessly. By approaching that magic as a collection of component parts instead of an indivisible miracle, we can learn to see through these sleights of typing hands. In seeing through, we will learn to perform them ourselves; and think, as magicians, about the worlds we will build.
Language, now, is about more than communication. It is the architecture behind much of what we experience. Understanding that architecture will allow us to experience more.
Decoding requires immersion, patience, and attention. Coding comes more haltingly, but it comes most surely and usefully out of decoding. This class will require curiosity and endurance.”