How to master Dynamic Programming? I am having hard times learning Dynamic Programming.

I looked around the web and found many tutorials with examples.

Each time I tried to figure out how to solve a new problem before looking at the solution my mind locked up and I could not continue trying...

I do not where to start!! For example, in divide and conquer I know how to start but In dynamic programming there is no a fixed starting point or at least (technique).

Last try I moved forward but I found that the solution was in a completely different direction.
Not sure why I can't just comment.  All I want to do is share a link:

http://people.csail.mit.edu/bdean/6.046/dp/

Or better yet:  Deciding on Sub-Problems for Dynamic Programming

This is a duplicate.