I don't remember which pattern had the steepest learning curve for me, but the Bridge Pattern certainly took a while to click. It has quite a few moving parts, and the naming conventions can be a bit confusing when you're first learning it. My usual approach is to look at lots of examples, then map the implementation to a UML diagram so I can clearly identify the different components and their responsibilities. After that, I try to implement it myself as an exercise. The real test, though, is being able to recognise when a pattern is actually needed while designing or refactoring code. That's usually when the pattern truly starts to make sense.
