Speaking About Speaking in Code
This past semester I had the privilege of teaching a class at NYU on basic programming skills and digital literacy, Speaking in Code. The school of Media, Culture, and Communication at NYU partnered with Codecademy to dream up this course and were somehow foolish enough to give me basically complete reign over the class. The experience eventually turned into one of the greatest and most fulfilling in my college career, and I just wanted to put down a few thoughts here both as personal reflection and to document publicly my experiences for anyone foolish enough to care.
Dewy-eyed college kids! Kinda sorta not really
The goal of the course wasn’t to turn a roomful of dewy-eyed college kids into software developers—its mandate was to improve the “digital literacy” of the students, who were legit enough in their respective fields in the media world, and many of them already with an undergrad degree. I thought this was absolutely the best way to frame the course. Meeting just once a week for an hour for 10 weeks, you can’t reasonably expect people with no prior programming experience to come away as full-fledged developers.
However, there are a few things you can expect them to come away with:
- A better understanding of how it all fits together. Sometimes it’s difficult to remember just how confusing things can be when it’s not your day job. We explored “big picture” questions such as, “What’s the difference between the back end and front end?”, “What actually happens after you hit enter in your browser’s URL bar?”, “What is that HTTP thing anyway?”
- Practical & hands-on coding experience. I’m a very strong believer in “the best way to learn is to do.” In each session, I would blabber for about half the time, then students would break out their laptops and go through a Codecademy lesson—where they arguably learned more.
How You Know People Learn
I think a great way to know whether your students are learning is to pay attention to their questions. Have they gotten smarter and more specific? As the course went on, I noticed students using more domain-specific terms such as “server-side” or “function” instead of settling for just “that thing.” Not only have the learners remembered these things, but they’ve synthesized them to an extent such that they can speak about the topics intelligibly and specifically.
Analogies & Other Things
Analogies fucking rule. What better way to explain an intimidating new concept (arrays) than to use something familiar? (a box… of cookies). I also stumbled upon something that was apparently funny and/or memorable: transition slides. Preferably punny ones. They’re great for breaking up a presentation, serve as a stopping point for questions, and allow people to take a breather.
Later on in the course, I also devised a way that hopefully students were able to learn better from. When reviewing syntax—a rather boring and cumbersome thing to trudge though—instead of just throwing up some code on the a slide and saying “this is what a function definition looks like,” my slides contained empty text fields where I could type as the students told me what to type. Arguably this is a better reinforcement and review technique than simply putting something on the screen.
As a casual narcissist, I love talking my head off and hearing my own voice just as much as the next guy (and writing long blog posts). However, public speaking isn’t necessarily my strongest skill, but I’ll admit now that the most simple solution that I often scoffed at truly works: practice (yeah yeah Leng, you were right. thanks.) And I don’t mean writing speaker notes or memorizing your slides, I mean literally running through your presentation aloud. Actually talking out loud helped me identify awkward spots in my presentation, helped work out timing, and further solidified the material in my own mind.
And so even though I and everyone else hated our meeting time at 9:30am on Fridays (and I missed a Lerner Pub here or there prepping for class), I’m glad we all stuck through with it. Of course, all this wouldn’t have been possible without Liel from NYU/MCC and Leng, Sasha, and the rest of the gang at Codecademy, so to them I give many thanks.
But I want to give perhaps the biggest thanks to the smart, ever-enthusiastic, and trusting (seriously, me?) students in the class who came ready to learn and braved each Friday morning with me. Congrats on making it through—welcome to the world of digital literacy! (Now don’t forget to submit your projects to me & Liel.)
(But like actually.)