Любой язык, любой фреймворк, любую технологию лично я изучаю так:
1)Ставится задача
2)Под задачу находятся готовые решения
3)Гуглятся проблемы и непонятные мне места
4)Что-то пишется, возможно пятое колесо, возможно очередной велосипед, но это работает
5)Написал п.4, осмыслил. Погуглил на тему похожих решений. На этом шаге в голове уже появляются правильные слова(термины, название библиотек) для гугла
6)Либо нашел свой идеал в чем-то готовом, либо написал "совершенный" код(на текущий момент)
Шаги 1-6 повторяются бесконечно. Алгоритм выше я активно использовал, когда после PHP учил Ruby.