The answer depends very much on the specific skill you want to become.
Here are a few things to consider that will help you decide. The following post is my attempt to share with you some things that might be useful in your endeavors (I do NOT guarantee that they will make you a good developer).
What are the areas of your life that you feel you need to concentrate on?
What are the skills or skillsets that you want to develop?
Do you already have the skills needed to develop them?
If so, why do you think you need to start?
What do people around the world feel you are good at?
For these, you can pick up a book or a website. Or look around on Google. There really is no right or wrong answer, since anyone is free to come up with their own answers, and I am no exception (if you don’t know, the difference between computer science and programming is pretty obvious).
If you can tell yourself “I know these things. I have already done this, and it is something I want to be good at”, then you may or may not have this skill set at hand to do a good job of picking up this skill set (and that depends on where you’re coming from, so you might want to go into it with more than one idea).
It’s always a good idea to do your own research before signing an agreement, or writing out a plan for someone else.
Mostly just pick something you think you can do well. You will likely become good at it before you know you should.
If you can’t think of any way of improving yourself while you’re going through your own development, don’t worry though. If you think you want to learn more stuff you don’t have time or money for, you can do an internship. You can’t do an internship all the time unless you work in a corporate environment, but if you get the opportunity, it’s a great idea.
A really bad idea?
A really good idea?
And please, do your research. I am not a medical doctor, so I’d ask for my source if you ask.
There are countless skills and tools that could help you become a very good developer, so I’ll try to break something down.
What is the best skill at hand to become a good developer (in the areas you mentioned above)?