It takes a year because you learn it over time. Learning a tool progressively is the best way to go.
There is a wonderful presentation called '7 Habits For Effective Text Editing 2.0' [1] explaining this philosophy. The idea is to get the basics down upfront and then get more proficient gradually over time.
When you use the tool you stay aware of what you are doing. When you find an inefficiency in the way you use the tool, find a quicker way and make it an habit. This is the most efficient.
If you only care about the code you have to type right now and never read the editor's documentation nor learn new commands you'll keep using only basics commands and never will gain proficiency. Not efficient.
If on the other hand you try to learn every feature immediately you'll waste time learning things you won't use and forget most of them anyway. Not efficient.
Maybe your definition of "mastery" is different than the author's. To help us better understand your definition of mastery, please list for us all of the things that you believe you have mastered, along with the amount of time you devoted to mastering each thing.