One of the fundamental properties of semiconductors is their ability to support highly tunable electric currents in the presence of electric fields or carrier concentration gradients. These properties are described by transport coefficients such as electron and hole mobilities. Over the last decades, our understanding of carrier mobilities has largely been shaped by experimental investigations and empirical models. Recently, advances in electronic structure methods for real materials have made it possible to study these properties with predictive accuracy and without resorting to empirical parameters. These new developments are unlocking exciting new opportunities, from exploring carrier transport in quantum matter to in silico designing new semiconductors with tailored transport properties. In this article, we review the most recent developments in the area of ab initio calculations of carrier mobilities of semiconductors. Our aim is threefold: to make this rapidly-growing research area accessible to a broad community of condensed-matter theorists and materials scientists; to identify key challenges that need to be addressed in order to increase the predictive power of these methods; and to identify new opportunities for increasing the impact of these computational methods on the science and technology of advanced materials. The review is organized in three parts. In the first part, we offer a brief historical overview of approaches to the calculation of carrier mobilities, and we establish the conceptual framework underlying modern ab initio approaches. We summarize the Boltzmann theory of carrier transport and we discuss its scope of applicability, merits, and limitations in the broader context of many-body Green's function approaches. We discuss recent implementations of the Boltzmann formalism within the context of density functional theory and many-body perturbation theory calculations, placing an emphasis on the key computational challenges and suggested solutions. In the second part of the article, we review applications of these methods to materials of current interest, from three-dimensional semiconductors to layered and two-dimensional materials. In particular, we discuss in detail recent investigations of classic materials such as silicon, diamond, gallium arsenide, gallium nitride, gallium oxide, and lead halide perovskites as well as low-dimensional semiconductors such as graphene, silicene, phosphorene, molybdenum disulfide, and indium selenide. We also review recent efforts toward high-throughput calculations of carrier transport. In the last part, we identify important classes of materials for which an ab initio study of carrier mobilities is warranted. We discuss the extension of the methodology to study topological quantum matter and materials for spintronics and we comment on the possibility of incorporating Berry-phase effects and many-body correlations beyond the standard Boltzmann formalism.