From Peepo! to Middlemarch: 25 Must-Read Books Before You're 25

From Peepo! to Middlemarch: 25 Must-Read Books Before You're 25

This CSS code defines a custom font family called “Guardian Headline Full” with multiple styles and weights. It includes light, regular, medium, and semibold versions, each available in both normal and italic styles. The font files are hosted online and provided in three formats: WOFF2, WOFF, and TrueType (TTF).@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf) format(“truetype”);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: Guardian Titlepiece;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}

@media (min-width: 71.25em) {
.content__main-column–interactive {
margin-left: 160px;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive {
margin-left: 240px;
}
}

.content__main-column–interactive .element-atom {
max-width: 620px;
}

@media (max-width: 46.24em) {
.content__main-column–interactive .element-atom {
max-width: 100%;
}
}

.content__main-column–interactive .element-showcase {
margin-left: 0;
}

@media (min-width: 46.25em) {
.content__main-column–interactive .element-showcase {
max-width: 620px;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive .element-showcase {
max-width: 860px;
}
}

.content__main-column–interactive .element-immersive {
max-width: 1100px;
}

@media (max-width: 46.24em) {
.content__main-column–interactive .element-immersive {
width: calc(100vw – var(–scrollbar-width, 0px));
position: relative;
left: 50%;
right: 50%;
margin-left: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
margin-right: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
}
}

@media (min-width: 46.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(-20px);
width: calc(100% + 60px);
}
}

@media (max-width: 71.24em) {
.content__main-column–interactive .element-immersive {
margin-left: 0;
margin-right: 0;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(0);
width: auto;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive .element-immersive {
max-width: 1260px;
}
}

.content__main-column–interactive p,
.content__main-column–interactive ul {
max-width: 620px;
}

.content__main-column–interactive:before {
position: absolute;
top: 0;
height: calc(100% + 15px);
min-height: 100px;
content: “”;
}

@media (min-width: 71.25em) {
}For interactive content columns, a left border is added with specific positioning and z-index. On larger screens, the border’s left position adjusts slightly. Within these columns, atomic elements have no top or bottom margins but include padding. When paragraphs precede atomic elements, padding is removed and margins are added instead. Inline elements are limited to a maximum width of 620px.

For figures with a loop role, captions are set to a higher z-index, and loop buttons are styled with specific dimensions and alignment. Self-hosted video elements are set to full width, capped at 620px, and include top and bottom margins. For immersive video layouts, width constraints are removed, and margins are adjusted. On wider screens, immersive videos expand in width and shift leftward.

Color variables define styles for datelines, borders, captions, and feature elements. In dark mode, text and icon colors adapt to a dark theme. Atomic elements within content columns have no padding. Specific rules ensure the first paragraph after certain elements or horizontal rules is styled appropriately across different content sections like articles, comments, and features.The first paragraph after a sign-in gate or a horizontal rule (except the last one) has a top padding of 14 pixels.

For the first letter of the first paragraph following an initial element, sign-in gate, or horizontal rule (excluding the last one) within various content bodies, apply a specific drop cap style. This uses the Guardian headline font, is bold, 111 pixels in size with 92 pixels line height. It floats left, is uppercase, uses border-box sizing, has an 8-pixel right margin, aligns to the top, and uses a custom color variable.

Paragraphs immediately following a horizontal rule within these content bodies have no top padding.

Pullquotes within these content bodies have a maximum width of 620 pixels.

Captions for showcase elements in main content and article containers are positioned statically, taking full width up to 620 pixels.

Immersive elements span the full viewport width, accounting for the scrollbar. On larger screens (up to 71.24em), they are limited to 978 pixels, with caption padding adjusted at different breakpoints. On medium screens (46.25em to 61.24em), the maximum width is 738 pixels. On smaller screens (below 46.24em), they align to the left edge with adjusted margins and caption padding.

For furniture wrappers on large screens (61.25em and above), a grid layout is used with defined columns and rows for positioning headline components.The CSS styles define the layout and appearance for a webpage’s header section, referred to as “furniture-wrapper.” It sets borders, spacing, typography, and grid structures that adjust across different screen sizes.

For larger screens (over 71.25em), a complex grid layout is established with specific columns and rows for elements like the title, headline, meta information, standfirst (subheading), and portrait. Visual elements like borders and lines are adjusted or removed at certain breakpoints. The headline font size increases and its maximum width changes on larger screens. Links within the standfirst are styled with underlines that change color on hover.For screens wider than 740 pixels, hide elements with the class `.keyline-4` or the attribute `[data-gu-name=”lines”]`. Within the `.furniture-wrapper`, style the SVG strokes within these elements to use the `–headerBorder` color variable.

On screens wider than 740 pixels, remove the right margin from elements with the ID `#meta` or the attribute `[data-gu-name=”meta”]` inside `.furniture-wrapper`. For these meta elements, set the border color of social links, comment sections, and their child spans to `–headerBorder`. Also, hide any `gu-island` components within the `.content__meta-container_dcr`.

For the standfirst section (selected by class, ID, or `data-gu-name`), apply a negative left margin and matching padding, and set its position to relative. On wider screens (over 740px), add a small top padding. Style paragraphs within the standfirst with a font weight of 400, a size of 20 pixels, and a bottom padding of 14 pixels.

The main media area (selected by ID or `data-gu-name`) is positioned relatively, has no top margin, a small bottom margin, and is placed in the “portrait” grid area. Ensure its inner divs take full width and have no horizontal margin. On very wide screens (over 980px), remove the bottom margin. On smaller screens (under 740px), set its width to the full viewport width minus any scrollbar, and apply a negative left margin. For screens between 480px and 740px, increase this negative left margin to -20px.

Style figure captions to be positioned absolutely at the bottom, with specific padding and background/text colors from CSS variables. Set their width to 100% with no maximum width, remove the bottom margin, and set a minimum height. Color spans within the caption using `–headerBorder`, and fill their SVGs with the same color. Hide the first span and display the second span as a block element, limiting its width to 90%. On screens wider than 480px, increase the caption’s horizontal padding. A class of `.hidden` on the caption sets its opacity to 0.

The caption button is displayed as a block, positioned absolutely near the bottom right, with a high z-index. It has a circular background, no border, and specific padding. Scale its SVG icon down slightly. On screens wider than 480px, adjust its right position. For very wide screens (over 1140px), adjust the top and height of the `.content__main-column–interactive` pseudo-element. Also, limit the maximum width of h2 headings within this column to 620 pixels.

For the root element when the body has an `.ios` or `.android` class, define a set of dark mode color variables. In a dark color scheme preference, update the `–new-pillar-colour` variable accordingly.

On iOS devices, target the first paragraph after specific initial elements in various article containers and style their first letter. This also applies if a sign-in gate element appears between that first element and the paragraph.The first letter of the first paragraph after a sign-in gate, or after an element atom followed by a sign-in gate, should be colored using the secondary pillar variable. This applies to feature, standard, and comment article containers on both iOS and Android.

On iOS and Android, the article header height should be set to zero in feature, standard, and comment article containers.

The furniture wrapper in these containers should have top padding of 4 pixels and horizontal padding of 10 pixels. The content labels within should use a bold, serif font family, be colored with the new pillar variable, and have capitalized text.

Headlines within the furniture wrapper should be 32 pixels in size, bold, have a bottom padding of 12 pixels, and use the color #121212.

Image elements inside the furniture wrapper should be positioned relatively, have a top margin of 14 pixels, a left margin of -10 pixels, a width calculated as the viewport width minus the scrollbar width, and an automatic height. This applies to the inner figure, image, and link elements within feature article containers on iOS.For iOS and Android devices, images within article containers are set to have a transparent background, with a width equal to the full viewport width minus the scrollbar width, and an automatic height.

The standfirst section in these containers has a top padding of 4 pixels, a bottom padding of 24 pixels, and a right margin of -10 pixels.

Paragraphs within the standfirst use the Guardian Headline font family.

Links inside the standfirst are styled with a specific color, an underline positioned 6 pixels from the text, and a decorative line color, with no border.For Android devices, when hovering over links in the comment article’s standfirst section, the underline color should match the new pillar color.

For both iOS and Android devices, across feature, standard, and comment articles, the meta section should have no margin. Within this meta section, the byline, author name, and related links should all be displayed in the new pillar color.

Additionally, the meta misc section should have no padding, and any SVG icons within it should use the new pillar color for their stroke.

For showcase elements in feature, standard, and comment articles on both iOS and Android, the caption button should be displayed as a flex container. It should be centered with 5px padding, measure 28px by 28px, and align its content to the right.On iOS and Android devices, the article body in feature, standard, and comment sections has no side padding. For non-thumbnail, non-immersive images within these articles, the figures have no margin, a width calculated from the viewport minus padding and scrollbar width, and an automatic height. Their captions have no padding. Immersive images span the full viewport width, accounting for the scrollbar. Blockquotes styled with the “quoted” class use a specific color for their decorative element. Links within the article body are colored according to the primary theme, feature an underline with a set offset and color, and have no background image. On hover, the underline color changes to a different theme color.@media (prefers-color-scheme: dark) {
body.ios #feature-article-container .furniture-wrapper,
body.ios #standard-article-container .furniture-wrapper,
body.ios #comment-article-container .furniture-wrapper,
body.android #feature-article-container .furniture-wrapper,
body.android #standard-article-container .furniture-wrapper,
body.android #comment-article-container .furniture-wrapper {
background-color: #1a1a1a;
}

body.ios #feature-article-container .furniture-wrapper .content__labels,
body.ios #standard-article-container .furniture-wrapper .content__labels,
body.ios #comment-article-container .furniture-wrapper .content__labels,
body.android #feature-article-container .furniture-wrapper .content__labels,
body.android #standard-article-container .furniture-wrapper .content__labels,
body.android #comment-article-container .furniture-wrapper .content__labels {
color: var(–new-pillar-colour);
}

body.ios #feature-article-container .furniture-wrapper h1.headline,
body.ios #standard-article-container .furniture-wrapper h1.headline,
body.ios #comment-article-container .furniture-wrapper h1.headline,
body.android #feature-article-container .furniture-wrapper h1.headline,
body.android #standard-article-container .furniture-wrapper h1.headline,
body.android #comment-article-container .furniture-wrapper h1.headline {
background-color: unset;
color: var(–headerBorder) !important;
}

