This is a good question. I’ll try to be thorough but also not go on forever, because I could.
First, because everybody has a different idea of what speaking a language is or what “fluent” is. Let’s create a few levels to make all of this easier to explain:
Level 0 - You don’t know a damn thing. People might as well be speaking Klingon for all you know.
Level 1 (Basic) - Low-level stuff: hello, thank you, please, ask for directions, names of foods, etc. You can have slow, jerky, basic conversations as long as the topics are really simple and the person you’re talking to doesn’t mind having the conversation of a five-year-old.
Level 2 (Conversational) - You can have a solid conversation with locals one-on-one. You understand most of what’s said around you, or at least get the gist. You can make a few jokes, but you still find that your use of the language is slower than your mind. You get lost in big group conversations.
Level 3 (Conversationally Fluent) - You can have a pretty fluent conversation in 90+% of situations without too many mistakes. You can take part in group conversations without getting lost. You can make jokes. You can read anything that isn’t super technical or heavy literature.
Level 4 (Fluent) - You can speak without thinking. You dream in the language. You can read and talk about almost anything without hesitation. You still make mistakes occasionally, but they’re so few and far between that basically nobody notices anymore.
Going From Level 0 to Level 1
- This is basically just memorization and practice. Which means courses are good tools and you can use anything.
- Duolingo.com is my favorite for this. It’s a gamified way to learn basic vocabulary and practice. Pimsleur is another good one (audio recordings). Flashcards can work.
- I don’t recommend classes. They’re really inefficient uses of both time and money.
- With some regular study (an hour per day), you can reach Level 1 within a week or two.
Going from Level 1 to Level 2
- The courses really stop being useful here. Now you need to get practice speaking the language and constructing sentences on the fly.
- Best way to get through this level is with a personal tutor and one-on-one sessions. The sessions should focus primarily on grammar and conversation.
- All new vocabulary should come through conversation. Keep a dictionary on your phone and note down every new word you have to look up. Go back and study them before bed. Construct sentences with them.
- If you do this, you should see rapid progress. The more hours of conversation the better. The more intense the better. If you do 4-5 hours of tutoring per day, you can be a Level 2 speaker within a month.
Getting From Level 2 to Level 3
- This is where the immersion is necessary. To get to the next level – conversational fluency – you need to be surrounded by locals, partying with locals, going to dinner with locals, hanging out at weddings with locals, all in their own language.
- Tutoring can still help you through this. Duolingo and courses can still keep you fresh, in case you leave the country for a while, but nothing gets you through this level other than immersion, in my experience.
- The reason is because these are the conversations you can’t have any other way than with people you know and have met. This is where you talk about local politics, economics, how you felt about your ex-girlfriend’s little sister, and so on.
- In my experience, it takes multiple months (3-6) to move through this level, minimum. More if you’re not in the country.
Getting from Level 3 to Level 4
- I’ve never really solidly been Level 4 at any language and honestly I don’t see why most people would want to, unless you plan on living in a country really long-term or doing some serious study/business in that language.
- To get to this level, you ironically need to get back to studying. This is where you learn all of the obscure grammar that is rarely used, highly technical language, obscure historical references and slang.
- From what I’ve heard, it takes a couple more years to get to this level.
Here are a couple articles from my site about language learning:
22 Tips for Learning a Foreign Language
The Four Accelerators for Language and Life
And to answer your other questions. I chose Spanish because I had studied it some in college and I planned on spending a lot of time in Latin countries. I chose Portuguese because it was closely related to Spanish and I ended up living in Brazil for over a year. My girlfriend is also Brazilian, which helped.
I’ve also studied Russian and little bits of German and French.