I am a non-native user of English. I learn it for any number of years, but something always remains undone. But, I don't intend to give it up. I will continue working upon the language. It doesn't matter even if I lack in perfection. The best way to learn English is reading and then writing. Speaking comes with an exposure to the appropriate environment. If we associate ourselves with the native speakers, we may struggle to understand for sometime. Ultimately, we get rid of the problem to a very good extent.