1. Learn GoF design patterns. Be amazed by the cleverness.
2. While learning others languages, discover that other approaches remove the need for GoF design patterns at all.
Example: Visitor isn't needed in a language with double dispatch (like Lisp). Chain-of-Responsibility is just foldl. Factory for dependency injection is just a closure or a partial function. And so on.