Breaking down tasks into manageable modules for writing code

Hello Campers,
I have a very general problem that I am hoping to get some advice/direction on. With most of the challenges and projects, it is very difficult for me to understand how to breakdown the requirements (or user story) into a case that is small and manageable enough to effectively write code for.
For example, it took me 4 days to figure out the Exact Change Challenge. Someone helped me with the answer, and when I saw it - I realized this was much easier than I was making it. I realized I could have easily completed the challenge within 30 minutes to an hour if I had just approached the problem correctly.
SO…my question is this: Are there any rules of thumb or over-arching philosophies/approaches that can help with this? Are there any books or training materials out there which can help me to learn to break down requirements/problems properly with the goal of making the coding task easier?

I look forward to your replies.
Best regards,

I would start with Effective Thinking Through Mathematics course. While not strictly related to the programming, it’s an amazing course on general problem solving.
It’s listed in P1xt’s webdev guide, you might want to head there and check the list for some additional resources.