How Computer Programming Works, by Dan Appleman