Books
David Kahn; The Codebreakers - The Story of Secret Writing:
link
Jonathan Katz, Yehuda Lindell; Introduction to Modern Cryptography:
link
Al Sweigart; Cracking Codes with Python:
link