Learning to learn
Proper "chunking" of knowledge is like developing specialized modules in the brain so as to solve future problems. This can be true for studying programming. You have to properly "chunk" concepts like data structures and algorithms so as to access the plethora of algorithms that exist to model your problems so as to solve it with computation. You have to have a solid foundation and this foundation is built from "chunks". Decomposition of a problem requires a break down of a problem into subproblems that can be solved computationally.