Large systems of linear equations arise frequently in numerical analysis and are the basis of many models in engineering and other applied sciences. This work provides a systematic study for the solution of symmetric linear systems by iterative methods. The analysis centres around the problems encountered when solving indefinite systems, with more emphasis on the properties of the underlying polynomials rather than more conventional matrix manipulations. In particular, a development and discussion of the properties of orthogonal polynomials leads to a unified and complete analysis of methods for solving symmetric linear systems. For each of the numerical methods described a MATLAB implementation is provided. The codes are available on the Internet.