My English teacher used to always tell us - the best way to learn speaking English is to speak English. This formula turns out to be true in every case.
Me and my friends, from my class, used to play Cricket daily in the evening and twice on Sunday or holiday. We were in 5th or 6th standard when one day, we discussed that we were not upgrading our game and not learning anything new. We then decided to frame a rule of Roundarm balling. If someone wanted to ball fast, he would have to do it roundarm way or else throw slow. Initially, we were not able to control our ball with this new way but in some days, we learnt it good enough. Many of us were fans of cricket and knew all the theory already but we could not learn untill we did it.
I always applied this formula for learning any new skills, whether it be dance or programming. Theory is very very important as it builds up the concept but you won't have the exact idea untill you do it. Plus, theories are idealistic, you experience exactly what happens in the real world when you do.
So, the best way to learn anything is to do it.