Sub-Riemannian geometry is the geometry of a world with nonholonomic constraints. In such a world, one can move, send and receive information only in certain admissible directions but eventually can reach every position from any other. In the last two decades sub-Riemannian geometry has emerged as an independent research domain impacting on several areas of pure and applied mathematics, with applications to many areas such as quantum control, Hamiltonian dynamics, robotics and Lie theory. This comprehensive introduction proceeds from classical topics to cutting-edge theory and applications, assuming only standard knowledge of calculus, linear algebra and differential equations. The book may serve as a basis for an introductory course in Riemannian geometry or an advanced course in sub-Riemannian geometry, covering elements of Hamiltonian dynamics, integrable systems and Lie theory. It will also be a valuable reference source for researchers in various disciplines.