Seven coding lessons learned building "Your CPS"

I have been a journalist and journalism student for a decade. When I started my first professional job, in 2007, the dream of every young reporter was to have a scoop stamped on the front page of the paper the next morning. At that time, of course, we didn't have the Internet on our phones and social media was 100 percent something called Orkut — at least in Brazil, where I am from.

For years I worked reporting, writing, and editing my texts and my co-workers' in a Brazilian newspaper. Eventually I had the opportunity to start a new website and finally realized that the world was rapidly changing and, oh yes, the news industry was really behind.

So one year ago I packed up and landed in Chicago to learn more about innovations in journalism. During my masters in Media, Strategy and Leadership at Northwestern University, I tried to improve my digital and managerial skills, I wrote my first lines of code, had access to different digital storytelling techniques, read a lot about entrepreneurship, and studied new business models for the industry. I graduated in June, but one question kept me anxious: Am I prepared to be a productive journalist in the 21st century media?

It was then that I met Joe Germuska, Knight Lab's chief nerd. Joe was interested in dynamic articles that are customized for the person reading it. The Upshot had just published a story in which it detected the reader's location in the U.S. and auto-generated texts and graphs accordingly, giving specific information about the best and worst places to grow up in the country. Joe wanted to explore the idea. Perhaps we could learn more about personalized news and how to build new stories based on large datasets. Perhaps we could create a tool to help journalists. Perhaps we could do both, perhaps even something entirely different — whatever it was we'd have to do it in 10 weeks.

I accepted the challenge and soon met Lingwei Cheng, a data scientist and University of Chicago graduate student who would be my partner over the summer. She would be responsible for the technology part of our project, I would be responsible for reporting — and, if I was lucky and proactive enough, I would learn more about programming. The nerdiest part of me was exultant.

We eventually settled on working with the Chicago Public School budget for a few reasons: 1) The city was then discussing how to overcome its most serious economic crisis ever, 2) datasets were available (at least kind of available) and structured (at least kind of structured) and 3) Lingwei and I were both interested in education.

The project, Your CPS, has been a huge challenge, but over the past ten weeks I've gone from:

Slack_part1

To:

Slack_part2

If, like me, you are a journalist with humanities background and minimal exposure to HTML, CSS, and the programming world, here are some takeaways of my experience.

Don't worry if you don't understand a word

When you start a technology project, you might hear expressions like "Push your changes to Git" or "Do it on your Python server." Proficient people say it without even realizing that it sounds like Aramaic to someone new in the field. But here is one of the best things about the programming universe: it is always OK to ask.

Your lack of experience is not something to be ashamed of. People take different paths and end in technology for different reasons. Even the most talented programmer might be a beginner in some language others consider basic. The environment is open to sharing and collaboration, which may seem a bit strange for people used to the competitiveness of traditional newsrooms. Very soon you will realize, for instance, that forking (basically copying code and using it to build your own project) someone else's code is a very common and welcome practice.

There's always help online

I was lucky to have experienced coders around who I could ask questions (thanks Joe, Heather and Lingwei!), but I know it was a luxury. More often, journalists are left to learn technology by themselves. If this is you, don't despair. Each programming language has its own peculiarities and the community that uses it is probably actively sharing problems and solutions, generating free how-tos and guides, and answering each other's questions. There are endless websites, forums, educational platforms out there.

For me, Codecademy was a helpful refresh some basic concepts. Since I was working mostly with CSS, HTML and JavaScript, I consulted W3SchoolsCSS Tricks, Stack Overflow, and Interactive Data Visualization for the Web several times per day.

Programming will change the way you think, and that's a good thing

You will start to organize your thoughts differently — and believe me, it will help your routine. For people new to technology, like most journalists, this is a truth that might be hard to deal with: in technology projects, you always have to close brackets, metaphorically and literally.

The metaphoric perspective has to do with the way we are formed as professionals and also with the nature of our jobs (if you are a Latin American, like I am, this tends to be even more true). We are always invited to open-ended discussions, when we frequently open round brackets, and frequently neglect to close them.

Our jobs reinforce it. When you call a source and she doesn't answer immediately, what do you do next? You will probably use your waiting time to start researching and reporting your next story. Our workflows are full of on-going pieces that are not necessarily connected to each other.

However, when you are programming, you must have a general goal and break it into smaller pieces. Each task must be initiated and finished in a certain order and it's easier if you put things into categories. If you have a chaotic creative process like me you run the risk of breaking your code constantly.

Your day will be full of the joy of small victories

Creating a list of small tasks has also another direct benefit: Every challenge overcome will be a clear small victory.

Let's say you want to create a navigation bar in your website. You will first look for some visual references that match with your project. You will probably find some parts of HTML written by someone else that you will want to use. When you put all the pieces together and it works the way you wanted to, you will experience what I call "the joy of a small victory." After that, you will style the nav bar with CSS. Applying color, choosing the font, and positioning it the way you want will each be a small victory — actually, in my case, I considered every working positioning a FIFA World Cup victory.final_da_copa_do_mundo_2002

There is no right or wrong answer

