To my mind, the best way to learn any foreign language is to be put in the environment of the language. You have to train all the skills needed simultaneously. For example, you should not be practicing only your vocabulary or writing skills. You have to read in English, learn vocabulary and grammar, listen to native speakers and talk a lot! You have to absorb the culture and the language, it should come naturally. But the most important thing is grammar, it is like a foundation.
I do it like that, I have language classes, but also I read books in French/English, listen to the people speaking it, learn words and grammar, write a lot, like essays or merely translations.