There is one thing I havent read here yet:
Its not only practice and study but most of it
is the will to become better! You have to actually want to become better.
There is one parallel I can think of to make it more clear:
Your whole (school-) life you have been learning and practising
"writing" - such as grammar/spelling/different types of text/...
Yet not everyone (including you), who does this, is a (good) writer..
The same applies to programming & programmers. There are many types
of em: Some like the beauty in it, some just do it because they have to
and want to get the job done, even though sloppily...
I think the best way to learn anything is to do it autodidacticly.
If you let anyone else (teacher?!) shove knowledge down your throat without
really being interested, the results will be just the same as how you learnt to write!
Try to not lose your interest.
Also, stop distracting yourself with such petty worries. Just start learning and practising ^^
To me it almost seems like procrastination xD
Oh btw, to your original question at how to actually get better in a fast and effective way:
Well, it just boils down to practising and learning, steadily! And trying out new stuff.
You can buy a book or two and get the basics down.
You should tackle some projects / ideas you think you "might" be able to do. There should
still be stuff thats new to you that you have to learn about as you go along. If you repeat this,
you will gain knowledge, little by little, over time. It will become invaluable experience!