Programming is almost a strategy game. You have one final goal, but endless ways of getting there. For example, if you want to center a certain headline, you may add margin or padding, you might change the display type of the element and get very similar results. Some will be more adequate than others, depending on your project.

Because there is no right or wrong, even the most experienced professionals will not be 100 percent sure about the best approach for all the problems. More often than not they will be experimenting with some possibilities. Heather Batagglia, who helped me a lot with HTML and CSS, would always say: "Let's try it and we will see what breaks." The first time she said it, I doubted that she really didn’t know the result we were about to get. She then told me: "That's my life is all about: finding where it breaks."

Sometimes we only identify an error when our projects are up and running and people are actually using it. For us journalists, this is difficult to accept because we don't usually publish a work in progress. What we publish must be absent of errors because a mistake or a misused information can cause lots of pain. When we are working with technology, though, the development is constant and we have to improve the product on the go.

Technology can dazzle, but don't lose sight of the story

The natural tension between design, programing, and traditional journalism may create some internal conflict. At least I had some. As I learned new skills, I wanted to show them off. For instance, Lingwei and I were experimenting with data visualizations and the dataset we had allowed for infinite possibilities. Some graphs could be quite impressive in a technological standpoint, but we had to keep our audience in mind.

Sometimes we decided to go ahead with fancy technology, other times we opted for simplicity. We're still not 100 percent sure if we made the right calls. In all situations, however, we tried to keep our journalistic judgment untouched. Some of the questions we always had in mind were:

  • What point do we want to make?
  • Is this content meaningful?
  • Am using this technology because it is the best way to present this information?
  • Is my grandmother going to understand this?

New skills are new power.

Ten weeks after I first entered the Knight Lab as a fellow, I feel much more confident in my digital skills. I have now some experience with data journalism, programming, and design under my belt.

However, I am still thinking about the question I asked myself when I graduated: "Am I prepared to be a productive journalist in the 21st century media?."

Today I would still answer "Not yet." Now that I have a real sense of what is out there, I have no doubt that I will never be allowed to stop learning to become the type of journalist I want to be. And, to me, this is an amazing perspective.

I was introduced to a set of new skills that will take me a long time to master, but I am already able to use them for my benefit. Now I am aware that I can do an array of things that were unreachable a year ago. If I am not prepared to do everything by myself, I know where to find help and learn.

Therefore, considering what I still can do and learn, more than anything else, this summer gave me power. I hope to use it wisely.

Latest Posts

  • A Google Spreadsheets change affecting TimelineJS users

    Google recently changed something about their Sheets service which is causing many people to run into an error when they are making a new timeline. Note: there should be no impact on existing timelines! After this change, many of you click on the "preview" and get this message: An unexpected error occurred trying to read your spreadsheet data [SyntaxError] Timeline configuration has no events. There is a straightforward work-around, but it requires those of you who have...

    Continue Reading

  • How Americans think and feel about gun violence

    A man killed his wife, then himself. I want you to see his face and learn that he enjoyed fishing with his grandchildren. A small-time drug dealer is shot by two men in a parking lot. I find his Facebook profile and a photo shows him striking a playfully irreverent pose, giving the camera the middle finger. The photo’s comments take a mournful turn after a certain date. “Rest easy bro ???” Gun Memorial runs...

    Continue Reading

  • Software developers interested in journalism: Northwestern and The Washington Post want you!

    Northwestern University and The Washington Post are offering a unique opportunity for two talented software developers interested in applying their programming skills in media and journalism. Here’s the proposition: (1) a full-tuition scholarship to earn a master’s degree in journalism at Northwestern University, followed by (2) a six-month paid internship with The Post’s world-class engineering team, with the possibility of subsequent full-time employment. These opportunities are made possible by the John S. and James L....

    Continue Reading

  • What happened when Gun Memorial let anyone contribute directly to victim profiles

    If you’re reporting local or niche news, there’s a good chance that your audience collectively knows more about the story than you do. That’s especially true for us at Gun Memorial, a small publication with a nationwide mission of covering every American who is shot dead. In our latest, mostly successful, experiment, we let readers add to our stories without editor intervention. This article shares some lessons from that experience. Asking for reader contributions A...

    Continue Reading

  • How conversational interfaces make the internet more accessible for everyone

    This story is part of a series on bringing the journalism we produce to as many people as possible, regardless of language, access to technology, or physical capability. Find the series introduction, as well as a list of published stories here. In 2004, human-computer interaction professor Alan Dix published the third edition of Human-Computer Interaction along with his colleagues, Janet Finley, Gregory Abowd, and Russell Beale. In a chapter called “The Interaction,” the authors wrote...

    Continue Reading

  • Three tools to help you make colorblind-friendly graphics

    This story is part of a series on bringing the journalism we produce to as many people as possible, regardless of language, access to technology, or physical capability. Find the series introduction, as well as a list of published stories here. I am one of the 8% of men of Northern European descent who suffers from red-green colorblindness. Specifically, I have a mild case of protanopia (also called protanomaly), which means that my eyes lack...

    Continue Reading

Storytelling Tools

We build easy-to-use tools that can help you tell better stories.

View More