Programming is such a great combination of complexity and absolute certainty. Any one line of code is completely defined: a computer will do exactly what the code says. But determining the end result of a lot of code interacting is rather difficult, and this can make debugging code an emotional experience.