Event generators are an indispensable tool to properly analyze the data coming out of the LHC. In graduate school one typically learns how to perform perturbative calculations using Feynman diagrams and renormalization group evolution. While such perturbative calculations are the best way to obtain high precision results for a given observable, event generators are able to make the result of a calculation resemble real data as close as possible. The price of this generality is usually the accuracy of the obtained predictions. After introducing the notion of an event generator in very general terms, I will compare it to standard perturbative calculations. I will then show how one can make improvements to event generators such that they have accuracy similar to dedicated perturbative calculations.