Design & Simulation
Problems where the task is to build a small system - a class that answers a sequence of method calls - rather than compute a single answer. The skill is choosing the right internal representation so that each operation stays cheap, and reasoning about edge cases and amortized cost across the whole call sequence. Starting with Array, Hash, where a plain list or index trick is all the state you need.