I think that the best way is to take a class or get some other form of instruction from a fluent speaker for the basics, and then just use newspapers, movies, music, webpages, novels... to progress. But yeah, nothing substitutes staying in the area where the language is spoken for extended amounts of time.