Good programmers are good be cause we/they do it a lot. To become an expert at something, it takes about 10000 hours of practice. If you've been practicing learning, problem solving, math, software architecture, and abstraction you will get really good at that. If you've been practicing customizing pre-made package A for customer Z, you'll get really good at that instead.

The reason good programmers practice so much is because we/they enjoy it. Push yourself. Explore. Do new things. Then redo them until you really get it.