Before the more technical lessons ahead, a few concrete before/after examples make "good UX" tangible instead of abstract — it's something noticeable in ordinary daily use, once you know what to look for.
| Situation | Bad UX | Good UX |
|---|---|---|
| Deleting something important | Instantly deletes with no confirmation — one misclick, gone forever | A brief confirmation ("Delete this? Can't be undone") for anything irreversible |
| A form field with an error | "Error: invalid input" with no indication of which field or why | The specific field is highlighted with a clear reason: "Email must include an @" |
| A loading state | A frozen screen with no feedback — looks broken | A spinner or skeleton screen, so the user knows something is happening |
| A long form | All fields required, no indication of progress | Marked optional fields, and a progress indicator on multi-step forms |
| Search with no results | A blank page with no explanation | "No results for 'xyz' — try a broader search" plus a suggestion |
Every "good UX" example above does the same thing: it tells the user what's happening, what went wrong, or what to do next, instead of leaving them to guess. Bad UX isn't usually about ugly visuals — it's about silence at the exact moment a user needs information.
Practice this everywhere, not just in class
A useful daily exercise: notice one frustrating moment in any app used today, and name specifically what information was missing at that moment. That's the beginning of a UX eye.