The problem of enumerating maps (a map is a set of polygonal "countries" on a world of a certain topology, not necessarily the plane or the sphere) is an important problem in mathematics and physics, and it has many applications ranging from statistical physics, geometry, particle physics, informatics, biology, ...etc. This problem has been studied by many communities of researchers, mostly combinatorists, probabilists, and physicists. In 1978+, physicists have invented a method called "matrix models" to address that problem, and many results have been obtained. Besides, another important problem in mathematics and physics (in particular string theory), is to count Riemann surfaces. Riemann surfaces of a given topology are parametrized by a finite number of real parameters (called moduli), and the moduli space is a finite dimensional compact manifold of complicated topology. The number of Riemann surfaces is the volume of that moduli space. More generally, an important problem in algebraic geometry is to characterize the moduli spaces, by computing not only their volumes, but also their intersection numbers. The so called Witten's conjecture (which was first proved by Kontsevich), was the assertion that Riemann surfaces can be obtained as limits of polygonal surfaces (maps), made of a very large number of very small polygons. In other words, the number of maps in a certain limit, should give the intersection numbers of moduli spaces. In this book, we show how that limit takes place. The goal of this book is to explain the "matrix model" method, to show the main results obtained with it, and to compare it with methods used in combinatorics (bijective proofs, Tutte's equations), or algebraic geometry (Mirzakhani's recursions). The book intends to be self-contained and pedagogical, and will provide comprehensive proofs, several examples, and will give the general formula for the enumeration of maps on surfaces of any topology. In the end, the link with more general topics such as algebraic geometry, string theory, will be discussed, and in particular we give a proof of the Witten-Kontsevich conjecture.