is there some sort of a programming tutorial that isn't about writing code but about the concepts?
like db normalization, "mutually exclusive, collectively exhaustive" interfaces, encapsulation, abstraction, DRY, etc
how to THINK like a programmer. how to model problem domains