For me, there's a predictable process or evolution for learning a new learning a new language, framework, or technology. The first step is to first figure out how to get it to do something. This could be a few hours or a few days. The second step is to grow and expand knowledge to the point where you are able to productively use the language to build real applications or tools. This could be weeks or months. The final step comes when either you realize that the way you use the language is limited and that there are easier/faster/better ways of accomplishing the same thing, or that you are limited by your current understanding and start looking for better solutions, or both.
Written by Alex Brinkman who lives and works in Denver, but plays in the mountains.