Types, and two approaches to problem solving by Dan Piponi.
From the post:
There are two broad approaches to problem solving that I see frequently in mathematics and computing. One is attacking a problem via subproblems, and another is attacking a problem via quotient problems. The former is well known though I’ll give some examples to make things clear. The latter can be harder to recognise but there is one example that just about everyone has known since infancy.
I don’t want to spoil Dan’s surprise so all I can say is go read the post!
An intuitive appreciation for types may help you with the full monty of types.