For cohomology, there are some equivalent definitions when the object we consider is sufficiently nice. Since I mainly work with algebraic variety, I will restrict the objects I am considering to be algebraic variety. There are several ways I think of cohomology namely: - singular cohomology (valuation of simplices) - de Rham cohomology (differential form) - Chow ring (closed subvariety) I personal prefer thinking in the third way since it seems to be more geometric and easier for me to work with. However, for characteristic classes, I find it hard to visualize. I know the technical details about them and some of their useful properties but I just don't get a feeling of it. Since I usually work over complex number, I personally more interested in how people think of Chern class. Thank you!