TechniqueSoftware engineering located
In dynamic programming the hard part is finding the subproblem, not the memoisation
Find the subproblem and the recurrence first; the implementation is mechanical once the structure is clear.
Coding interviews, and any problem whose difficulty is in the decomposition.