We define the fundamental group of a topological space, which is one of the most fundamental topological invariants. One of the main tools for computing fundamental groups is the theory of covering spaces; we give a fast introduction and try to compute some fundamental groups in the end.