Well the best way is to practice as much as you can. For example when I was still young I mastered English by frequenting english sites and using it alot (accompanied with some studies). Right now I'm starting German from scratch using Duolingo, and it is quiet helpful! Of course you must study as much as possible. Other than that I've tried a few other apps and books. But now I'm gonna give Rosetta Stone a try (it seems good).