Surprisingly many problems in enumerative geometry can be approached by the method of assigning characteristic classes to varieties. We will explore these characteristic classes in different settings: singularities, matroids, quivers, and more. In addition to their original context - enumerative geometry - the characteristic classes appear in a variety of other fields including combinatorics, algebra, and most recently, in string theory.