I've only seen two ways of seeing the tensor product: (1) for vector spaces, where one uses a basis, and (2) the universal property, that describes the point of the tensor product. This is the first hands-on-but-not-basis construction of the tensor product I've seen, and so I record it here. Let RR be the base ring. We are tensoring the modules MM and NN.

Any RR-module map map f:M×N→Of: M \times N \rightarrow O where OO is an RR-module extends by linearity into fF:F→Of_F: F \rightarrow O as fF(∑iri(x,y))≡rif(x,y)f_F(\sum_i r_i (x, y)) \equiv r_i f(x, y). We also have a map −/∼:F→T-/\sim : F \rightarrow T

 F=R^{MxN} →fF→ MxN →f→ O ↓               ↑ F/~             fT ↓               ↑ T=M(x)N →→fT→→→→*

For this diagram to commute, we need the fibers of (f∘fF):RMxN→O(f \circ f_F): R^{MxN} \rightarrow O to take constant values for each o∈Oo \in O. Unwrapping that condition implies that ff is bilinear. So, the condition fT(x⊗y)=f(x,y)f_T(x \otimes y) = f(x, y) uniquely determines fT(x⊗y)f_T(x \otimes y) if f(x,y)f(x, y) is bilinear. If not, the map fTf_T is ill-defined, as we cannot "kan extend" fFf_F along fTf_T.