Personally I see it as more like a puzzle. You start by finding that easy, well-loved corner bit, and then you have to mix and match more and more of the puzzle until you have the perfect result. If one little fragment is missing, it is not perfect and may be misprocessed by others:).

The other option is seeing it as being like algebra. I once had an algebra teacher who kept telling me, nope, you can not start to solve the problem by finding the solution, you need to simply do the very first step, and then the next... Programming is exactly like this as you need to have each little element working perfectly before anything further will do so. In algebra, one incorrect calculation and the whole thing falls apart. In programming it is just the same.