2014: My Year of Productivity

Posted on January 2nd, 2014 by bobby.

Greetings to all, and a Happy New Year! It’s been over two months since my
last post, so I’ll have a lot to talk about today. But first, here’s my
obligatory recitation of goals and aspirations for the New Year:

Increase my WPM to 100

Master vim

Develop a systematic debugging workflow

Read the docs more often

(And as a result of 1-4) Increase my productivity by 3x

It’s gonna be a pretty tall order to get all of these completed, but I believe
that each is a necessary condition of becoming a serious developer. Here’s an
explanation of each line item:

Spend Less Time Typing

I spent a lot of time typing in 2014. In fact, despite being an computer
professional for 3+ years, I probably typed more than twice what I typed in
2012. Why? Because I spent some time practicing typing, and as it turns out,
practicing typing necessary begets more typing because you have to
type to practice typing!* The faster I type, the more I type, and because I’m
typing more, I get even more practice with typing!

* What?

tl;dr: I want to spend less time typing so that I can type
more things.

Use My Tools Better

That you type is not enough for the professional developer.
What you type, and what you have to type, and what you
don’t is more important. I think there is an
argument to be made that performing a task more accurately is more important
than performing it quickly. But with vim, there’s no excuse
to sacrifice either. I have from time to time believed that I was decent
with vim, and as it turns out that is mere delusion. Vim is large; it contains
multitudes. Learning to use even 10% of the vanilla, no plug-in bullshit vim
allows a developer to wield more power than they are probably responsible
enough to handle.

Kill Bugs Good

There are few things in life that are more infuriating than the insidious bug.
I like to think that I do a decent job with bug prophylactics, but I must say
that I have spent more than my fair share of time tracking down and eliminating
bugs. A lot of the time it comes down to just taking a deep breath, analyzing
the situation, and taking a break from thinking about the problem for a minute
so that cooler heads can prevail, or so that your own head cools a bit. But there
are other, less subtle and more straight forward ways of bug extermination
than this approach.

RTFM

I think that 2013 was my Year of Google. I found myself checking out SO a lot,
and kind of MacGyvering together solutions that were suboptimal before
ultimately exegese the docs and refactor (or often throw out) my old solutions.
While it’s nice to just try and Stack OverFlow some of your own problems, in my
heart of hearts I know these are instances of penny wisdom and pound
foolishness in Googling a solution. RTFM > LMGTFY bro.

Thus, My Year of Productivity

My goal this year is to produce triple of the amount of code that I produced
last year while improving the quality of what I do produce. I think this both
possible and measurable, albeit not necessarily easy, and I think that
improving in the aforementioned areas is a pretty good place to begin.

Increase my WPM to 100

From 2011 to 2013, increased my typing speed from about 50 natural
language WPM to roughly 80 for text transcription. When accounting for less
oft use keys (like the number row keys, curlies, et.,) I sped up from about
40 WPM to almost 70 WPM. Copying someone else’s code for the sake of practice
(thanks typing.io!,) I am anywhere from 40 – 50
WPM presently and was probably nowhere near that in 2011. I want to get my
natural language typing skills up to about 100 WPM this year, and my
programming typing skills up to about or 70 would be excellent.

I think that I can accomplish this by 1) practicing less-often used key
fingers for about 15 minutes a day, and 2) trying my damnedest to NEVER miss
ANY key (but especially the funky keys) even if it means my slowing down for a
second to look at the key, or even to just think about/visualize where my hands
are at the keyboard before executing a keystroke that feels funny. I’m sure I
will continue to play typing games in 2014 to continuously improve upon my
natural language typing.

Mastering vim

If you are not constantly thinking about how to improve your vim, you will be
left in ‘the Stone Age of Computing.’ I have to admit that I was much more
enthusiastic about learning vim in 2012 than I was in 2013. Perhaps it was a
case of not wanting to put the cart before the horse, but it was far more
likely a case of being lazy, and indeed once again, of being penny wise and pound
foolish. I do not want to commit the same mistakes that I made in 2013 in 2014,
and I consider one of my cardinal sins to be the forsaking of marginally
improving my command of vim over time.

While I do doubt that I will “master” vim within the foreseeable future, I do
believe that I can make significant improvements to my vim fluidity by
approaching my learning of it more consistently and systematically. Gary
Bernhardt has suggested that learning the entirety of the simple (straight-up
character) normal mode commands is a good place to start. It seems a
reasonable of a place to start as any.

Develop a Systematic Debugging Workflow

Thinking about it now, I imagine that this is probably going to be the
hardest problem for me to solve this year. It seems that solutions to bugs just
kind of bubble up into my consciousness from thin air. It almost feels like I’m
inspired into bug fixes from time to time, which is really kind of
crazy when you think about how stressful it is to crunch bugs on a deadline.

This year, my plan to systematically debug my systems is to kill bugs before
they ever manifest themselves in production. That means a greater attentiveness
to unit testing, and a deeper knowledge of design patterns and the problems
that they address.

Read the docs more often

Like seriously, read the damned docs. Just do it. God.

Final Word

It’s fun to challenge yourself. It’s even more fun when you’re challenging
yourself with a purpose. There are real stakes for making a concerted effort to
improve your productivity: the more you get done with your time, the more
you earn. After all, time is money. Whether you’re earning to more money
by doing more with your time, or by doing better so that your time is worth
more, productivity talks and bullshit walks.