Si quieres aprender bien lo mejor es la inmersión, pero larga. Con una base media y ayuda te haces enseguida. Lo mejor, comparte piso con "nativos", yo lo hice cuando me fuí a Montreal y aprendí un huevo de francés.

Y si tienes paciencia, lee en inglés, mirate las pelis en inglés... Este método va bien pero para largo plazo, si tienes prisa tírate al otro.

Yo he perfeccionado mi inglés sin salir de españa, pero a base de muuuuuuuuuucho tiempo, leyendo, y siempre con un diccionario al lado, que tardas 20 minutos por página, no pasa nada, a la tercera vez que buscas una palabra se te suele quedar.

Ponte series o pelis en ingles aunque no les hagas caso, sólo para oir, todo lo que puedas, para hacer el oido al idioma y coger el "tono", aunque no entiendas lo que dicen. Para entender y aprender vocabulario quedate con libros, comics, lo que más rabia te de, y diccionario.