The obligatory rite of passage for every programmers learning