Studying in the Age of AI: What We Gain, What We Lose

Five charts on how AI is reshaping the world students are entering

Author

Likith Kumar Vudugula

Published

Invalid Date

Show the R code
# Run this once if you do not have the packages yet:
# install.packages(c("tidyverse", "plotly"))

library(tidyverse)
library(plotly)

# All five charts use Our World in Data.
# Each file loads straight from the web, so there is nothing to download.
# Every OWID file has the same shape: Entity, Code, Year, and one value column.
# This helper reads a file and renames the last column to "value" so the
# rest of the code stays simple.

read_owid <- function(url) {
  df <- readr::read_csv(url, show_col_types = FALSE)
  names(df)[ncol(df)] <- "value"
  df
}

# A clean look shared by every chart.
theme_set(theme_minimal(base_size = 13))

The story in one line

Artificial intelligence is no longer coming. It is already here, and it is changing the world we study and work in faster than almost any technology before it. These five charts follow that change from the job market we are about to enter, through who is building AI and paying for it, to what it is costing us along the way. The question underneath all of them is simple: what do we gain, and what do we lose?


Chart 1 — AI is taking over the job ads

Before we even graduate, AI has changed the jobs waiting for us. This chart shows the share of all job postings that ask for AI skills. Australia is highlighted, with a few other countries for comparison. The line climbs in almost every country, and the jump in 2025 is hard to miss.

(Multivariate: country and year.)

Show the R code
url_jobs <- "https://ourworldindata.org/grapher/share-artificial-intelligence-job-postings.csv?v=1&csvType=full&useColumnShortNames=false"

jobs <- read_owid(url_jobs)

# Keep a focused set of countries so the chart stays readable.
# Run unique(jobs$Entity) to see every country and swap these if you like.
pick <- c("Australia", "Singapore", "Canada", "Germany", "New Zealand")

jobs_small <- jobs %>% filter(Entity %in% pick)

p1 <- ggplot(jobs_small, aes(Year, value, colour = Entity)) +
  geom_line(linewidth = 1) +
  geom_point(size = 1.5) +
  labs(
    title = "Share of job ads asking for AI skills",
    x = NULL,
    y = "Share of all job postings (%)",
    colour = NULL
  )

ggplotly(p1, tooltip = c("colour", "x", "y"))

Chart 2 — Companies have gone all in

It is not just job ads. Across every region of the world, the share of companies that say they now use AI has climbed sharply, with a clear surge in the last two years. This is the workplace we are walking into.

(Multivariate: region and year.)

Show the R code
url_firms <- "https://ourworldindata.org/grapher/share-companies-using-artificial-intelligence.csv?v=1&csvType=full&useColumnShortNames=false"

firms <- read_owid(url_firms)

p2 <- ggplot(firms, aes(Year, value, colour = Entity)) +
  geom_line(linewidth = 1) +
  geom_point(size = 1.5) +
  labs(
    title = "Companies reporting they use AI, by region",
    x = NULL,
    y = "Companies using AI (%)",
    colour = NULL
  )

ggplotly(p2, tooltip = c("colour", "x", "y"))

Chart 3 — The money tells you who is in charge

Whoever pays for AI shapes how it is built and who it serves. This chart shows private investment in AI by country. The gap between the top country and the rest is the real story: a handful of places are steering a technology the whole world now uses.

(Multivariate: country and year.)

Show the R code
url_inv <- "https://ourworldindata.org/grapher/private-investment-in-artificial-intelligence.csv?v=1&csvType=full&useColumnShortNames=false"

inv <- read_owid(url_inv)

# Automatically pick the six biggest investors in the most recent year,
# dropping any world or regional totals so we compare countries only.
latest_inv <- inv %>%
  group_by(Entity) %>%
  slice_max(Year, n = 1, with_ties = FALSE) %>%
  ungroup()

top_inv <- latest_inv %>%
  filter(!Entity %in% c("World")) %>%
  slice_max(value, n = 6) %>%
  pull(Entity)

inv_small <- inv %>% filter(Entity %in% top_inv)

p3 <- ggplot(inv_small, aes(Year, value, colour = Entity)) +
  geom_line(linewidth = 1) +
  geom_point(size = 1.5) +
  labs(
    title = "Private investment in AI, top countries",
    x = NULL,
    y = "Private investment (US$)",
    colour = NULL
  )

ggplotly(p3, tooltip = c("colour", "x", "y"))

Chart 4 — What it is costing us

Every chart so far points up, and that is the easy part of the story. This one is the warning. It counts the reported AI incidents and controversies each year, from biased systems to harmful or unsafe use. The line was flat for years. Now it is climbing steeply, right alongside everything else.

(This is the “what we lose” chart. Single series over time.)

Show the R code
url_inc <- "https://ourworldindata.org/grapher/annual-reported-ai-incidents-controversies.csv?v=1&csvType=full&useColumnShortNames=false"

inc <- read_owid(url_inc)

p4 <- ggplot(inc, aes(Year, value)) +
  geom_area(fill = "#d62728", alpha = 0.15) +
  geom_line(colour = "#d62728", linewidth = 1.1) +
  geom_point(colour = "#d62728", size = 1.5) +
  labs(
    title = "Reported AI incidents and controversies each year",
    x = NULL,
    y = "Number of reported incidents"
  )

ggplotly(p4, tooltip = c("x", "y"))

Chart 5 — The race to know more

We end where students live: research. This chart shows how many AI studies each country publishes a year. It is the knowledge race behind everything else, and it shows who is shaping what we will all learn next.

(Multivariate: country and year.)

Show the R code
url_pub <- "https://ourworldindata.org/grapher/annual-scholarly-publications-on-artificial-intelligence.csv?v=1&csvType=full&useColumnShortNames=false"

pub <- read_owid(url_pub)

# Same idea as chart 3: take the six biggest publishers in the latest year,
# dropping world and regional totals.
drop_totals <- c("World", "Asia", "Europe", "Africa", "North America",
                 "South America", "Oceania", "European Union (27)")

latest_pub <- pub %>%
  group_by(Entity) %>%
  slice_max(Year, n = 1, with_ties = FALSE) %>%
  ungroup()

top_pub <- latest_pub %>%
  filter(!Entity %in% drop_totals) %>%
  slice_max(value, n = 6) %>%
  pull(Entity)

pub_small <- pub %>% filter(Entity %in% top_pub)

p5 <- ggplot(pub_small, aes(Year, value, colour = Entity)) +
  geom_line(linewidth = 1) +
  geom_point(size = 1.5) +
  labs(
    title = "AI research papers published each year, top countries",
    x = NULL,
    y = "Number of AI publications",
    colour = NULL
  )

ggplotly(p5, tooltip = c("colour", "x", "y"))

Where the data comes from

All five charts use Our World in Data (Creative Commons BY licence), which draws on the Stanford AI Index, Lightcast, Epoch AI and CSET.

  • Chart 1: Share of AI jobs among all job postings
  • Chart 2: Companies reporting they use AI
  • Chart 3: Private investment in AI
  • Chart 4: Reported AI incidents and controversies
  • Chart 5: AI scholarly publications

Four of the five charts are multivariate (country or region by year), which clears the “3 of 5” rule. Every chart is wrapped in ggplotly(), so hovering gives tooltips — that covers the interactivity requirement.