I have never studied english formally and all my knowledge comes from self study. Most of my writing and reading skills I have developed by struggling with a dictionary and english texts from books, magazines, comics and games - I feel reading comics and books I already have read in portuguese helped me to get context, and context is necessary to get a understanding of the text.
It's specially helpful to weigh intensity and feelings from some words/expressions. Old 8-bits Games like Civilization (and its "civilopedia") have lots of text and are also a good starting point, because they create an immediate curiosity for the game mechanics and history ("need to"). This feeling of "I need this knowledge to make my decisions and win" helps a lot to fuel your progress, and in fact you forget you started it to practice your english, and read it in a more natural way.
Later I started to get some speaking and listening skills by watching movies. Again I started by watching shows and movies I had already watched in Portuguese.
This familiarity helped me a lot to understand things because the main difference between learning to read/write and listen/speak is that when you are reading you get time to stop and search in a dictionary (note: when you get enough vocabulary - I started to use a english dictionary like Webster). While watching a movie it is easy to miss a word and get the context wrong. Also, even if you cannot tell whether the actor spoke "beer" or "bear" just by the sound of it you can easily catch it by the context and even easier if you already know what they are talking about.
So I started to use Youtube and most recently Netflix.
Obs: some shows are better than others. Example: The Simpsons is not a good one for starting because I feel the actor actually speaks too fast.
Today I'm trying MMO games after one catch of shows and movies - I started to use Skype/Raidcall/Teamspeak to engage conversation with the "average Joe".
This text was auto corrected by a free online grammar check tool