A huge hurdle we face when sharing technical skills with students in workshops like Software Carpentry is motivating the tools and techniques we want our students to learn about. Sure, they come to us jazzed to learn about scientific computing – but it’s something altogether different to forge that excitement into something enduring enough to be a source of motivation for the learning process beyond the bootcamp and for the rest of their careers; do it wrong, and the crunchy realities of fighting with interpreters can squelch that enthusiasm right quick.
So how do we start building that lasting motivation? How Learning Works lays out the high-level foundations of motivation to keep in mind – but what do these things look like as operational techniques? I had the great privilege of giving the newest batch of Software Carpentry students some feedback on the motivational pitches that they made, and some interesting themes resolved themselves. A few things I learned:
Personal stories. Teaching technical content is not an easy task – there are a lot of details to keep straight, steps not to skip, and delicate exercises to perform to assess student needs and keep them learning. It’s easy to get flustered, to stammer, get lost or say the wrong things. But one place where even new instructors shine, is in telling stories about their own experiences with learning to program. The pace becomes conversational, the tone becomes authentic, and truly compelling stories about struggle, need, fear and triumph come out. These stories are the things that make us human again to our students, and reassure them that they are not the only ones to struggle with new ideas and different ways of doing things – students discover that they are part of a community that sympathizes with their experience, and in which their struggle makes them equal to, instead of lesser than. When faced with a daunting task (like learning to program), it is very easy to feel alone and isolated – perhaps I am the only one who doesn’t get it. No tech spec has ever dispelled alienation – only stories about shared experiences can do that. Reassure your students they are not alone with your own authentic experience, and you help them take a huge step towards being ready to learn.
Hope over fear. Nothing gets the lead out quite like a healthy dose of terror. With the ravenous cheetah of technical proficiency chasing a student across the savannah of professional demands, they’ll run awful fast at first. But how long can you listen to a chorus (external or internal) of criticism, threatening you with obsolescence and inefficiency before becoming beaten down, frustrated, exhausted? Fear of nebulous consequences and admonitions to shape up rarely work as well as we wish they would; consider the high and low rates of sugar consumption and recycling, respectively. When somebody explains in a compelling manner why version control will let me share work in a way that empowers me, it feels like, all of a sudden, the tiny little claustrophobic room of siloed silence has been thrown open, and things I didn’t think were possible are now in reach. When someone tells me version control is the Right Thing To Do, I feel like a parent just told me no dessert until I finish my vegetables. I think one of the most motivating things you can do for another person, is to give them the realizable hope that tomorrow can be better than today – and after all, that’s kind of the point of teaching these tools and techniques in the first place.
Abstracting the cruft. Branching is awesome, and unit tests too! Unfortunately, it’s really hard for your students to get as psyched about these things as you are, when they have no idea what they mean. It’s very tempting to jump into technical details right off the bat, since that’s where the real, concrete value lies; don’t. You’ll get there – but not if your students have nothing they find compelling about the topic. Before diving into syntax and jargon, push all that aside for a moment, and paint a picture for your students of what the spirit of the thing is. Sure, automation is good for speed and efficiency – but at its heart, automation liberates us, by letting the machine do things for us. Version control keeps careful snapshots of each step of our code – sure this is good for documentation, but it also allows us to be fearless, by giving us the guarantee that we can experiment wildly, and always have a lifeline to safety. And by codifying what we want to do in small, reusable scripts, we allow ourselves to be ambitious, since now we can build upon what we did previously towards something greater. Our curriculum is not mere technicality; it is crystallized empowerment, and that’s what our students need to discover first above all.
As always, I learn the most from my students – thank you all. I hope someday to be able to give back even a fraction of what you’ve given to me with your ideas, your conversations, and your explorations of this adventure in bringing computing home to the lab. Let’s do it all again in a couple of weeks – the next Instructor Hangouts is booked for November 20, where we’ll be doing an open mic for teaching practice – give us a 5 minute lesson on the software topic of your choice, and we’ll all provide feedback and conversation. I’m looking forward to what new ideas assemble themselves there, and I hope you’ll be part of that conversation.