Teaching programming to journalists

I’ve been thinking about this a lot lately. I’ve been preparing a syllabus for an upper-level undergraduate journalism course that I will begin teaching in January. I’ve been learning Python and starting to learn about jQuery.

I’ve got some advantages: I learned HTML in 1995. (I bought a book and did all the exercises in it, at home, on my own time.) I played with the BASIC programming language on my first computer in 1984 until I learned how programming works. (I bought a book and did many of the exercises in it.) I bought an account at an early online community called the WeLL, which gave me access to a Unix command line, which helped me learn about the Internet before we had the Web. I think that was around 1989. (I bought a book to learn Unix commands.)

I’ve had no formal training in programming or Web technologies. My B.A. is in print journalism.

I’ve got some disadvantages: I don’t have strong inclinations toward investigative reporting. I’ve taken two or three workshops with the old computer-assisted reporting crowd, and I admire what they do. I attended a wonderful presentation by Jennifer LaFleur (director of computer-assisted reporting at ProPublica) at a recent conference. However, I seem to lack all interest in examining large datasets. I can download them, dump them into Excel, and clean them. After that, I have no desire to do anything else with them. (I’m not proud of this. I’m just saying.)

I’ve had almost no math education. High school algebra and, in college, symbolic logic. No calculus. Not even a geometry class.

So I think about my journalism students. I think about what I like and don’t like, what I consider fun and interesting, and what I don’t. And I look at all the great work being done online by all kinds of journalists using a wide variety of digital tools.

What I want to do is open doors.

I want to be able to show journalism students that they can do things with code. Even if they think they can’t.

Above all, I want them to understand that “doing things with code” can lead you in several very different directions in the field of journalism.

This is important.

We can offer a course that focuses on Web technologies — HTML, CSS, JavaScript, etc. But there is no data journalism in that class. And a lot of the students are going to hate typing those little brackets and so on. They’ll be so happy when that course is done and they never have to do that again.

Moreover, they won’t practice what they learned, and very soon, they will forget all of it.

We can offer a course about scraping and doing stuff with large data sets. We can teach students how to find stories in data. Students who like this, who learn how to do it and want to continue doing it, are probably among those most likely to get a journalism job. Like the Web technologies course, though, this is a class that many students will either avoid like the plague or take and then count the minutes until it’s over.

Right now, many of you might be thinking thoughts about two types of students: those who appreciate such a course and use what they learn in it, and those who are not appreciative — and so what? Forget about them.

What I’ve been thinking about — a lot — is that there are a zillion ways to turn students off. To make them do things in a class that result in the students forming negative opinions. “I don’t like this,” or “I’m no good at this.” (I think this often happens in Reporting 101 courses too.)

Learning that you can do these things — these code type things — is the first step. Learning that you are capable. You can figure this out. You are not “bad at math,” or “bad at computers.”

Most journalism students learned — back in high school, or even before — that they are “good at writing.” Some of them are quite surprised to learn (in Reporting 101) that they are not good at writing a lede, finding appropriate sources, avoiding cliches, or using commas correctly. Yet the confidence that they are good at writing will sustain many of them through all kinds of setbacks.

If students realize that they can write code — they can figure it out, solve problems, make things that work properly — they will have opened a door that leads to dozens of different journeys in journalism.

  • They might choose data journalism and the investigation of large datasets.
  • They might choose design — they might go on to create new user experiences that make journalism more interesting to more people.
  • They might become a hybrid, a graphic journalist who combines data and presentation to make complex stories easier to understand, using animation and interaction.

My concern is that the way we introduce code to journalism students can push away those who might really excel in one of those areas.

I don’t have a solution. I don’t know if there is one.

But again and again I return to the way I felt in 1984 when I was learning BASIC, in 1995 when I was learning HTML. It was fun. I was happy to be learning. I completed little exercises and they worked. I felt proud of myself.

I thought: I can do this.

(Image credits: Python interpreter, Mindy McAdams; “Our database,” Jennifer LaFleur; Data Journalism Handbook; WTF cartoon, Martin Schmid)

26 Comments on “Teaching programming to journalists

  1. Is it easier to teach commute science students how to do journalism? Maybe entice CS students to work on the student online news site and get them to do cool stuff with journalism there. Maybe that would inspire the pure journalism students – seeing right before their eyes what code can do for their stories. Anybody had much experience of doing this?

  2. That was meant to be COMPUTER science students, of course! Over-confident spell checker.

  3. Pingback: Teaching Programming to an Ad Student | Maurice Rahmey

  4. I agree – in fact it’s the whole reason I wrote Scraping for Journalists: because I felt that traditional programming training/books were frustrating for journalists: “So I know what a variable is. How does that help me get a scoop!?’

    Starting with instant gratification techniques with tools like Google Docs gets over that hurdle.

    Likewise, I recently ran my online journalism module with *no lectures at all* on the basis that it was more important to give students problems before you give them solutions (code/tools/techniques). See http://onlinejournalismblog.com/2012/09/14/stories-and-streams-teaching-collaborative-journalism-with-peer-to-peer-learning/

    That worked so well I’ve extended the approach into other modules.

    But your post makes me think about this in a different way: the inherent pleasure of simple achievements. Should I *only* be showing them a few simple tricks and letting curiosity do the rest…?

Leave a Reply