The biggest problem most people face in learning a new language is their own fear. They worry that they wont say things correctly or that they will look stupid so they dont talk at all. Dont do this. The fastest way to learn anything is to do it again and again until you get it right. Like anything, learning English requires practice. Dont let a little fear stop you from getting what you want.
The absolute best way to learn English is to surround yourself with it. Take notes in English, put English books around your room, listen to English language radio broadcasts, watch English news, movies and television. Speak English with your friends whenever you can. The more English material that you have around you, the faster you will learn and the more likely it is that you will begin thinking in English.
There are some good English teachers that have had to learn English as a second language before they could teach it. However, there are several reasons why many of the best schools prefer to hire native English speakers. One of the reasons is that native speakers have a natural flow to their speech that students of English should try to imitate. The closer ESL / EFL students can get to this rhythm or flow, the more convincing and comfortable they will become.
Music can be a very effective method of learning English. In fact, it is often used as a way of improving comprehension. The best way to learn though, is to get the lyrics (words) to the songs you are listening to and try to read them as the artist sings. There are several good internet sites where one can find the words for most songs. This way you can practice your listening and reading at the same time. And if you like to sing, fine.
Only by studying things like grammar and vocabulary and doing exercises, can you really improve your knowledge of any language.
Many people think that exercises and tests aren't much fun. However, by completing exercises and taking tests you can really improve your English. One of the best reasons for doing lots of exercises and tests is that they give you a benchmark to compare your future results with. Often, it is by comparing your score on a test you took yesterday with one you took a month or six months ago that you realize just how much you have learned. If you never test yourself, you will never know how much you are progressing. Start now by doing some of the many exercises and tests on this site, and return in a few days to see what you've learned. Keep doing this and you really will make some progress with English.
Nobody likes to hear their own voice on tape but like tests, it is good to compare your tapes from time to time. You may be so impressed with the progress you are making that you may not mind the sound of your voice as much.