“Practical Cryptography for Developers” is a free book (with GitHub repository) by Svetlin Nakov, which aims at teaching developers some of the most practical concepts of cryptography. The book covers hashing functions, random generators, symmetric and asymmetric keys, digital signatures, and more. Each chapter is rich with diagrams, illustrations, code samples, as well as exercises.