Specializing In Game Development

Actually, I think the best course for you would be working in all of these areas.

What I want to say is simple: The best teacher is yourself and asking the right questions is the objective you want to follow. When you learned to program, I assume you knew, which question to ask and searched for a solution. Personally I had always problems with tutorials, because I couldn’t grasp the essence, what people tried to tell me. I always ended up doing trial and error, which helped me a ton.

I would make a priority order and go from there.
Which area do you like the most or which area would you choose, if it were a head-to-head race?
If you know the answer (which I can’t give you), you know in which area you should spent most time in. That doesn’t mean you can’t work in other areas. You just invest most of the time in the top priority area, the second most time in the next area you like and so on. With this work order you will likely excel in your main priority area at some point, but you won’t lose experience in the other areas. You will gain knowledge in all the areas, but you could work in a company, if you need a job. It all comes down to your time management and you have to accept the strain you are putting on yourself. You also need to keep up your ambition, which is the most difficult thing to do. I am talking out of experience, because I always wanted to create things just by myself. Strangely enough I am not an egomaniac, but I always liked the freedom of making things when I want to do them, not when they were demanded from others.

I hope I somewhat could be of help. I hope I even made sense :).