On Programming

Programming, it turns out, is hard. The fundamental rules are typically simple and clear -but programs, while built on top of these basic rules, tend to become complex enough to introduce their own rules and complexity. Because of this, programming is rarely simple or predictable. As Donald Knuth, who is something of a founding father of the field, says, it is an art rather than a science.

Marijn Haverbeje, in Eloquent JavaScript.