Don't forget about the two broadest programming methodology alternatives: Object-Oriented Programming (OOP) and Functional Programming (FP). Each has its own set of design patterns: OOP has the "The Gang of Four" -style patterns, FP has function composition -style patterns.
It is my personal feeling that the programming world is possibly slowly moving away from OOP and gravitating towards FP (especially when it comes to UI programming), due to FP's focus on ease of code comprehension and testability.
In the OOP-centric world, Rust comes to mind as a modern programming language that encourages consistent use of assorted OOP and FP patterns. In the FP-centric world, Elm comes to mind as a practical and straightforward programming language that uses FP patterns to solve web UI development problems.
For a book on OOP, see: https://en.wikipedia.org/wiki/Design_Patterns
For OOP design patterns in Rust, see: https://rust-unofficial.github.io/patterns/
For a book on FP, see: https://www.manning.com/books/grokking-simplicity
For FP design patterns in Elm, see: https://elmprogramming.com