body.ios #feature-article-container .furniture-wrapper .standfirst p,
body.ios #standard-article-container .furniture-wrapper .standfirst p,
body.ios #comment-article-container .furniture-wrapper .standfirst p,
body.android #feature-article-container .furniture-wrapper .standfirst p,
body.android #standard-article-container .furniture-wrapper .standfirst p,
body.android #comment-article-container .furniture-wrapper .standfirst p {
color: var(–headerBorder);
}

body.ios #feature-article-container .furniture-wrapper .standfirst a,
body.ios #standard-article-container .furniture-wrapper .standfirst a,
body.ios #comment-article-container .furniture-wrapper .standfirst a,
body.android #feature-article-container .furniture-wrapper .standfirst a,
body.android #standard-article-container .furniture-wrapper .standfirst a,
body.android #comment-article-container .furniture-wrapper .standfirst a,
body.ios #feature-article-container .furniture-wrapper .meta .byline__author,
body.ios #feature-article-container .furniture-wrapper .meta span.byline__author a,
body.ios #standard-article-container .furniture-wrapper .meta .byline__author,
body.ios #standard-article-container .furniture-wrapper .meta span.byline__author a,
body.ios #comment-article-container .furniture-wrapper .meta .byline__author,
body.ios #comment-article-container .furniture-wrapper .meta span.byline__author a,
body.android #feature-article-container .furniture-wrapper .meta .byline__author,
body.android #feature-article-container .furniture-wrapper .meta span.byline__author a,
body.android #standard-article-container .furniture-wrapper .meta .byline__author,
body.android #standard-article-container .furniture-wrapper .meta span.byline__author a,
body.android #comment-article-container .furniture-wrapper .meta .byline__author,
body.android #comment-article-container .furniture-wrapper .meta span.byline__author a {
color: var(–new-pillar-colour);
}

