Exchange programs are a great way to learn language skills. Talk to your host family in English as much as possible. Watch TV, and use the captions. Read the newspaper and as many books as you can in English, to get practice.
By English skills if you mean acquiring the accent and the way people speak there, you will have to go and interact with others, like Pohnpei said earlier. There is no other way you can achieve that.
Though this isn't exactly improving your English skills, but in Rome I guess you have to speak the way the Romans do for them to understand you and for you to understand them.
For improving your vocabulary, grammar, etc. you could try some self-help books. There are quite a few courses also that are offered by many for the same. How fast you would be able to do what you want to, depends a little on your native language. Many languages have a sentence construction that is similar to that of English, while many don't.
But you have to be brave and go out there. Do not allow the fact that you sound different right now and make errors stop you, else you will never be able to stop doing that.
My main advice to you is to simply go out and listen to people talking and, more importantly, talk to people yourself. It doesn't matter if you make mistakes -- you have to talk and talk so that you can learn from your mistakes.
I learned my second language that way (though I was younger than you are and so it was easier to just talk and not be embarassed). I went out and met other kids and I had no choice but to learn their language because they didn't speak English.
Nowadays, I have foreign friends who are ashamed to speak English because their accents are bad. One friend of mine has been in the US for 5 years but is still not really able to communicate well because she is embarassed to speak with her accent. Don't do that. This is your opportunity to get to practice speaking English with native speakers so go for it! Don't be afraid to make mistakes and you will quickly improve your language skills.