If i do not know how to code some problem i split it into smallest tasks i can think about. Then group them and try to generalize (find common parts) and make code that works for as many tasks as possible.
I prefer bottom up coding. However all those bottom functions/classes need to be flexible, so i can use same stuff later in different parts of project. When i have bunch of low level functions i usually start to see big picture and what i need next. Then at some point it is matter of connecting all those classes and functions together.
Not sure about your skill level in blueprints. But fundamental skills for that are blueprint communication, blueprint interfaces, inheritance. Those are tools that improve quality of your code and allow you to group similar code in single place. Then use it anywhere you need.
Just keep coding, you will get there.