This document provides information on how to build your own programming language. It discusses why someone would want to learn how to build a programming language, including to better understand computers and existing languages. It also outlines some of the key components involved, such as lexers, parsers, compilers, interpreters, grammars, and ASTs. The document recommends starting simply, such as with domain-specific languages or template languages, and provides several resources for learning more about building programming languages.