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.
Im wondering what that friend does in life, maybe he live in the woods. With basic human intercourse, going to store, talking to cashier, going to work, football game, watching tv... You should be able to learn English in a year. I know dialect can be problem depending on where he come from, but still...