In my opinion the most effective ways to learn a foreign language are:
1. Go to the foreign country and stay there as long as you can. As you will be surrounded by native speakers, you will automatically catch expressions that are frequently used.
1.1 To increase your learning speed, you can join a language course there and learn the basics. After each lesson, you will notice some of the new words are used by the people in your environment, for example in public places.
1.2 Meet native speakers and talk to them frequently using the words and expressions you just learned. If you don´t use them correctly they will tell you at once. The first two steps will help you to understand the foreign languge, this step will help you to use it correctly. By the way you will get to know about their culture and their way of thinking.
2. Watch movies that contain subtitels in the foreign language. If you can´t understand by listening you also have the possiblity to read.
Of course there are also many other ways to learn, but in my opinion you need to go abroad, as no language course is up-to-date, and even a language teacher in your country will not be able to follow the development of the language habits in both countries. It´s possible to learn some basics at home, and to add the current way of talking by being abroad.
So far my recommandation, but you should experience by your self. If you find another way, please let me know ;-)