In my experience spaced repetition is the best way to quickly learn new vocabulary and make sure you don't forget it any time soon.
Depending on how similar the target language is to your source language and how much time you're willing to put in, you can learn up to 50 or 100 new words a day.
For each language I'm learning, I try to find a good online dictionary and write a scraper for it, so I can import definitions of words into my flashcard collection as quickly as possible.
Knowing the most frequent 5000 words of a language is often enough to make sense of most texts. (Frequency dictionaries).
Blogs are a good way to learn how to read a new language.
Movies, first with English subtitles (or whatever your "source" language is), then with subtitles in the "target" language, then without any subtitles.
Of course, nothing beats the immersion of listening to and speaking with native speakers, but that's harder to do.
Movies / Peliculas
- También la Lluvia (Even the Rain)
Books / Libros
- Conhelo Paulo - El Alquimista
Websites / Sitios de Red