On Github TylerFisher / 201-2
by Tyler Fisher / @tylrfishr
Hello! My name is Tyler Fisher, and I’m a senior here at Medill. I’ve been asked to talk to you to share some of the things I’ve learned about the web and about programming during my time here at Northwestern.It was terrible.
I came into Northwestern wanting to be a music critic. In fact, I was originally a dual-degree student in music and journalism.
Nevertheless, I started programming freshman year as a part of North by Northwestern’s interactive team. At the time, we were learning how to make Flash graphics every Sunday afternoon.
My first project was absolutely, utterly horrific. [show the project] It’s a miracle that it still works today. But I was damn proud of it at the time. Despite its terrible design and functionality, the act of seeing something I built from scratch go live on a website was exhilarating.
In case you’re wondering, these are the places that have hired me to intern from them. If you had told me freshman year that I would have been hired by NPR out of college, I would have assumed something really, really bad happened to NPR. Like the federal government declaring martial law and taking over all radio bandwidth.
In addition to these internships, I have spent the last two years as a fellow at the Knight Lab, I received the AP-Google Journalism and Technology Scholarship for this academic year and I am currently the webmaster for North by Northwestern, where it all began.
And trust me, this isn’t due to any kind of prodigal skill I have. Journalism is desperate for programmers. If you acquire just a little bit of skill, the opportunities will come knocking down your door.
SoundCite was a project I developed for the Knight Lab during my junior year. The idea came from a class I took spring quarter sophomore year, where my professor asked us to “design the future of news.” It was a lofty prompt, and I had no idea how to do something that grandiose.
Instead, I thought about what had frustrated me as a music writer. Often times, the hardest thing about writing about music is writing about music. By which I mean, putting sound into words is hard. So I wanted a way to let readers hear particular snippets of music I was talking about.
[Demonstrate SoundCite]
Last spring, I formed a team of other developer-journalists and built out North by Northwestern’s housing guide as a full news application. Some of you may have used it.
[Demonstrate Housing Guide]
This is my most recent project and my last with the NPR Visuals Team while I was on JR. It’s essentially a slideshow, but I think we paid great attention to the user experience and how this particular story should be told.
[Demonstrate Wolves]
I could try to convince you myself, but I decided to build something that would do it better than I ever could myself. Last week, I created a simple Tumblr that allowed anyone to submit short reasons why journalists should learn to code. I got a bunch of great responses, and here are a select few.
[read slides 14-18]
— Matt Waite, professor of journalism, University of Nebraska-Lincoln
— Miranda Mulligan, Director, Knight Lab
— Scott Klein, Senior Editor, ProPublica
— Melody Kramer, digital strategist, NPR
— Gina Boysun, news apps editor, Spokesman-Review
— Ezra Klein, editor-in-chief, Vox.com
More than half of the job openings at the New York Times require knowledge of programming.
I don’t particularly like the argument that you should code because you’ll get a job. I would hope that you could find more powerful motivations. But still, the numbers are striking. About a week ago, over half of the open editorial jobs at the New York Times required programming.The most visited story for the New York Times in all of 2013 was a news application published on December 21st.
And it’s not hard to see why. Last year, the most visited story for the entire publication was a news application made by a statistician and a graphics editor, both of whom have considerable skill programming and designing for the web.
Note the publication date on that. It took less than two weeks for a news app to beat literally every other story on the New York Times for the entirety of 2013. News organizations are embracing the web in a way that we’ve never seen before.
Discuss.
Nah. Probably not.
All journalists **must** learn to code. I’d like to hear what you think of that.
[take a few answers, pivot discussion]
I don’t think that all journalists must learn to code. But I think it also depends on your definition of code.
Mozilla has a great standard.
Digital literacy essentially means understanding how the web works and knowing how to produce content of and for the web. Mozilla (those are the people who make Firefox) has a really great specification for digital literacy that I’ll walk you through.
The specification divides literacy into three broad categories: Exploring, Building, and Connecting.
Navigate and search effectively for credible content.
Exploring covers a few things. First, you need to know how to navigate and search effectively for credible content. That means when you’re doing research for a story or even just tweeting an article you read, you have to be able to detect misinformation the web, because there is a *lot* of it.Know how to keep your personal information safe.
You need to know how to keep your personal information safe. Don’t share passwords and use secure passwords. Know what information is appropriate to send and receive from a source through electronic means.Understand how URLs and IP addresses work.
Finally, understand how URLs and IP addresses work. If you Google Facebook and then click the link on the Google search results, you’re doing it wrong.
If the terminology scares you, URLs are just the web addresses you type to go to a page, like google.com or northwestern.edu. However, the real “addresses” for those websites are IP addresses, which are sequences of numbers, like a phone number, that you don’t need to remember because URLs are easier.
Understand how a good web page is structured.
The next category is building. This is as close to code as digital literacy gets. The first goal of building is to understand how a good web page is structured. That deals with understanding best practices for HTML.Be able to put text and multimedia onto a web page.
Next, be able to put text and multimedia onto a web page. This is a crucial skill for journalists. It goes beyond knowing how to use WordPress’s post editor. You should know how to put text and multimedia onto a web page using just HTML. It’s easy; trust me.Comprehend the logic of code and know what is possible.
Next, be able to comprehend the logic of code. Even if you’re not a master programmer, you should know what is possible and how the basic building blocks of programming work. At the most basic level, programming is just giving a computer instructions based on certain conditions. If I click on a button, take me to this web page.Understand the full stack of the web, from server to client.
Finally, understand the full stack of the web, from server to client. What’s a server and a client?A computer which makes requests.
A client is a computer that makes requests. Your laptop, your phone, anything you use to access the Internet. That’s a client.A computer which responds to requests.
A server is a computer that responds to requests. They give you the websites you request.The internet physically connects servers and clients.
Here are way more slides explaining that than I have time for.
The Internet physically connects servers and clients. That's a very, very complex thing. Jeremy Bowers, who I work with at NPR, has about 180 slides of really great explanations for this stuff. I encourage you to check it out.Effectively share content and interact with your audience.
The third component of digital literacy is connecting. This is how you interact with others on the internet. For example, know how to effectively share content and interact with your audience. Understand that social media is a two-way platform, not just a firehose.Commit to open practices on the web and collaborate.
Commit to open practices on the web and collaborate. This means putting your code online on places like GitHub and sharing the things you do well. Journalists and media companies are all struggling with the same platform problems. If we share our solutions, we all get better and do better journalism.Respect the privacy of others, especially your audience.
Even if large technology companies and, um, certain government agencies don’t respect your privacy online, you should always respect privacy. Don’t ask for passwords and private information from your audience. Don’t try to sell data about them for profit.No one has really defined this yet. I have some thoughts.
Of course, the other type of literacy journalists need is data literacy. This hasn’t been well-defined. I’m not sure anyone else even uses the term. But here are my thoughts on what journalists need to know how to do.I’m sorry. I wish it wasn’t true. But it is. You need to have some basic math skills. But bad at math is a lie, at least for the skills that you’ll need.
Matt Waite, the Nebraska professor I mentioned before, is working on a super-simple beginners math document that I’ve linked here. If you don’t feel good about your math skills, take a look at that.
Journalists deal with populations. That makes the math easy.
Use them. Love them.
Be comfortable in a spreadsheet. Spreadsheet skills go hand-in-hand with basic math skills, and they make doing the math significantly easier. When requesting government data, the hope is that you will be able to get it in a form that is conducive to a spreadsheet. Knowing what to do with it afterwards is key.Get information off any web page programmatically.
Right now, this requires some coding.
Have you ever been on a web page with a whole bunch of information, and you just wrote it all down or copied and pasted it into a Word document? Or you needed information that was stored on hundreds of different web pages, one for every item of information? Web scrapers are a way to alleviate the pain and time of that process.
Web scrapers programmatically go to web pages and scrape the data off of them. They can go to tens of thousands of pages in a matter of minutes and return data to you in a format usable in a spreadsheet. They’re amazing.
The catch is that these, in fact, require some serious programming right now. We’re working on making this better and more usable for the average journalist.
Understand a dataset's inaccuracies and account for them.
Finally, no data set is perfect. A good journalist can fact-check data like they can fact-check a quote. Visualizing or writing about data that is inaccurate makes your story inaccurate. Usually, this comes in the form of disclaimers and explanations for missing data.A self-guided curriculum for gaining digital literacy.
Fall quarter, I made a website. It’s called learn.knightlab.com, and it provides a self-guided curriculum for gaining digital literacy. Right now, it contains five lessons plus some pre-reading. In 201-2, you’ll be doing some of the pre-readingThe work you do in 201-2 will be just a taste of what is possible on the web. I hope some of you are inspired to move forward and become programmers for journalism. We need more of you. I hope all of you learn more about the web and become better at making journalism that is of the web.
Here’s some advice on how to move forward as you continue your journalism education.
But it can be hard to just build things for yourself. Sometimes you need someone to push you along. North by Northwestern’s interactive team was where I got my start, and they are still going strong, producing great content. You should get involved.
And if you really get invested in the web, head over to the Knight Lab. They will pay you well to do great, inspiring and fun work. And they also flew me to London to go to a conference for free. So… there’s that.
The Knight Lab has Open Lab nights once a week. I believe they are Tuesday nights from 7-10 this quarter. You can go and work on any project you want. Some of the Knight Lab student fellows are there to help answer your questions and give advice. We started them last quarter, and they’ve been an incredible success.
Here is a great twitter list of people to ask.
One of the best things about the news nerd community, as we developer-journalists call ourselves, is the openness and kindness throughout. When I took over as NBN’s webmaster, the site would crash at least once a week, and I could never figure out why because I didn’t know enough.
Eventually, I got sick of it, so I tweeted asking for some help. A news apps developer at NPR named Jeremy Bowers (who I now work with on JR) replied and offered his assistance. We diagnosed the problem and found that we actually needed to move all of NBN’s content off of our hosting plan and migrate to a new, better server. He helped me do that over spring break, and now, NBN only goes down when I mess up, which is a great thing.
If you're having a problem, someone else has already had it.
The best-serviced people on the web, aside from cat lovers, are amateur programmers. If you’re having a problem, someone else has already had it and posted the solution they found online. Learning how to Google your problems as a programmer is a fundamental skill, one that I use multiple times every day.Here is the proof.
Something to remember, always, is that everyone who does this for a living sucked once.
I made a Tumblr last quarter called newsnerdfirsts.tumblr.com. It gathers the first projects that professional news developers ever did. I got submissions from developers at the New York Times, the Washington Post, NPR, ProPublica, and plenty more publications. They are all uniformly terrible. So if you’re not happy with the first things you build, that’s okay! It’s a learning process.
<section> <h2>These slides were all programmed!</h2> </section>
For example, I programmed all of these slides. Instead of clicking around a Powerpoint presentation and using bad color pickers and text boxes, I could program everything to be uniform. And it was really simple! Let’s take a look at my HTML.
[show them the structure, explain it]
And my final piece of advice: Start small, think big. There are huge problems to solve within journalism and technology. I would venture to say that we haven’t figured out much of anything about how to do journalism properly on the web. So there are big, seemingly impossible problems to tackle. It’s easy to try to jump right into them.
Instead, take something small and solve that problem. Start with something manageable, and keep building. Eventually, you’ll end up building new projects and solving more people’s problems than your own. And that’s an inspiring place to be.