Programming is like writing a book. Both programs and books are written in a language, e.g. Datalog or Tagalog, but the similarity goes deeper than that. Imagine that you must write a book with the subject "a man walks his dog". There are endless ways to write that book, but only a few of them will become good books. Similarly, imagine that you must write a program that adds two numbers together. There are infinitely many ways program that accomplish the task, but only a few of these are good programs. We cannot judge a programmer’s abilities solely on whether the unit tests pass, nor can we judge an author’s abilities solely on whether the book adheres to the subject.