# What a Framework Even Is

You've learned a language. Now every job posting, tutorial, and senior developer is throwing framework
names at you - React, Spring, Django, Rails, Express - as if you're supposed to already know what they
are and which to pick. The word "framework" gets used like everyone agrees on its meaning, and nobody
ever stops to explain the thing itself.

This guide stops to explain it. Before you learn any *specific* framework, it's worth understanding what
a framework *is* as a category - because once that clicks, every framework you meet afterward becomes a
variation on a theme you already understand, instead of a new universe to memorize. We'll build the mental
model first: what a framework actually is, why the whole idea exists, what it quietly costs you, the small
set of parts nearly every framework has, and how to walk up to an unfamiliar one and learn it in days
instead of months.

> 📝 This guide is **language-agnostic** - it's about the *idea* of frameworks. The framework guides that
> follow are organized by language (and you'll want the matching language first: there's no point learning
> a Python framework before [Python](/guides/python-from-zero)). This is the map you read before any of them.

## How to read this

Read it in order - it's short, and each phase builds the one mental model. There's almost no code to type;
this is a *thinking* guide. By the end you'll be able to look at any framework and immediately ask the
right questions instead of feeling lost.

## The phases

1. **[Framework vs Library - Who Calls Whom](01-framework-vs-library.md)** 🟢 - the one distinction that defines the whole category: inversion of control.
2. **[Why Frameworks Exist](02-why-frameworks-exist.md)** 🟢 - the real problems they solve, and why teams reach for them.
3. **[The Price of Magic](03-the-price-of-magic.md)** 🟡 - lock-in, learning curves, debugging through layers, and when *not* to use one.
4. **[The Anatomy of (Almost) Any Framework](04-the-anatomy-of-any-framework.md)** 🟡 - the handful of parts that show up everywhere, so the next framework is faster than the last.
5. **[Choosing & Learning a Framework](05-choosing-and-learning-a-framework.md)** 🟢 - popular vs battle-tested vs "roots," and a repeatable way to learn any of them fast.

> The framework guides in this category are grouped into three tiers - **popular** (most jobs),
> **battle-tested** (less hype, still employable), and **roots** (what the popular ones are built on, to
> kill the magic). Phase 5 explains how to use those tiers.
