Technically first language, but didn't speak for years until I got over my fear by being an au pair in France and now practice at home and in Montreal.
Went to live in Ecuador for a year so I became fluent pretty quickly living with a host family, and now I have lots of Spanish speaking friends.
Podcasts, audio books, Duolingo, Memrise, listening to music.
A twice weekly class in Montreal for 4 months, but now I've forgotten some since going to Kenya.
I only know 200 basic phrases thanks to the Nemo language learning app.
I picked up some in Kenya in terms of really basic stuff but hope to take a class in the Fall of 2019.
There's no one-fits-all solution. I found the best way is to do full immersion, which I did for learning Spanish. If you can't access immersion, try going to language learning events in your city to practice casually. If you're not there yet, getting an ear is the first step so I recommend listening to podcasts and songs, and trying to decode what is being said. I started out only understanding 50% of Portuguese podcasts but now I listen to them and understand everything (even though I can't speak too well yet). Apps are a good way to break into the daily practice, but with languages like Arabic, apps will only get you so far. In person classes are good, but only if supplemented with daily practice on your own. You can't expect to learn if you don't put in the effort.