Practical immersion in the language is by far the best way. I learned my Italian like that, in a small town where there was only one other native English speaker (and practically no tourists). Learn the language or starve were the options. A good grammar book helps, though, particularly if...