The Creative Programmer Mind-SetThe Defensive Programmer Mind-SetThe Eight Defensive Programmer StrategiesApplying the Eight StrategiesNever Trust InputPrevent ErrorsFail Early and OpenlyDocument AssumptionsPrevention over DocumentationAutomate EverythingSimplify and ClarifyQuestion AuthorityOrder Is Not ImportantExtra Credit