Why this course?
Since I started working on this course, I’ve received many messages with a lot of questions. I decided to summarize my thoughts here in the hope that it might be helpful to everyone.
Here are some of the most common questions I’ve received:
- How can I get a job?
- Do I really need to learn how to code?
- Which language should I learn?
Please keep writing to me. It’s always a pleasure to discuss journalism, data, and code. 😊
Getting a job
The most important word in data journalist or computational journalist is journalist.
Journalists ask questions of public interest, seek factual answers, and then explain their findings to the public.
The only difference for data and computational journalists is that the factual answers they look for often come from analyzing data and/or algorithms.
If you have a background in journalism, it’s essential to show that you can answer questions with a quantitative approach. Knowing how to use point-and-click tools like Google Sheets and Datawrapper is a good start. However, many job postings specify that coding skills are necessary for analyzing or visualizing data.
On the other hand, if you come from a computer science or data analysis background, it’s crucial to demonstrate an interest in journalism. Showing that you’re motivated to answer important questions with a sound methodology is key. Getting the journalist title might be harder without prior journalism experience, especially in smaller newsrooms. However, in larger organizations, jobs tend to be more specialized. Data analysts or scientists, and data visualization developers often work directly with journalists within editorial teams.
In both cases, you need to demonstrate your skills. You need something tangible to showcase. Starting a personal website might be a good idea. Explore open data portals, find an interesting question, analyze the data, and present your findings visually on your website. Don’t aim for a Pulitzer right away. Just build enough material to show to potential employers. Think baby steps! The fact that you’re on this page, hopefully willing to follow this course, is already a great start. 🙂
Try to have two or three personal projects live. When applying for a job, you’ll already have concrete work to prove your capabilities. If there are no openings, you can send them to newsroom editors. Invite them for a coffee. Make yourself visible. Don’t be shy! Worst-case scenario: they say no, and life goes on.
Job hunting is tough, especially in journalism these days. But remember: even if you don’t land a job right away, learning new skills is never a waste of time.
Best of luck to you! 🫡
Why code
Point-and-click tools like Google Sheets and Datawrapper can do a lot. They are fantastic for quickly analyzing and visualizing datasets.
But they have their limits.
For example, you can’t process large datasets with these tools. Also, there will inevitably be moments when you think, “Ah! I wish I could do THAT!”, but you can’t because the tool’s capabilities constrain you.
With code, it’s different. In a way, it gives you a superpower.
- If you have massive files with millions of data points, you can harness your computer’s raw power to process them.
- If a feature doesn’t exist, you can build it.
- If you need to perform repetitive tasks, you can automate them.
And all of this can happen on your computer or a server in the cloud. Isn’t that amazing?
Code is also easier to debug and reuse.
For instance, imagine you’ve created a spreadsheet and filled it with data. To produce your analysis, you go through 10 steps involving clicks, menu selections, and cell typing. What happens if you made a mistake at step 3? You’ll have to scrap everything and start over most of the time. It’s slow, frustrating, and hard to remember exactly how you got there.
With code, it’s different. If you have 10 lines of code and the third line is wrong, you just fix that line. The rest stays as it is. Everything is written down, so you can always revisit it later.
Code is just text. It’s easy to share. If I need to double-check your numbers, I can read your code line by line, run it myself to reproduce your results or tweak it to explore other possibilities. If you want to be transparent with your readers, you can also easily publish it, increasing their trust in your work.
On top of all that, there are also a lot of amazing coding courses, like this one. 😉
Which language
There are many free and open-source programming languages, but the most popular ones for data analysis are Python and R. Both are fantastic, supported by vibrant communities, and packed with amazing tools. I’ve personally enjoyed using them for years.
However, they’re not ideal for publishing on the web because the web runs in another language: JavaScript. And in journalism, as in many other fields, publishing on the web has become essential.
At the same time, JavaScript was not a very good choice for data processing in the past, but it had (and still has) exceptional libraries for creating highly customized, high-quality visualizations.
This led to a two-step workflow for most digital data projects:
- Gather, clean, and analyze data with Python or R.
- Visualize and communicate results using JavaScript.
But over the years, JavaScript has evolved. The language significantly upgraded with TypeScript, making writing and managing complex code and data easier. JavaScript/TypeScript runtimes became more accessible and powerful, and new tools emerged to process massive datasets at remarkable speeds.
At my level, I’ve tried to contribute to the field by creating simple-data-analysis, a library to easily and efficiently process data. I started working on it in April 2022 and have used it for all my projects since.
So, if I were to recommend a language today, it would be TypeScript. With it, you can answer important questions by leveraging millions upon millions of data points, while effectively communicating your results to the world, on the web, just like computational journalists do.
And this is what I want to teach you: how to code data-driven projects with interactive data visualizations using TypeScript, from start to finish.
I am sure we’ll have a lot of fun along the way. So, let’s code like journalists! 😁