Symbolic dynamics is a mature yet rapidly developing area of dynamical systems. It has established strong connections with many areas, including linear algebra, graph theory, probability, group theory, and the theory of computation, as well as data storage, statistical mechanics, and $C^*$-algebras. This Second Edition maintains the introductory character of the original 1995 edition as a general textbook on symbolic dynamics and its applications to coding. It is written at an elementary level and aimed at students, well-established researchers, and experts in mathematics, electrical engineering, and computer science. Topics are carefully developed and motivated with many illustrative examples. There are more than 500 exercises to test the reader's understanding. In addition to a chapter in the First Edition on advanced topics and a comprehensive bibliography, the Second Edition includes a detailed Addendum, with companion bibliography, describing major developments and new research directions since publication of the First Edition.