Bobby Russell
I/O

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:

  1. Increase my WPM to 100
  2. Master vim
  3. Develop a systematic debugging workflow
  4. Read the docs more often
  5. (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.

Work smarter in 2014, not harder.