body.ios #feature-article-container .furniture-wrapper .meta__misc svg,
body.ios #standard-article-container .furniture-wrapper .meta__misc svg,
body.ios #comment-article-container .furniture-wrapper .meta__misc svg,
body.android #feature-article-container .furniture-wrapper .meta__misc svg,
body.android #standard-article-container .furniture-wrapper .meta__misc svg,
body.android #comment-article-container .furniture-wrapper .meta__misc svg {
stroke: var(–new-pillar-colour);
}

body.ios #feature-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.ios #standard-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.ios #comment-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.android #feature-article-container .furniture-wrapper figure.element-image.element–showcase figcaption {
/ Additional styling can be added here if needed /
}
}The text appears to be a block of CSS code, which is a styling language for web pages. It sets specific colors and background colors for different elements on a website, depending on the type of device (iOS or Android) and the type of article container being viewed. The code uses custom color variables like `–dateline` and `–new-pillar-colour`.This appears to be a CSS selector targeting the first letter of paragraphs in specific contexts. It applies to iOS and Android devices, within various article containers and body sections, following certain elements like `.element-atom`, `.sign-in-gate`, or `#sign-in-gate`.This CSS code defines styles for Android and iOS devices. It sets the first letter color in various article containers to white, adjusts padding and margins for comment sections, and formats headings. It also includes styles for caption buttons and dark mode preferences, ensuring a consistent background color across devices.The news about reading, especially among children, is troubling. A National Literacy Trust survey last year of over 100,000 young people aged 11 to 18 found that the number of children who read for pleasure is at its lowest since such records began. Only about a third say they actively enjoy reading, and the proportion who read daily in their free time has halved in the last twenty years—now fewer than one in five.

