Let me offer another definition not far from obstruction theory (as Ilya gave), but without referring to obstruction theory and thus more elementary.
Suppose for simplicity that $X$ is a simplicial complex, and the bundle $E$ is piecewise-linear (trivialized over each simplex, with transition maps over common faces which are linear) and of dimension $n$. First consider a piecewise-linear section on the $n$-skeleton of $X$ with isolated zeros (such sections are dense in the space of all sections). Then the Euler class, which is the $n$th SW class $w_n(E)$, is represented by the cochain whose value on an $n$-simplex $\sigma$ is the (mod-two) count of the zeros of that section on $\sigma$. Fun exercises: show this is a cocycle, and that different choices of sections give rise to cohomologous cocycles.
More generally, consider $i$ different sections over the $n-i+1$ skeleton which are linearly dependent at only a finite collection of points. The SW class $w_{n-i}$ evaluates on some $n-i$ simplex $\sigma$ as the count of the points of dependence of these sections.
I like to teach SW classes from this perspective first because it is an explicit, cochain-level definition and thus illustrates that there are good geometric reasons to consider cochains. But then I do like to go ahead and develop the classifying space perspective as well, using Milnor's axioms and uniqueness theorem to connect them. I conjecture (but cannot be sure) that at Milnor's time this kind of "dependence of sections" approach was widely known, so he could assume some of that familiarity as he stressed axiomatics.