8 Aug 2015

Three programming languages that data journalists should learn

Having recently started as a data journalist at The Telegraph after completing my Interactive Journalism MA, I've been figuring out what I should focus on learning next.

While you can do a lot with the functions in Excel or Google Sheets, as well as the plethora of data-related tools available, there comes a time when programming can help take your work to the next level.

So, as I said, I've done a little research to figure out what I should focus on. These are three programming languages I'm learning to aid my journalism.

A preview of the RStudio dashboard (Credit: Mararie, Flickr)


R has been increasing in popularity among data journalists over the last few years. It's easy to see why: whether you're collecting, cleaning or analysing data, R's a powerful tool that goes beyond what you can do in a spreadsheet.

It's a constantly developing platform assisted by an active community of people willing to help you. With RStudio, there's a decent GUI in which to issue your commands that tell R what to do with the dataframe you input. Swirl is a good place to begin learning.

As the Data Journalism Handbook says:
It is hard to find any visualisation method or data wrangling technique that is not already built into R. R is a universe in its own, the mecca of visual data analysis. Trained data journalists can use R to analyze huge dataset which extends the limits of Excel. 


Ever had two or more spreadsheets that you wanted to join together? Or a large dataset that you wanted to query? You quickly begin to see the restrictions with what you can do in a spreadsheet - which is where SQL comes in.

The programming language allows you to do several things, including: selecting specific subsets of data that you want to extract; describing the exact changes you want to make; and performing queries across related datasets. You can save your commands as a script, meaning you can document your progress and repeat your steps in the future. Try the w3schools tutorial as a place to start.


Among its many uses, Python is a language that you can use to scrape websites - more powerful than tools such as OutWit Hub. Python scripts can extract data from web pages and documents, allowing you to build datasets in which you can find strong stories.

Gregor Aisch, of Open Knowledge Foundation, has said:
Python is a wonderful open source programming language which is easy to read and write (e.g. you don’t have to type a semi-colon after each line). More importantly, Python has a tremendous user base and therefore has plugins (called packages) for literally everything you need. 

Once again, there are several tutorials out there to learn this language.

So there's my three: R, SQL and Python. Together they give you the skills to conduct great data journalism, from sourcing to scraping, from cleaning to visualising.

Got any more that you think I should include? Tweet me.


  1. When assessing Web user experience, two major questions arise: what group of users will be studied, and what kind of data will be collected? The answers to these questions are interdependent, as well as dependent on the resources available to the researcher. See more quantitative data set

  2. Many mistake HTML as a programming language but rather its a markup language and not progaramming language. HtML5 is the latest and technically most advanced version of HTML. To know more
    html5 training in chennai|html5 training chennai|html5 course in chennai

  3. I appreciate the effort of the blogger. I have one small question which is related to html5. If you could help me out then it would be really helpful. How is the page structure in html5 is different from html4?
    html5 training in chennai|html5 course in chennai|html5 training institutes in chennai

  4. I would like to learn SQL programming, where to start, what to write? can someone quickly advise forums or literature? thanks

  5. Digital Marketing is one of the most promising field which is giving a tough tie for traditional marketing methods.
    digital marketing course in chennai|Digital Marketing training in chennai|digital marketing courses in chennai

  6. I really love reading and following your post as I find them extremely informative and interesting. This post is equally informative as well as interesting . web development‬‬

  7. AngularJs is an open source framework which is used to add details to the website. AngularJs is supported by google which a major advantage to the developers.
    angularjs training in Chennai | angularjs training | FITA Academy reviews

  8. Great post you could have completed the following. I'm truly happy to learn to read this kind of.Applications For Android This can be a very informative subject matter that you're picked. keep writing.

  9. The blog was absolutely fantastic! Lot of great information which can be helpful in some or the other way. Keep updating the blog, looking forward for more contents...Great job, keep it up..
    Web Design Bangalore

  10. Nice blog. This is very useful post. Thanks for sharing.

    Internet Marketing Company in chennai

  11. Keep posting the good work. Some really helpful information in there. Bookmarked. Nice to see your site. click here

  12. Wonderful post. Thanks for sharing such a useful post.

    Web designing training in Chennai

  13. Very useful content thanks for sharing such a informative content which provided me the required information on the various technology.
    AngularJS Training in Chennai | AngularJS course in Chennai

  14. Nice informative content which provided me the required information about the programming language where i have gained lot of knowledge.
    PHP training in Chennai | PHP course in Chennai

  15. Hibernate Online Training Hibernate Online Training Hibernate Training in Chennai Hibernate Training in Chennai Java Online Training Java Online Training

    Hibernate Training Institutes in ChennaiHibernate Training Institutes in Chennai Java Online Training Java Online Training

  16. Well Said, you have furnished the right information that will be useful to anyone at all time. Thanks for sharing your Ideas.
    Web Designing Course in Chennai | web designing training in chennai

  17. Thanks for the best topic. Very useful information.

    VMWARE training in chennai

  18. Word press is anything but difficult to develop and WordPress group has contributed hundreds of modules and topics to amplify its usefulness. Thanks for sharing this webpage. I learned a lot about WordPress. Keep sharing more like this.
    Wordpress Training in Chennai | Wordpress Training institutes in Chennai | Wordpress course in Chennai

  19. This comment has been removed by the author.

  20. Well Said, you have furnished the right information that will be useful to anyone at all time. Thanks for sharing your Ideas.
    Angularjs training in chennai | Angularjs course in Chennai

  21. Very useful post, Thanks for sharing this informative article and it's a worth read, your instruction is very clear.
    IT Job Training (PHP Training in Chennai)

  22. This comment has been removed by the author.

  23. Marvelous blog with tons of valuable information. I gathered some useful information through your blog. Python Training | Data Science with Python Training