Software Architecture
Design Patterns You Will Actually Encounter: Factory, Strategy, Observer
Three patterns that appear constantly in real codebases - what problem each solves, what the structure looks like, and where you have already seen them.