Самый эффективный метод - активный. Это означает, что у Вашего "обучения" должен быть конкретный осязаемый результат. Просто читать книжку – похвально, но малоэффективно. Не используемая информация быстро забывается. Кроме того, всем известен пробел между теорией и практикой, когда вроде бы слова какие-то учил и помнишь, а что по факту делать – не понятно. Практические упражнения и задачи – более полезны. Например, прочитали правило английской грамматики – незамедлительно разберите примеры, приведите свои по аналогии. Попробуйте найти примеры в реальном тексте. Выучили слова – составьте с ними предложение.
Но самая важная работа при обучении – работа на конкретный результат. Нужно поставить себя в условия, близкие к «производственным». Например, с тем же языком, поставить себе задачу перевести текст к определенному сроку. Или перевести синхронно в слух телепередачу и записать на диктофон. Это наиболее эффективное средство. Поэтому в хороших современных школах дополнительного обучения (я чаще всего вижу такие по программированию и веб-дизайну), ученика сразу ставят в условия производства – он сразу начинает писать что-то, пусть мелкое, но практическое и на следующем этапе – становится частью реальной команды, делающий реальный проект.
Использование на практике - это и есть принцип активного обучения. В самообразовании для получения хороших и быстрых результатов – лучше стремиться к этим стандартам.