The tensor product of two objects in a monoidal category is characterized by a universal property: Hom(A ⊗ B, C) ≅ Bilin(A × B, C), where Bilin denotes bilinear morphisms. Tensor products formalize the notion of free algebra on generators and are definable in any monoidal category. They carry monoidal structure from their factors and interact naturally with functors that preserve the monoidal structure.
Begin with tensor products in abelian groups and vector spaces, verifying the bilinear universal property. Compute tensor products of finite abelian groups and polynomial rings. Study how tensor products interact with limits and colimits.
Tensor product is not Cartesian product—it is right adjoint to hom in the appropriate monoidal category. Not every category admits a tensor product structure. Tensor products of categories (as opposed to objects within a monoidal category) follow different rules.
You already know from your study of monoidal categories that a monoidal category (C, ⊗, I) has a bifunctor ⊗ playing the role of "multiplication" on objects. The tensor product of two objects A ⊗ B is an abstract construction defined not by what it is made of internally, but by how morphisms out of it behave. This is the universal property approach you encountered with limits and colimits: instead of defining A ⊗ B by construction, you characterize it by what it represents.
In the case of abelian groups, the tensor product A ⊗_ℤ B is the group that represents bilinear maps out of A × B. A bilinear map f: A × B → C is one that is a group homomorphism in each argument separately when the other is held fixed. The universal property says: there is a bilinear map φ: A × B → A ⊗ B such that every bilinear map f: A × B → C factors uniquely through φ as a group homomorphism A ⊗ B → C. In formula: Hom_Ab(A ⊗ B, C) ≅ Bilin(A × B, C), naturally in C. This is the defining adjunction. Elements of A ⊗ B are generated by simple tensors a ⊗ b, subject to bilinearity relations: (a + a') ⊗ b = a ⊗ b + a' ⊗ b, and a ⊗ (b + b') = a ⊗ b + a ⊗ b'. The tensor product is the quotient of the free abelian group on symbols a ⊗ b by these relations.
In a general monoidal category, the tensor product is simply the monoidal bifunctor ⊗ with whatever universal properties it satisfies in that context. In a symmetric monoidal category, there is also a natural isomorphism A ⊗ B ≅ B ⊗ A — the tensor product commutes up to isomorphism. In the category Vect_k of vector spaces over a field k, the tensor product V ⊗_k W has dimension dim(V) · dim(W) — the space of all formal linear combinations of simple tensors v ⊗ w, subject to bilinearity. The tensor product of two R-modules over a ring R is defined analogously, with the added constraint that r acts consistently on both factors: (v·r) ⊗ w = v ⊗ (r·w).
The interaction of tensor products with limits and colimits is subtle but important. Tensor product is right adjoint to the internal hom functor in closed monoidal categories: A ⊗ - is left adjoint to Hom(A, -). This adjunction generalizes the one in cartesian closed categories (where ⊗ is the categorical product). Because left adjoints preserve colimits, the tensor product distributes over colimits: A ⊗ (colim B_i) ≅ colim (A ⊗ B_i). In particular, A ⊗ - preserves coproducts and coequalizers. However, tensor product does not generally preserve limits — it fails to preserve products, and this failure is precisely captured by the Tor functor in homological algebra.
The failure of the tensor product to preserve exact sequences (specifically to preserve left-exactness) leads directly to derived functors. If 0 → A → B → C → 0 is a short exact sequence, applying M ⊗ - gives M ⊗ A → M ⊗ B → M ⊗ C → 0, which is right-exact but not generally left-exact. The kernel of M ⊗ A → M ⊗ B is measured by Tor_1(M, A) — the first derived functor of the tensor product. This is the bridge between tensor products and the homological algebra you have been building: the failure of tensor products to be exact is precisely what derived functors are designed to measure and control.