And, Flying Spaghetti Monster be praised, know enough that designing a convoluted OOP hierarchy and diagramming out forests worth of UML diagrams is a terrible, terrible decision.
UML is pretty straight forward, and I rarely saw it being used in companies because of many reasons (spaghetti monster being the one :D), but I mentioned it because I'd expect that one showed now how to read them, since you will find them in literature (if you read any book on design patterns they are there).
Like unified modeling language?