Yesterday I mentioned I was embarking on a last attempt to master a different text editor. If I'm to succeed at this, then one truth I must face is that this will take time, just like mastering any new skill does.

I always find that learning something new starts out to be fun. I have a clear goal in mind of what I want the end goal to be and with that in mind I start. Whether it's a new programming language or an application, those first few days are where my positiveness is at a high. After a few days though, the stumbling blocks kick in. I don't feel as productive as I did before. Even though I know I'm in unfamilair terroritory, I start to wonder if this is in fact the right time to be learning something new. A few days further on and I've only mastered a small subset of this new topic or skill. Questioning myself again, I throw in the towel and abandon the learning process. I've done this so many times in the past.

The recurring mistake I've made in the past is forgetting that learning takes time. Mastery takes even longer.

For the moment I'm content to simply learn Vim. This means getting to a stage where for most of my day I can write and manipulate code without resorting to looking up keyboard shortcuts. Finding files, finding text in files, managing files in different panes, navigating a file, search and replacing within a file and basic text manipulation represent groups of keyboard shortcuts that I need to learn in order to use Vim effectively. I've given myself a month to learn most of these shortcuts. After a month I should be able to assess what I can and can't do in Vim. For all the things I can't do, these will become the focus for the next month of using Vim. Repeating this process for six months will evenutally get me to the place where I want to be. To have mastered Vim.

Learning can take hours or days, but true mastery can take weeks, months, even years depending on what you want to master. This is the key to successful learning and mastery, you need to put the time in.