Storytelling in Binary


When I started an engineering program, I was totally caught off guard by how much I like programming, but you’ll probably need to know a little bit more about me to understand why that was so surprising. 

I’m a sophomore in Chemical Engineering, but for five years between high school and starting at Northwestern, I was a ballet dancer and musical theatre actor. I initiated the career transition because I realized that my love of dance was based more on its scientific, technical study of movement rather than its artistry, but I’ll blog more about that later.

When I decided to start college, I wanted to get back into hard science, but I also wanted a way to apply the creative skills I’d developed as a performer. Those criteria led me to try engineering, but I was still nervous about that choice because I don’t fit the tinkering, tech-wiz mold that comes to mind with the profession.

Engineering, though, has turned out to be a great fit for me not just for its applications of interesting physical phenomena but also for some of the tech tools that had previously intimidated me such as writing a computer program.

Programming in the 21st century can actually be more of an application of writing skills than number crunching thanks to the plethora of user-friendly compilers. A compiler is software that translates a document written in a programming language into a sequence of ones and zeros called binary code. Computer hardware can then execute binary code by switching current on or off through its intricate network of circuits.

So with a compiler that can interpret words into binary, coding projects remind me a lot more of essay assignments from French class than any math class, but that could partially be due to my French teacher; she could catch every single ambiguity or mistake without fail, just like a compiler will hiccup with any inconsistency in your code. My point, though, is that learning the vocabulary and syntax of a compiling language isn’t all that different from learning any other language, there’ll just be more punctuation marks.

I’ve realized, though, that the reason I truly love programming is because I love telling a good story, something I was doing constantly as a performer. Good storytelling is hard; it’s a struggle to externalize the complete story coherently because it’s already clear in your mind. Being able to line up a beginning, middle, and end for an external reader with seamless transitions throughout is just as necessary when writing code for a compiler.

There’s an end functionality that a coder is trying to achieve, but the compiler starts at the beginning and can’t leap any gaps along the way. It may then seem that the process of writing for an automaton is devoid of the style, insinuation, and subtext of good prose, but the object-oriented, referential nature of programming languages allows ample opportunity for clever complexity.

I’ll attempt to show you what I mean by writing an Jane Austen-inspired story in the programming language I’m most familiar with, C++.

C++ code

In this example, heroine and heroine_mother are class objects, which in C++ are a way to create names that indicate specific rules and behaviors just like storytellers create characters. The components and actions that belong to a class object like “husband” and “fret” would be coded in an earlier section that corresponds to the exhibition of a story. Each of the lines above is thus associated with an enormous amount of meaning just as a few lines of a story can use symbolism, allusion and metaphor to deepen a reader’s understanding.

With all of these similarities, I think the software industry would be strengthened by cross-pollination with literary fields. Literature provides masterpieces of storytelling for coders to be inspired by. There’s also an untapped talent pool of creative people who are intimidated by the portrayal of algorithms as math. I used to be intimidated too, but after taking the leap of faith, I can see that it was just between two sides of the same coin. 




Ben I too was captivated by C

Ben I too was captivated by C++ and I actively studied it for 3 years. You may remember that I took a course at UCD for credit in the school of engineering It was an introductory course in C++. I "hit a stone wall" when I attempted to solve "The Towers of Hanoi"; a classical programming problem that you will meet some day. My advice is to fuhgeddaboudit and just keep studying more C++. I enjoyed your synthesis of ideas from disparate sources. 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <div> <br>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Refresh Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.