In my first post about programmer/journalists, I wrote about the “how computer-assisted reporting (CAR) evolved into this new role.

Although not all programmer/journalists started with CAR, that skillset is still the basis for any programmer/journalist. CAR skills start with obtaining data and public records. Knowing where to find this information, either online or by request, is the starting point for any project. The next step is organizing and making sense of the data using spreadsheets or databases.

Investigative Reporters and Editors, one of the biggest CAR groups, teaches those skills and more: ArcView mapping software, Geographic Information Science, SPSS statistical analysis software and social network analysis software.

Web development is probably the biggest distinction between CAR skills and programmer/journalist skills, though there aren’t any hard-and-fast distinctions. To try and further define the skillset of the programmer/journalist, I posted this question on Twitter: “What skills does a programmer/journalist need?”

Brian Boyer, a graduate of Medill’s journalism for programmers master’s track and now News Applications Editor at the Chicago Tribune, responded with this list:

XHTML / CSS / JavaScript / jQuery / Python / Django / xml / regex / Postgres / PostGIS / QGIS

Holy alphabet soup!

Matt Wynn, a reporter at the Arizona Republic, replied that, “The ability and willingness to learn quickly trumps all, methinks. Who knows what tools there will be tomorrow?”

It’s a valid point. For now, let’s look at some cool projects and see which technologies were used to create them.

ChangeTracker

i-88284a982acfda6ee80048dcf5dc5450-changetracker.jpg

ChangeTracker watches the White House’s website so you don’t have to. Whenever a page on whitehouse.gov changes, they let you know — via email, Twitter, or RSS.

ChangeTracker wasn’t built using any programming; it was designed so that it could be used by novices on any website. It’s just a combination of some cheap web tools that already exist: Versionista and Yahoo Pipes.

Represent and Repsheet

i-5b8430878b8a70db07c4bca690773ca1-repsheet.jpg

Represent and Repsheet are two applications that let you look up your elected representatives, view your local political districts, and track news about your government representatives.

Represent and its Chicago cousin, Repsheet, are Django applications. Represent is written in Python, but the geocoder was built using Perl. The app uses Postgres as the backend database, and the PostGIS spatial extensions to do the heavy-duty GIS work.

Investigate your MP’s expenses

i-b56db9e21728cba199ec2ef48c678c6a-InvestigateMP.jpg

“Join us in digging through the documents of MPs’ expenses to identify individual claims, or documents that you think merit further investigation,” reads an invitation from the Guardian. “You can work through your own MP’s expenses, or just hit the button below to start reviewing.”

The Investigate your MP’s expenses project was built on Django, although other frameworks and languages would have worked, too.

“You absolutely could build this in Ruby on Rails or in PHP,” Simon Willison, the developer of the project told the Nieman Journalism Lab. But “as far as I’m concerned, this is absolutely Django’s sweet spot. This is absolutely what Django is designed to do…”

You can read about other cool journalism web apps in my Innovation Spotlight series from earlier this year. One thing that becomes clear for that series is that many programmer/journalists blog, use Twitter or otherwise write publicly about how they’ve built applications.

Other perspectives

Aside from the Twitter feedback I received, I also conducted instant messenger interviews with some of my favorite programmer/journos.

If Ryan Sholin, the director of news innovation at Publish2, was hiring a programmer/journalist for a news organization, he’d “be looking for someone who could work with maps, databases, and who knows enough about any one web framework to make that content visible and sortable.” For example, he’d want someone who has experience with GIS, XML, Flash or PDFs, XML and Django.

Derek Willis of the New York Times would like programmer/journos to have all possible skills. But in a general sense, he breaks the skillsets down into three categories:

1. Experience with some dynamic language (Python, Ruby, PHP).
2. Experience with some data storage programs (RDBMS or the NoSQL stuff).
3. Curiosity, of course, being a prerequisite for all journalists.

Matt Waite of the St. Petersburg Times and PolitiFact focused on traits, rather than skills.

“I think you have to have an interest in the public good — an overdeveloped sense of the public’s right to know, and of what people need to know,” he told me. “I think you correspondingly have to have a deep distrust of the notion that anyone knows what anyone else needs to know. Because who are you to know? Who are you to decide? Would you like other people to be in charge of what you know?”

As for computer skills, Waite said: “You need to know how the whole request-response cycle works. How the request comes into your server, what happens next, how the database does what it does, how caching works, how the code you have interacts with it all and how it gets presented to the browser — each browser, which is different. So you need to know servers, you need to know databases, you need to know your framework or frameworks of choice, and you need to know what’s going on the client side.”

Waite clarified that a programmer/journalist is not expected to be “Computer Jesus.” But “the more you know about the entire request-response cycle, the better off you are.”

Megan Taylor is a web journalist whose work focuses on combining traditional and computer-assisted information-gathering with multimedia production to create news packages online. Megan tells stories in English, HTML/CSS/, ActionScript, PHP, photos, video and audio, and blogs at her personal site.