Best way is to practice as much as you can. Better if you can go to homecountry of the language at least for a few months. And for vocabulary, there are good online applications like memrise. You can memorise many common words using those applications.
For language learning you have to live in the country in which the language is used. I think that in order to freely talk will take a year. But honestly say that I have a friend who lives already 15 years in America and still not learned English.