Whether we point to screens, social media, or a renewed focus on outdoor activities, the reality is clear: children are reading less and enjoying it less, with some even speaking of a “post-literate age” on the horizon. Yet books hold some of the finest, wisest, and most beautiful ideas humanity has produced, and children’s literature is rich with classics—old and new—waiting to be shared with new generations.

So which books can captivate your children during this National Year of Reading? I asked leading authors to suggest titles everyone should read (or have read to them) at least once—one for each year of life up to age 25. Think of it not as a strict plan, but as a buffet. These aren’t books to dutifully plod through, but to savor—titles we hope will spark or rekindle a love of reading. And of course, for every book included, many more could have made the list.

One: Peepo! by Janet and Allan Ahlberg
The Ahlbergs created many wonderful early-years books (like Each Peach Pear Plum and Burglar Bill), but Peepo! is a classic aimed squarely at the very young. It invites you to see through a baby’s eyes—and through the holes on each page—with detailed illustrations to explore. The nursery-rhyme rhythm is just right, and it’s interactive, delivering a joyful moment on every page when the adult reader repeats, to guaranteed giggles: “Peepo!”

Two: Goodnight Moon by Margaret Wise Brown and Clement Hurd
This seemingly simple story of a rabbit trying to fall asleep is endlessly rereadable and strangely haunting. With each reading, you notice more—it grows more mysterious and dreamlike. Figures come and go, the clock advances, the pictures on the wall tell their own tales, and the moon climbs the sky. When the reader says, “Goodnight nobody,” it sends a little shiver every time.

Three: Fox in Socks by Dr. Seuss
All of Dr. Seuss’s books have something to offer under-fives—the delightful chaos of The Cat in the Hat, the political satire of Yertle the Turtle, the culinary adventure of Green Eggs and Ham—but Fox in Socks, in my view, tops them all for pure linguistic energy. Those tongue-twisters! It shows the very young the joy and vitality that come from playing with the sounds of words.

Four: The Gruffalo by Julia Donaldson and Axel SchefflerAxel Scheffler’s signature story has it all: a flawless structure, lilting verse, great jokes, and a wonderful play of dramatic irony (though its young readers wouldn’t call it that). It strikes a perfect balance between comedy and what you might call “mild peril,” all brought to life by Scheffler’s exquisite illustrations. There’s a reason this modern trickster tale—modeled, as Donaldson has said, on a Chinese folktale—graces every worthy nursery bookshelf. It’s highly rereadable for both adults and children, and far more complex and puzzling than it first appears.

Five: Frog and Toad Together by Arnold Lobel
This book comes recommended by Julia Donaldson herself, who says: “My hero among children’s authors is Arnold Lobel, who created the wonderfully funny duo Frog and Toad. There are four books of stories about them, all ideal for beginner readers. Frog and Toad Together contains my favorite story, ‘The List,’ in which Toad makes a list of things to do and then refuses to do anything when the list blows away. (He can’t chase after it because that wasn’t on the list.) Arnold Lobel never seemed to run out of witty, inventive ideas; I wish I could be like that!”

Six: Just So Stories by Rudyard Kipling
Kipling’s fables, originally told as bedtime stories to his daughter Effie, are perhaps his most timeless works. With their sound effects, comic asides, bewitching surrealism, and lovely black-and-white illustrations, these stories still delight children when read aloud by a parent. Come, O best beloved, and join us by the great grey-green, greasy Limpopo River, all set about with fever-trees…

Seven: Tom’s Midnight Garden by Philippa Pearce
Pearce’s 1958 Carnegie Medal winner is as beautifully crafted and haunting a novel as you’ll find for a child to read independently. It tells the story of a boy who discovers that the yard of the house where he’s staying magically transforms into a grand Victorian garden in the middle of the night. Over successive visits, Tom befriends a girl named Hatty, but even in this time-slip novel, time is passing. The ending is emotionally powerful for both adults and children. As a bonus, Children’s Laureate Frank Cottrell-Boyce also recommends Pearce’s 1955 novel, Minnow on the Say.

