Secrets of Making and Breaking Codes: A Hands-on Guide to Both Simple and Sophisticated Codes to Easily Help You Become a Codemaster