After learning English, German and Japanese, I have experienced different ways of language teaching. Here is my preference and observation as the most efficient and effective way for me – a beginning to mid level language learner of a foreign language outside that country. I’d like to learn language as another science – we should learn, remember, apply and absorb the language.
First of all the language for learning and language for native speaker is like science and natural world- triangle is not created from Pythagorean theorem (you can draw a triangle anyway), but Pythagorean theorem is used to describe the structure of a triangle, and hence helps you to form the triangle you want. Hence when learning science a teacher tells you the formula first, and you remember and apply the rules, and later you absorbs it and use it instinctively. In language, native speakers naturally communicate before they learn the rules (grammar and vocabulary), and grammar and vocabulary are used to help a learner to structure and speak language like a native speaker.
With that said, language learning for me (again, beginning to mid level, outside native country) should involve – a well structured teaching -> repetitive practise to remember what’s taught -> apply it in conversations -> review and move onto next teaching session. Overtime I will naturally absorb the language (it’s never something overnight).
I’ve also had classes where teachers focus on small dialogs or encourage students to talk freely first and wish students to pick up language just by talking. This methodology might work well if I am in that country or I am an advanced learner already, but at the moment I personally think this is a waste of time (again beginning to mid level leaner outside that country). By a 15 mins talk every week or even every day I am not given enough examples and natural environment to conclude a grammar or vocabulary by myself, and too much random knowledge from free talk are not given sufficient practice to enhance and remember it.
Unfortunately there is no shortcut for language learning. For me picking up a language itself is a fun experience and great achievement already.