I would not fret of remembering a syntax of any given language. With anything you don't use on a regular basis, it will fade.
The crucial part here is to learn the design principles and patterns that cross over into any language. Just because the implementation of the observer, factory, or insert any other pattern may vary from language to language, the goal and purpose of that pattern remains the same and this is where the biggest value comes from. Once you recognize that and recognize the importance of Single Responsibility and Separation of Concerns -- there really isn't any problem too big you can't solve regardless of the language's syntax.