When I came back home, I decided to keep on improving my English, and after a lot of research (and dismissing the traditional grammar approach offered by most of the language schools here), I came across LingQ on the Internet. I am not going to explain here how it works, but I just love its approach to language learning. It has been really useful to me since I started using it, about a year and a half ago.
I also believe, however, that there is not a magic formula for everyone, and that you must choose what works best for you. In the beginning, I only used LingQ to study their lessons and to improve my vocabulary and reading comprehension.
After a few months, when I felt more confident, I started to sign up for one-on-one conversations with native speaking tutors. Eventually, I began to also participate in group conversations (which I personally think requires a higher level as you should be able to take part in a discussion with several people simultaneously).
Right now I am using LingQ mainly to improve my speaking or communicative skills by participating in individual and group conversations. I also review some vocabulary from time to time, but I use a lot of content from outside sources such as the Internet. I watch and listen to a lot of content in English, such as YouTube videos, TV shows and movies. I also read a lot (I think that all the novels I have read for the last year have been in English) and I try to write to as many people that I can, whether in forums or corresponding with friends.
So where am I right now? I feel fluent and confident enough to hold a conversation with a native speaker. I understand most of what I hear, and I can even understand a lot of jokes and some kinds of irony. Have I reach my goal? No yet. There are still a lot of moments in a conversation in which I do not find the words I want to use so I have to try to express myself in another way. I still have to expand my active vocabulary, but I am really satisfied with my progress so far.