Dessert is the sweet course eaten at the end of a meal, full stop. Pudding is trickier: in British English it can mean the whole dessert course ('What's for pudding?'), a specific soft, creamy sweet like rice pudding, or even a savoury dish such as black pudding. If you are American, 'pudding' almost always means the creamy dessert; if you are British, it might mean any of the three.
The core difference
Dessert names the sweet course itself, while pudding is a broader British word that can mean that course, a particular creamy sweet, or a savoury dish entirely.
- dessert — the sweet course served at the end of a meal: We had chocolate cake for dessert.
- pudding — in British usage, either the dessert course generally (What's for pudding tonight?) or a specific soft, milk- or egg-based sweet (The rice pudding was still warm from the oven.)
- pudding (savoury) — a dish such as a type of sausage made from suet, blood, or meat: Black pudding is a traditional part of a full English breakfast.
How to tell them apart
The easiest way to keep these straight is to think of dessert as the slot on the menu and pudding as one of several things that can fill it. In American English, dessert is simply the sweet course, and pudding is one specific dish within it: a thick, creamy, cooked sweet like chocolate or vanilla pudding. In British English, pudding does double duty. Ask a British host 'what's for pudding?' and they mean the whole dessert course, whatever it turns out to be, whether that is cake, fruit, or an actual pudding.
The real trap for learners is the savoury exception. Not every pudding is sweet: black pudding, a blood sausage served at breakfast, and Yorkshire pudding, a savoury batter dish, both use the word pudding without any dessert connection at all. If you see 'pudding' on a British menu, check whether it is sitting in the starters, mains, or desserts section before you assume it is something sweet.