Eight: Moominland Midwinter by Tove Jansson
The sixth Moomin book is the darkest in Tove Jansson’s series. It finds Moomintroll awake and alone while the rest of his family hibernates. How will he survive in this sunless, snowy landscape where it’s always cold? Everyone should read this, says Katherine Rundell, author of Impossible Creatures, “in order to face, at age eight, that we are both fundamentally alone in a harsh world and yet bound together by love.”

Nine: Journey to the River Sea by Eva Ibbotson
Children’s fiction critic Nicolette Jones says of this 2001 adventure, already a modern classic: “I know people who have gone to Manaus, or aspire to, just because they read this book. It’s about a girl in 1910 who finds freedom, love, and the joy of nature and different cultures after being sent to live with narrow-minded guardians in Brazil. It has an air-punching ending, with my favorite line: ‘Children must lead big lives… if it is in them to do so.'”

Ten: Treasure Island by Robert Louis Stevenson
Stevenson’s tale of piracy, treasure-hunting, skulduggery, and a wild enthusiasm for cheese feels as fresh and exciting now as it did to its first audiences in 1883. Long John Silver’s villainy is deeply compelling, and since everyone—heroes and villains alike—is in it for the money, the story emphasizes the thrill of adventure rather than moralizing lessons. As you follow the twists and turns…The twists in Jim Hawkins’s story—the Black Spot, the stockade, the drifting boat—are utterly captivating.

Philip Pullman’s Northern Lights masterfully explores profound ideas about morality, spirituality, and human fulfillment within a thrilling steampunk adventure, complete with armored bears, balloonists, witches, and scientist-magicians. It’s a storytelling triumph that draws young readers into its world, with the full series expanding its themes all the way to the brink of adulthood.

Alan Garner’s The Owl Service, a sublimely eerie tale of sexual tension and supernatural events in rural Wales, is perfectly suited for those entering their teenage years. It powerfully demonstrates how ancient myths can resonate within a modern setting, leaving readers with a dizzying sense of the universe’s vast and mysterious nature.

Sue Townsend’s The Secret Diary of Adrian Mole, Aged 13¾ offers a deeply truthful, funny, and poignant voice of adolescent angst, capturing the awkward yearnings of its hero with intimate humor.

Malorie Blackman’s Noughts and Crosses presents an alternate reality where dark-skinned “Crosses” historically dominate white “Noughts.” This operatic family saga brilliantly uses its premise to challenge assumptions about race, all within a gripping, entertaining story.

Rafik Schami’s A Handful of Stars, translated by Rika Lesser, provides a window into life under oppression through a Syrian boy who starts an underground newspaper. It’s a powerful story about resistance that resonates far beyond its setting.

Sylvia Plath’s The Bell Jar begins with one of modern fiction’s great opening lines, unfolding a story of chilly comedy and psychological horror. Its precise, glittering prose offers an unforgettable portrait of a young woman’s mental breakdown.

Kazuo Ishiguro’s Never Let Me Go is a boarding-school story unlike any other, weaving a haunting and deeply moving narrative.Ishiguro’s style is one of subtle hints and gentle misdirection. Profound emotion arises from the restrained surface of his writing, and the big questions catch you by surprise. Never Let Me Go uses a quietly unsettling science-fiction premise—a world the reader slowly comes to understand, where everything is fine for all the most horrifying reasons—to explore universal themes: what it means to grow up, to love, and to die. No one who reads it will easily forget it.

Eighteen: Beloved by Toni Morrison
Morrison’s 1987 Pulitzer Prize winner tells the heartbreaking story of a formerly enslaved woman after the American Civil War. It’s based on the true story of Margaret Garner, who tried to kill her children to save them from being returned to slavery. “Beloved is my vote for the truest Great American Novel,” says Katherine Rundell. “It has such power, strangeness, and profound humanity. To read it as a teenager is to encounter it when your imagination is most alive and ready to meet its passion and fierce clarity.”

Nineteen: Slaughterhouse-Five by Kurt Vonnegut
“Listen: Billy Pilgrim has come unstuck in time.” Vonnegut’s surreal, science-fiction reimagining of his experiences as a prisoner of war during the firebombing of Dresden is unlike anything else. It manages to be deeply wise and moving while also being riotously funny. It’s a lesson—especially useful for serious older teens—in how art can transform suffering, even the most horrific kind. As the birds in the book say: “Poo-tee-weet?” What else is there to say?

