Based on my own experience, reading English books is the most effective way to learn the language. You familiarize yourself with words at your own phasing and without the nuance of different accents and emotions from movie lines. Pronunciation is easily accessible on-line and its easier to understand the rules of pronouncing words when we know how the word is spelled.
I've met native English speaker who can speak the language fluently (sometimes not so much) but would make horrible mistake in spelling words because they never bother to actually learn the word. For ESL learner, I believe that understanding the words in written form then learning it on oral form is the most efficient way.
When one masters a wide vocabulary it'll be a lot easier to learn accents and colloquial conversation of films and songs and sound more like a pro but not really a must. That's my two cents to this topic.