« View all posts.

How a Poet Learned to Program

We recently kicked off a mentoring program at P2PU to help people learn web development. We’re in the pilot stage, but we’re looking forward to opening up for everyone very soon. Here’s a first hand look into what the program is like from the view of one of my mentees.

Vanessa Gennarelli is a P2PU community member from Chicago, IL. She’s an Editor at Flat World Knowledge, serving up open textbooks. She has facilitated two groups at P2PU: Open Creative Nonfiction and Hack this Poem.


In the fall of 2011, John Britton and I undertook a learning experiment. John would mentor me in webmaking. I would work on an idea for an interactive world history atlas. John would help me as much as I wished, upon the condition that I document each moment of the experience. We’ve been working together on a regular basis for about 4 months now. As we begin 2012, thought it was time to step back and share a few realizations from along the way.

Poets can program.

I’m a writer–and while my interests lie in digital learning, I’m no technical ace. To give you a sense of where John and I started, I could write HTML and tinker with a stylesheet. Scripts were mysterious, a plume of black magic that elapsed between tags.

My first assignment was Arnat Agnal’s lecture on “Lumped Abstraction.” Agnal prompts budding engineers and designers to see a continuum–from the nitty gritty details of nature to elegant operating systems–as layers of abstraction. A layer might be an equation, a crisp rationale that makes sense of complicated data. As their purpose, engineers take complex things, and, through abstractions like equations, build easy-to-use tools.

Enter a-ha moment #1. As a poet, this explanation of systems design made perfect sense. A layer that rationalizes concrete details in an abstract way–that’s metaphor, my friend. Effective metaphors build a relationship between the abstract and the concrete (i.e. “love is an island”). Like equations, metaphors also capture patterns in our lives–they “abstract out” the concrete details.

In a delectable moment, I realized it was entirely possible for a poet to think this way–and that the connections between the different disciplines enriched them both. For me, a discovery process happened when I could relate the new concepts to my framework for the world. Bring on the code.

Free to fail

I came to John with an idea of what I wanted to make–so I was personally motivated to complete the project.

I’d been thinking about the challenges in teaching Geography. Students often grapple with how to synthesize information across time and across continents–for instance, how rice production in 17th-century Asia might affect agriculture in North America. Usually these courses are organized by continent, which can further the impression that each area is discrete and self-contained. History and Geography instructors also usually want to show how geopolitical boundaries and climates change over time.

How could we mashup CIA World Factbook data and Googlemaps to overcome these challenges as an interactive historical atlas? I Skyped with John about what I had in mind, and told him I was ready to dig in technically.

We fired up JSFiddle, and began to play with maps. John introduced me to the Google Maps API, and I dug into geolocation like whoah. I learned how to construct objects & place markers, create polygons, and most recently created a loop of historical markers in Philadelphia.

Every few weeks, I’d email John, stuck and frustrated and forlorn about functions. I’ll admit to some anxiety about showing a friend of mine what I’d been working on. I often try to coax new poets to share their creative work, so it was useful to be back in that bashful stage when you’re trying something new. But John truly believes anyone can learn to program, so any missteps that you make are just part of process.

And it’s important to have someone to go to when you’re stuck. Really important.

Personally-powered learning.

Meeting with John anchored my learning path through the project. For each concept, John broke the idea up into parts to scaffold my understanding. After each session I went out into the world to teach myself more about the topic–be it arrays, loops or functions. I went to Stack Overflow with my particular questions. I watched videos from Treehouse and from Google on geolocation. As a learner, I explored to find the right resources for me. And I tried to bug him only if there were bits I couldn’t figure out.

The activities learners can do by themselves–education theorists call this the “zone of proximal development.” This phase happens when the learner is on the cusp of frustration, when they find the activities challenging enough to keep their energies engaged. Learners may “lose themselves” to the activity and become completely absorbed.

But if the goal seems too far away or the activity too difficult–that’s when folks can give up, walk away. For me, it was massively useful to come back to someone who could answer questions, connect the bits and pieces together, and move the goalpost to the next activity.

When I reach out to John, he quickly assesses where I made syntax errors or mistakes in the data. He’ll tweak the code or refocus my direction. And in that moment, I’d swoon with realization and pride. Code is a way I can think. Making something with it–this is something I can totally do.

What happens next?

I’ll keep trying to snag moments of John’s time in 2012. And the concepts we’ve explored together–like Boolean expressions, incremental operators and if/then constructs–are all gestures modeled by Scratch, the playful programming environment out of the Lifelong Kindergarten Lab at MIT. I’ll be a Research Assistant there in 2012 working on remixing curricula for educators.

Online assessments usually track student performance in terms of achievement–and that data is visualized in rows, a convention left over from gradebooks. I’m interested in visualizing how learning communities evolve together over time–so in the spring of 2012 I’ll be working on a prototype of a different kind of instructor dashboard. Using Processing. Hang on to your hats!

All of this good karma built up by School of Webcraft & John, this is time I’ll pay forward with my own efforts volunteering for P2PU. And you should too! Check out the School of Webcraft’s Challenges, review submissions for folks to earn badges, and chip in to help folks be more curious.