I learnt English in high school for 6 years (5-6 hours a week), then I took an English class for three weeks in Canada. I'd say that I was at an upper-intermediate level after those years, although I don't think that the English classes at school helped or taught me the most.
After three or four years of English in school, I started reading short stories for fun and later started writing myself in English. Those activities helped me increase my vocabulary, improve my grammar and gave me a "feeling" for the language. Then, in Toronto, I caught up on pronunciation and listening, because there it turned out that I had no idea what words like "towel" or "cinammon" sounded like. Other people watch The Simpsons and learn those things earlier :D