Twenty: The Devil in the Flesh by Raymond Radiguet, translated by Christopher Moncrieff
Rosen recommends French novelist Raymond Radiguet’s 1923 Le Diable au corps, translated as The Devil in the Flesh. This story of a married woman’s affair with a teenage boy is one for older younger readers. “An illicit romance during the First World War,” says Rosen, “wrapped in intrigue over whether it’s a roman à clef for the author. Probably. Which makes it all the more intriguing.”

Twenty-one: Four Quartets by T.S. Eliot
The crystalline perfection of Eliot’s linked sequence of long poems, along with their endlessly quotable lines, makes them a companion for life. Read and reread them; the effort is rewarding. Here is a theory of history, spirituality, life, aging, and death, wrapped in exquisite language, full of drama and grandeur, and infused with a feeling for the beauty and sadness of human existence. It might help to keep Hugh Kenner’s clear explanation in The Invisible Poet nearby as a guide.

Twenty-two: Emma by Jane Austen
One of Austen’s many strengths is that you can enjoy her from your early teens and reread her later to discover things you missed the first time. But Emma, with its brilliantly subtle way of misleading the reader and its flawed, irritable heroine—Austen said she wanted to create a character only she would like—is a novel that truly shines in early adulthood. Emma’s moment of shame on Box Hill—”It was badly done, indeed!”—marks a transition from childish self-absorption to an adult awareness of regret.

Twenty-three: The Handmaid’s Tale by Margaret Atwood
Atwood’s 1985 novel about the cruelty of a Christian fundamentalist patriarchy has only grown more essential over time. It imagines a world where a military theocracy strips women of the rights to own property, read, or write, and removes their reproductive autonomy entirely. It’s tense, exciting, and teaches a moral lesson that shouldn’t still be necessary—but apparently is.

Twenty-four: White Noise by Don DeLillo
This book is so much fun I couldn’t leave it out. And in a way, it’s prophetic—capturing the absurdities of a media-saturated culture.Simulation overtakes reality in this novel. Its unique appeal lies in blending madcap intellectual comedy with a genuine tenderness—often more subtle in DeLillo’s work—toward family life and relationships.

Twenty-five: Middlemarch by George Eliot
You’re an adult now. It’s time to read what is arguably the most mature novel in the English language, and certainly one of the finest. It unfolds slowly—you need to settle into its rhythm—but it is profoundly rich, artful, wise, forgiving, perceptive, funny, and moving. The residents of this small town will stay with readers for life, and their influence, as Eliot wrote, will be “incalculably diffusive.” George Eliot shows you—or, if you’ve been diligent about reading a great book each year, reminds you—just what a novel can achieve.

The Haunted Wood: A History of Childhood Reading by Sam Leith is published by Oneworld. To support the Guardian, order your copy at guardianbookshop.com. To browse all books on the “25 books to read before you’re 25” list, visit guardianbookshop.com. Delivery charges may apply.

Frequently Asked Questions
Of course Here is a list of FAQs about From Peepo to Middlemarch 25 MustRead Books Before Youre 25 designed to sound like questions from a real reader

General Concept Questions

Q What exactly is this list Is it a physical book
A Its a curated reading list often presented as an article or a guide The title suggests its a journey from a classic childrens board book to a complex Victorian novel outlining 25 impactful books to read in your youth

Q Who created this list and why
A While the exact originator can vary lists like this are typically created by literary critics educators or publications The goal is to recommend books that offer formative experiences broaden perspectives and build a foundational love of reading before adulthood

Q Do I have to read these before I turn 25
A Absolutely not The before 25 framing is a motivational hook These books are valuable at any age The idea is that reading them earlier can shape your worldview as youre forming your own ideas and identity

Content Selection Questions

Q What kinds of books are on the list
A You can expect a mix of genres and eras childrens classics young adult fiction seminal novels poetry drama and nonfiction It aims to cover comingofage stories social commentaries and philosophical works that resonate with a young adults experiences

Q Can you give me some examples of books that might be on it
A Based on the titles theme likely examples include The Catcher in the Rye To Kill a Mockingbird 1984 The Bell Jar Persepolis and One Hundred Years of Solitude Middlemarch as the finale represents a deep dive into complex human relationships

Q Why is Peepo on a list for people up to age 25
A