Want to learn how to code? Advice from two experts on where to start

This column originally appeared in Navigator, GroundTruth’s newsletter for early-career journalists.


As COVID-19 has forced journalists to work from home worldwide, there is opportunity to use this time to add to your skillset, whether you are looking to land a job, pick up a new tool or work to craft a single story. Learning to code is a popular choice these days. But is it right for you?  

For this edition of Navigator, we spoke with Meg Heckman, journalist, author and assistant professor of journalism at Northeastern University, and David Eads, Senior Editor of Design and Delivery at The Chicago Reporter. Both are familiar with the opportunities, challenges and requirements of coding for news organizations and are offering advice on what to consider when deciding if coding is for you, what steps to take if you choose to learn and which resources they find most useful. 

Deciding what to learn

There are so many courses, tutorials and online resources for all the different programming languages that it can be overwhelming to start, even for those who have a general idea of what they want out of learning to code. Heckman was first introduced to HTML during her transition from reporting staff to web editor at the Concord Monitor. Curiosity and an aptitude for technology helped, she admitted: “I also didn’t know quite what I was getting into.”

Before deciding on a learning path, Heckman and Eads agree that not every journalist needs to know how to code. “If it’s just not your thing, I think that’s okay, but…you need to have a basic literacy,” said Heckman.

Compare having “a basic literacy” to what a driver should know before getting into a car. You do not need to know everything about the vehicle, but you should know how to change a flat tire and charge the battery. “I often say that writing is my first language of storytelling, I just have to keep learning second, third, fourth, fifth languages of storytelling…enough that I can collaborate and converse with people who are experts in those other areas,” Heckman said.

Eads also said to consider code as another language. Having begun coding at around 10 years old, Eads compared his recent venture of learning Spanish to learning how to program. Employing a “linguist approach” can help coders and programmers find creative ways to express an idea, he said.  

Heckman added that journalists need to know how to speak about code with an understanding of web infrastructure and digital publishing. Even if journalists cannot build their digital publishing tools from scratch, she said, they must understand that the “building blocks” of WordPress, and other web-based content management systems, are HTML, CSS, PHP and JavaScript, meaning these are the primary languages used in most news organizations to build the different elements of a website.   

The most important languages to consider learning are R, JavaScript and Python, according to Eads:

Diving deeper 

In addition to learning to code, Eads said understanding databases is another important technical skill. Databases are at the core of the operation of every government, corporation or organization, and if analyzed properly they can yield a trove of stories. Eads referenced the Panama Papers investigation that won the 2017 Pulitzer Prize for Explanatory Journalism. He said this investigation was made possible because hundreds of different journalists knew how to effectively draw from the same “massive” data set, publishing in dozens of different forms around the world. 

Databases generally use structured query language (SQL), a programming language used to manipulate and define data. Eads said taking the course SQL for Data Science is excellent for reporters because it is intended for data science problems that resemble reporting problems. 

He suggests five steps to follow when getting started:

Familiarize yourself with spreadsheet tools

It is important to be able to sort through a spreadsheet and to ask thoughtful questions based on your findings. Learn how to sort data in an Excel worksheet here. To aggregate data, learn how to create a PivotTable in Excel here. For example, you could use a PivotTable to find the sum of the salaries of every employee at a police department, said Eads. 

Use notebook tools

To save time and share insights among others, coders often look to online programming notebooks. Observable, the online notebook tool that Eads uses, allows for collaborating on both code and data. He compares it to Google Docs because both he and his editor work together simultaneously. Additional notebook tools include RStudio and Jupyter.

Learn to aggregate

Rather than simply reading data from a table, aggregating data allows journalists to recognize trends. This can look like aggregation to geography, over time, or by place or person, said Eads. He gave the example of parking tickets in Chicago. By aggregating the data from multiple years, it can be determined if there is an increasing, decreasing or constant trend. Learn to use the AGGREGATE function in Excel here

Understand visualization

Creating visuals of the data you have gathered from spreadsheets or notebooks is critical for your audience. In getting started, we recommend checking out Edward Tufte’s four books on data visualization. The professor emeritus of political science, statistics and computer science at Yale University was named “The da Vinci of Data” by The New York Times in 1998. 

Specialist Skill: Graphics Development

While understanding the basics of graphics or app development is helpful for journalists, Eads considers them specialist skills. If a reporter can “slice through” data using the mentioned notebook tools, collaboration amongst specialists and journalists becomes possible through a shared understanding and vocabulary. 

Making the shift from in-person contact with sources to managing data online does not mean that you can forget your journalistic instincts. “Just because you’re working with data instead of human beings does not mean that you should abandon your good journalistic sense the minute you open up Excel. If anything, you should be asking the same types of critical questions of data that you do of human sources,” Heckman said. 

Related: Recommended by Heckman, additional coding resources include Codeacademy and LinkedIn Learning, which is free for the first month.

While learning… 

If you have decided to start your coding journey, Eads recommends practicing for roughly thirty minutes a day, instead of attending long workshops that can teach you the basic structure of the language but don’t necessarily teach creative problem solving, which is a skill you will need to write code in a newsroom. “It’ll hurt, it won’t be fun, but it’ll work,” Eads said. 

He also warned against giving into the pressures of learning the latest languages, and instead stick to the established ones, which are used widely in newsrooms across the globe. (Python was released in 1991 and JavaScript was created in 1995). 

There are important complementary skills that you also need to develop if you want to improve as a coder. One non-technical, but important skill to develop is an understanding of design, said Eads. Journalists must have a critical eye towards the design of internet journalism and understand the importance of the user’s experience. This includes asking analytical questions like: ‘Does it engage me,’ ‘Does it have bugs,’ ‘Are there pop-ups getting in the way?’ He said that effective editors look at the news on their phones: “Everybody’s got to understand how their journalism works on a five inch screen, because that’s what their audience is consuming, right? Whether you’re a videographer, or you write only words, or you take only photos or you only write SQL, if you don’t understand how it works on this thing, [the phone], you don’t understand how it works,” he said.