Recent results on the evolution of the genetic code are informally put in the context of Von Neumann’s theory of self-reproducing automata and the classical treatment of error-correcting codes in information theory. I discuss the sufficiency of genetic descriptions for self-reproduction. This implies a duality, a division of the information for maintenance and reproduction of organisms into two components, which is fundamental to life as we know it. The two components are programmatic and operational in nature, and they require the transmission and transduction of information to cooperate. In this context, I review recent results on the coevolution of genes and genetic codes. These results show how desirable informatic properties can evolve in systems of tapes and tape-players that are mutually co-dependent for their reproductive success.