This is an ongoing debate among educators. However, it is largely agreed upon that as much immersion as possible is best. In other words, a speaking class that is taught entirely in the target language, accompanied by an exchange program with native speakers etc. However, there is some degree to which this varies with learning styles. Some people can only learn vocabulary through association, some can only learn it through memorization. Some people can only learn grammar through context, others can only learn it through formulae. The key is to find and recognize your particular learning style and then seek out an appropriate program. Forcing yourself to learn in a style that doesn't suite you will not get you far and it will only waste your time and money. That said, keep in mind that learning a language requires pushing your boundaries and your comfort zone. It can be intimidating at times and require you to push yourself to new levels. Never reject a teaching technique just because it pushes you. On the other hand don't stick with a program that isn't working once you've given it your all.