The only way to be a good programmer, in spite of any innate talent you may have, is to practice writing programs. Programs that test the limits of your capabilities and beyond.
Writing the same program over and over will do little to improve your skill-set. It’s the challenges that make you grow. It’s the mind-set that you approach the field of programming that will make or break you.
Programming must have some attraction for you beyond the idea of making money in some well paid job or creating the new Facebook. You must get some form of satisfaction out of programming for its own sake otherwise it’s a chore and things that are a chore tend not to be done very well.