This book is intended for senior undergraduate and first-year graduate students in materials science, physics, chemistry, and engineering who are approaching for the first time the study of materials at the atomic scale. The inspiring principle of the book is borrowed from one of the slogans of the Perl programming language, 'Easy things should be easy and hard things should be possible'. Following this philosophy, emphasis is placed on the unifying concepts, and on the frequent use of simple heuristic arguments to build on one's own intuition. The presentation style is somewhat cross disciplinary; an attempt is made to seamlessly combine materials science, quantum mechanics, electrodynamics, and numerical analysis, without using a compartmentalized approach. Each chapter is accompanied by an extensive set of references to the original scientific literature and by exercises where all key steps and final results are indicated in order to facilitate learning. This book can be used either as a complement to the quantum theory of materials, or as a primer in modern techniques of computational materials modelling using density functional theory.