Atomic nuclei are quantum many-body systems of protons and neutrons held together by strong nuclear forces. Under the proper conditions, nuclei can break into two (sometimes three) fragments which will subsequently decay by emitting particles. This phenomenon is called nuclear fission. Since different fission events may produce different fragmentations, the end-products of all fissions that occurred in a small chemical sample of matter comprise hundreds of different isotopes, including α particles, together with a large number of emitted neutrons, photons, electrons and antineutrinos. The extraordinary complexity of this process, which happens at length scales of the order of a femtometer, mostly takes less than a femtosecond but is not entirely over until all the lingering β decays have completed – which can take years – is a fascinating window into the physics of atomic nuclei. While fission may be more naturally known in the context of its technological applications, it also plays a crucial role in the synthesis of heavy elements in astrophysical environments. In both cases, simulations are needed for the many systems or energies inaccessible to experiments in the laboratory. In this context, the level of accuracy and precision required poses formidable challenges to nuclear theory. The goal of this article is to provide a comprehensive overview of the theoretical methods employed in the description of nuclear fission.