The techniques on this site were to some degree designed to help people do good OO, but different techniques have different advantages. One of the most valuable techniques for learning OO is CRC cards . They were designed for that primary purpose, and designed to be deliberately different to traditional design techniques. Their accent on responsibilities and their lack of complex notation makes them particularly valuable. Interaction diagrams are very useful because they make the message structure very explicit, and as such can highlight over-centralized designs, where one object is doing all the work.
Class diagrams are both good and bad for learning objects.
They are comfortably similar to data models, and many of the principles that make a good data model make a good class model. The great problem is that it is easy to develop a class model that is very data oriented instead of responsibility oriented. Patterns are an extremely important technique for learning OO, for they get you concentrate on good OO designs and to learn by following an example. Once you have got the hang of some simple modeling techniques, such as simple class diagrams and interaction diagrams, it is time to start looking at patterns. Another important process technique is that evolutionary development .