The classical algorithm for solving is to write it as which can have nonzero solutions x only if . One shows inductively that is a polynomial in , and thus one has `reduced' the eigenvalue problem to a polynomial rootfinding problem. This has theoretical advantages: one learns immediately that an n by n matrix produces a polynomial of degree n in and thus that every n by n matrix has n complex eigenvalues, counting multiplicity. We also learn that there will be no radical expression for eigenvalues, in general, for . (There is, however, a general expression for the n=5 case in terms of elliptic functions; this is widely regarded as not being useful---but maybe that will be reconsidered).
But that's not the whole story, and indeed the case of multiple roots gets very complicated when we consider the eigenvectors x, and this leads to the theory of the Jordan Canonical Form.
But in fact it turns out that neither reducing the eigenvalue problem to a polynomial problem nor computing the Jordan Canonical Form is a good idea if there are errors or uncertainties in your matrix, as we will see in the recap of numerical linear algebra. If we are working with a purely mathematical problem, though, and there are no uncertainties in the matrix whatever, then perhaps both these computations make sense.