Despite what I was led to believe, learning to code was excruciating. Throughout the process, I was convinced that I was dumb and should just get really, really good at Excel because that’s as close as I’d ever get to making a computer do anything by typing at it. I kept going over books, blogs, and videos, hoping for a moment where it all clicked and suddenly I became a chip whisperer. But it just wasn’t happening.
Then things changed. I bashed my fingers into my keyboard for days, failing over and over again until finally—it worked. I had a project idea that tickled my brain in just the right way. It was weird, and it was mine. I made something work, something I liked and that was just for me. I’ve been chasing that high ever since.
Looking back, I can see now that what really changed my relationship to code was letting my creative process lead. I was trying to make “useful” stuff, and that's not always necessary when you’re learning. Let the weird in! We worry about how the computer thinks when we’re learning to code, assuming that it’s smarter. It’s not. It’s a dumb box with lots of opinions. When I started worrying less about how it thought and more about what I was trying to achieve, I was able to find little toeholds in the translation process. I was able to work backwards from an idea, and break it down into tiny little steps. These steps are what every code project is made of.
I wanted to help my colleagues glimpse this feeling of creativity and control over programming—without having them touch a computer. I’m a lover of generative art and have long been inspired by the work of Sol LeWitt. His works are sets of instructions that can be interpreted and performed by anyone. This is also how a computer works. You give it instructions and it interprets them to perform some kind of function. (Literally, the part of the computer that reads code is called an “interpreter.”)
Our studio has a bi-weekly tradition called Make(Believe)Time. At each session, a member of the studio comes up with a creative activity to get us out of our heads and thinking more playfully. It might be to invent a new game, design advertisements for a future Earth invaded by aliens, or exploring our senses through making something strange. Ben Swire runs Make(Believe)Time and helped me craft a session that made this translation of code come to life with needle and thread. Each person received sewing supplies and a blank manila card (made to look like an old Fortran punch card). Everyone was asked to write simple instructions for a stitch on the card. Here are a few:
Ben and I shuffled and distributed the cards into groups. We explained that each card is a statement, a simple bit of instructions to be interpreted by the individual sewer. When each person was done with their statement card, they were to pass it to their neighbor until the group had shuffled through all of the statements. Each group of sewers would be acting like a programming function, performing a collection of simple directives.
When a group was done performing their “function,” their data (aka, the cards) was passed to another group. Much like in a computer, data was passed from one function (output) to another where it was added to (input). We were a human computer!
We were delighted to see the wild differences between each group's interpretation. That balance between constrained instruction and broad interpretation touched an interesting space between active and passive creativity. It was fun and inspiring to see the wide range of outputs that came from such simple instructions.