Language learning is one of my favourite subjects and one that I've been reading up a lot on recently. Here's some more general strategies rather than specific resources, from the notes I've been taking:
- Try to get the same sort of input infants get - interactive, highly repetitive and patterned. That's optimal for language learning.
- Repeat at spaced intervals, and organise the material. You can organise by looking for patterns in words, or by making up sentences containing a word, etc. Personalise the words and make them yours. Having an affective reaction to the word ("I like the sound of this word") can also help you remember.
- For recalcitrant words, use mnemonic techniques. The best strategy is the keyword technique, e.g. to remember the Spanish "caerse" (to fall (down)) you could say "He fell down and cursed". Try to make it something you can visualise.
- Reading books you like and choose to read on your own accord is as good as in-class vocabulary instruction (at least for L1 acquisition - there's been less research on reading in L2 acquisition). But, you need to be able to read at least 95% of the words to not get frustrated at having to look everything up in the dictionary. Of course, if you're passionate about whatever you're reading, you could know 10% and still plough through it.
- Listen to music. A tune + words is much easier to learn than words alone. From that, you can memorise and reuse sentence structures and new words. Also, popular music tends to use more colloquial expressions, which helps to learn informal language not covered by textbooks.
Personally, I've been learning Japanese recently and have learned more just from a textbook, watching anime/drama and reading manga than in the equivalent year of classroom Arabic I took - subjectively speaking. Some specific things I've been doing that seem to have helped:
- I've been using Anki for spaced repetition vocabulary practice. It's a great piece of open-source software.
- I tend to re-watch specific scenes that I enjoy after a few weeks. I've usually learned something more to better understand what's being said in the interim, which reinforces the usage of the sentence structures and vocabulary used.
- Similarly, I've been reading manga first in English and then in the original. I more or less know from my previous reading and the visual context what they said, so I can work out what each word should mean without looking them up individually.
- I've been writing diaries on lang-8.com and getting them corrected by native speakers. It's a helpful, friendly community, probably quite like LiveMocha but I've never tried the latter. It's focused on writing rather than connecting for conversations on Skype.
- I've been going for the local Japanese language meetup. It's not bad especially when you get a Japanese person who actually will let you practise your Japanese rather than always respond to you in English.
Bottom line, the fact that you're learning Spanish because you want to is your biggest asset. It'll carry you through most of the difficulties of learning a language. Try to expose yourself to material just a little bit beyond what you already know, so you're learning something and not getting frustrated. Whether you call it "flow" (Csikszentmihalyi) or "i+1" (Stephen Krashen) or just plain common sense, it works.