Я учу английский язык уже 19 лет. Как и миллионы других людей, я делаю это крайне неэффективно. Моя история изучения английского типична для среднестатистического программиста. В школе английскому не уделялось практически никакого внимания. В вузе начал изучать язык более осознанно, так как были понятны перспективы владения этим языком при трудоустройстве, и это придавало мотивации. В дальнейшем, когда стал работать, появилось больше свободного времени и ресурсов, что позволило достичь приемлемого уровня знания языка. И только сейчас, оглядываясь назад, я понимаю, где совершил ошибки, а что сделал правильно.
Самое главное, что мне стоило бы знать - для каждого уровня языка должна быть своя стратегия. То, что эффективно на одном уровне, абсолютно не подойдет на другом. Обычно уровни знания языка делят на basic (A1, A2), independent (B1, B2), proficient (C1, C2). Эти ступени, как несгораемая сумма: если один раз достичь определенного крепкого уровня, то вниз точно не спустишься, даже через продолжительное время. Их можно представить, как три горки, каждая из которых более крутая, при этом после каждой из них есть прямой участок. Желательно эти горки пройти с максимальным ускорением, потому что, если остановиться, обязательно скатишься обратно и придется разгоняться заново.