TL;DR
Design patterns are solutions to common problems in code structure. Some patterns (Observer, Singleton, Factory) solve real problems and show up everywhere. Others (Abstract Factory, Chain of Responsibility) are over-engineered for most codebases. Know the useful ones and skip the rest.