the fiber product of schemes
Whenever you have two schemes X and Y both mapping down to a common base scheme S, you would like to form their 'product relative to S' — the scheme that simultaneously remembers a point of X and a point of Y lying over the SAME point of S. This is the fiber product X times_S Y. It is the single most useful construction for relating schemes: it builds intersections, fibers of a map, base change to a new ground ring, and the ordinary product all from one universal recipe.
Precisely, given morphisms f: X -> S and g: Y -> S, the fiber product is a scheme X times_S Y with two projections to X and to Y commuting with f and g, characterized by a universal property: any scheme T with maps to X and to Y that agree after composing down to S factors uniquely through X times_S Y. Existence reduces to the affine case, where it is pure algebra: if X = Spec B, Y = Spec C, S = Spec A, then X times_S Y = Spec(B tensor_A C), the spectrum of the tensor product of rings over A. The general case is glued from these affine pieces. Two special cases dominate practice. Taking S = Spec Z (or the final scheme) gives the absolute product X times Y. Taking Y = Spec k(s) -> S to be a single point s of S gives the FIBER X_s = f^{-1}(s) of the morphism f over s, with its natural scheme structure — this is the geometric meaning of the name.
Fiber products are how families of schemes are studied: a morphism f: X -> S is viewed as a family of schemes (its fibers X_s) parameterized by S, and base change along S' -> S produces a new family X times_S S'. Changing the ground field from k to a bigger field is base change; reducing an arithmetic scheme over Z modulo a prime p is the fiber over (p) in Spec Z. One honest caution that trips everyone: the fiber product over a field can behave unexpectedly because the tensor product B tensor_k C may have nilpotents or fail to be reduced even when B and C are nice. The classic example is Spec C tensor_R Spec C: over the reals, C tensor_R C is isomorphic to C x C, so the 'fiber product' of a one-point scheme with itself over R is TWO points, not one. The set-theoretic fiber is not the scheme-theoretic fiber; the structure sheaf of X times_S Y genuinely depends on the ring-theoretic tensor product, nilpotents and all.
To find the fiber of the map A^1_Z = Spec Z[x] -> Spec Z over the prime p, base change by Spec F_p -> Spec Z: the fiber is Spec(Z[x] tensor_Z F_p) = Spec F_p[x], the affine line over F_p. So 'reduce the integer polynomial ring mod p' is literally the scheme-theoretic fiber over (p) — geometry and arithmetic are the same operation.
Reduction mod p is base change: the fiber of A^1_Z over (p) is A^1 over F_p.
The underlying set of X times_S Y is NOT the set-theoretic fiber product, and the structure sheaf can pick up nilpotents: C tensor_R C = C x C makes a one-point fiber product over R into two points. Scheme-theoretic fibers are subtler than naive preimages.