Different people react differently to the various learning methods out there.
However, I believe the most effective way to learn a language is to be completely immersed in it. This usually means living in the country of that language (e.g. French in France) for maybe 2-3 months.
It switches your mind from thinking 'casually' to thinking by 'necessity'.
Alternatively, talking to native speakers regularly is probably the second best.