The tensor product A ⊗ B is characterized by a universal property: it represents bilinear maps from A × B. Explicitly, Hom(A ⊗ B, C) is naturally isomorphic to Hom_bilinear(A × B, C). Tensor products exist in abelian categories and many others, providing a way to 'linearize' multilinear constructions and generalize tensor products of modules over a ring.
From your work with universal properties, you know the pattern: define an object by declaring what maps into or out of it must look like, and prove such an object exists and is unique up to unique isomorphism. The tensor product applies this pattern to solve a specific problem: how do you represent bilinear maps categorically?
The problem with bilinear maps is that they don't fit neatly into the framework you already have. The cartesian product A × B is the universal object for pairs of maps — given maps f: X → A and g: X → B, there is a unique map ⟨f, g⟩: X → A × B. But a bilinear map f: A × B → C is *not* a map out of the product in the categorical sense: it's linear in each variable separately, which means f(a + a', b) = f(a,b) + f(a',b) and f(λa, b) = λf(a,b), but f is not linear on the product as a whole. The product A × B conflates the two inputs by allowing arbitrary mixing; bilinearity requires a different structure.
The tensor product A ⊗ B is the universal solution: there is a canonical bilinear map ⊗: A × B → A ⊗ B (sending (a, b) to the pure tensor a ⊗ b) such that every bilinear map f: A × B → C factors uniquely through it as a *linear* map f̃: A ⊗ B → C with f = f̃ ∘ ⊗. In Hom-set language: Hom(A ⊗ B, C) ≅ Bilin(A × B, C), naturally in C. This isomorphism says the tensor product "linearizes" bilinearity — it converts the harder problem of tracking bilinear maps into the easier problem of tracking linear maps out of A ⊗ B.
Concretely, for vector spaces over a field k, if A has basis {eᵢ} and B has basis {fⱼ}, then A ⊗ B has basis {eᵢ ⊗ fⱼ}. A general element of A ⊗ B is a linear combination Σcᵢⱼ(eᵢ ⊗ fⱼ) — *not* necessarily a pure tensor a ⊗ b. The dimension of A ⊗ B is (dim A)(dim B). This is the same tensor product that appears in quantum mechanics (composite systems are described by tensor products of Hilbert spaces) and in differential geometry (tensor fields are sections of tensor products of the tangent and cotangent bundles). The categorical definition unifies all these appearances: they are all instances of the same universal property.
In the language of category theory, the tensor product makes the category into a monoidal category — a category equipped with a "multiplication" operation ⊗ on objects, a unit object (the field k, or the ring R, acting as the identity for ⊗), and coherent associativity and unit isomorphisms. The tensor product is thus not just a construction but the defining data of a richer categorical structure, one that formalizes the notion of "combining" objects in a way that respects linearity.