« « Learning to love…grep (let the computer search text for you)

Learning to love…namespacing (advancing code organization) » »

Learning about teaching at Code With Me

Posted by on Aug 19, 2012 in Blog, Uncategorized | One Comment

“How do I get started doing the kind of work you do? It just seems so…hard.” I hear this comment more than I’d like, and I always find my answers dissatisfactory. “Look things up on the Internet. Find good work, and email the creators.”

Or they sound obnoxious as soon as I say them: “Get an intership out of grad school at the Los Angeles Times.” Or “Bug the professor of your computer-assisted reporting class in school.” Or “Bug the hell out of people at the Associated Press.”

I TRY to help everyone, ’cause everyone helps me, but, as I have recently learned about many things, I can’t do it all.

What is Code With Me?

But what if there was a structured setting for two days, where I joined with lovely compatriots who also do this kind of thing for a living, and we each take two students and teach them enough coding knowhow to make a thing?

Because once you’ve made a thing, and know how to make a thing, you have tools to make more things. And before you know it, it’s three years later, and for nearly a year (my AP anniversary is Wednesday, Aug. 22, 2012), you’re making things at a building in downtown DC, and sitting in a daily editorial meeting at the Washington bureau at the Associated Press, asking yourself, “Wait, what just happened?” If I say I got addicted, that’s an understandment.

That’s all a long way of saying that an organized setting for teaching was needed to get the path started for more of us, and the project I just described — called CodeWithMe — was invisioned by friends Sisi Wei, of the Washington Post, and Tom Giratikanon, of the New York Times. Two of the nicest and smartest pay-it-forwarders you could hope for.  For two days, I merely held a candle.

What did we do?

I don’t want to go into much detail about the exercises we gave students, or how it went. That’s both so it has similar impact in the future, and to create a safe space for the students — it should be a learning environment where you feel totally comfortable, without fear of being featured on michelleminkoff.com, or anywhere else.

But I’ll say this: Sisi or Tom would explain concepts, the “mentors”, as we were called, helped students complete exercises, all leading up to mentors helping students complete an interactive project. Many students created interactive timelines, I think there was some mapping, etc. The idea was to use HTML for the structure, CSS for the appearance, and JS for the interactivity.

I heard someone say, “It’s not a mystery anymore, I was able to do it!”  But of course. The hardest part is getting started, and I’d like to believe we helped with that.

What did we learn about teaching?

I’ve picked up a lot in the past year, and this is the first time in a while I was able to try explaining things, and I learned some lessons. Notes:

  • To quote The Zen of Python, “Explicit is better than implicit.” Without getting too geeky here, to tell jQuery to run code only when the page is ready, you can wrap your code inside a “document.ready” function, or just the word function. I used the latter strategy, since I’m used to it at work. But it made a confusing topic more confusing.
  • HTML and CSS are approachable when explained slowly, but when you switch to JavaScript and jQuery, now it gets serious.  You just switched from markup to programming. You need to slow down more to account for this.
  • Introducing jQuery as a part of JavaScript from the get-go was a good idea. And with all that jQuery can do, and how closely it’s tied to CSS, it made more sense than pure JavaScript would have. I wouldn’t have guessed that would be true, I would have thought that would be introducing too many things at once.
  • Don’t just lecture, use exercises to test people’s knowledge.
  • Let people pursue their own projects, and help them do what they are interested in.
  • Articulating knowledge is hard.
  • Don’t underestimate the importance of being specific in your CSS. This is a work lesson, too.  If you change the color of all the <p> elements, you may accidentally change something you don’t meant to change. When you can use a class or id to limit what elements are being changed, you should do so.
  • Always ask people if they understand, and re-explain. Re-explanations aren’t the fault of mentor/mentee, it’s just what must be done.
  • Don’t be afraid to show off projects from work and explain how fundamental concepts apply to more complex work. For example, I used an interactive map to explain hover, and a recent interactive on social security (which I have a half-written post about) that features radio buttons to show the difference between setting an element to inline vs. block (if you use the latter, nothing can go next to that element, so labels drop to the next line.)
  • Leave some stuff out, don’t throw everything in there at once. At the same time, if you’re asked about something, answer it. This last part is like my parents’ philosophy of not using baby talk with me, but “real” sentences, from a very young age. If you’re going to learn good practices, start early.
  • I’m having to relearn indentation now, so I was a stickler for a div’s contents being more indented than the div itself. And it WAS easier to see when something is missing. This is the fault of AP mentors, and I couldn’t be more delighted.
  • Most importantly, I gained a real appreciation for how much I learned in the past year. I was explaining things I couldn’t have explained a year ago, and cemented my own knowledge. Can’t wait to get back to it on Monday, I’m even MORE invigorated than usual.

Sounds fun. How can I get in on the awesomeness?

When you hear of future Code With Me workshops, if it happens to be in your area, please volunteer as a mentor if you know about making the Internet. And if you don’t, I think this is one of the best ways to get started that exists. You’ll have fun, learn a lot and join a special community.

Note: You don’t have to make interactive graphics all the time, like some of us do. These skills can help you do this work occasionally, or collaborate more effectively with others. I certainly don’t mean to pressure people, or discount other fields of journalism. But as someone who traffics in information, I feel like more knowledge is always a good thing — for one reason or another.

We need you, we want to help you and we want to work together to serve the world with the best information we can.  Whether mentor or student, we’ll both learn something and pay it forward during the workshop days, and far into the future. It’s essential. We journocoders can’t wait for you to join us, so please do.

« « Learning to love…grep (let the computer search text for you)

Learning to love…namespacing (advancing code organization) » »