Coding Blind

I recently had an observation about my level of expertise in software engineering. Imagine learning to code as learning a new language, say french for example. I am now comfortable reading and writing. That is, I can enjoy reading an open source code base as much as I might enjoy reading a french novel. Well the next step in my refinement of the craft of coding is to speak. I must stop interfacing with the machine with only my eyes.

Vim has changed my life. Not because of how it performs as an editor. Right now I am using vim with tmux, along with Firefox, as an IDE for python-Django web development. Along with all my various side projects which are mostly python. To be honest, I am still slightly under performing compared to before I made the switch. Previous to vim I was using sublime text as a complete novice, no plugins, and not understanding any kind of customization. After about 4 weeks of using vim it is approaching the efficiency that sublime was before I ditched it. However, I expect vim to continue becoming much more powerful into the future as I continue to grow as a user.

None of the above is responsible for vim changing my life. Vim changed my life by introducing me to the idea of home row being sacred. In fact before I started using vim I did not even use the home row to type. My left hand used to hover on the left of the keyboard with alt-tab under my thumb and ring finger, my middle finger on Q and my pointer on E. Then my right hand was responsible for most keys, and every time I typed I would either glance, or stare at the keyboard. As soon as I started playing vim adventures - yes I bought it for 25 buck, yes that is over priced considering it is only a 6-month lease, but darn it, you know what? It changed my life. It made getting into vim super easy. I got sick for a few days so I just played vim adventures for two days straight, along with practising typing on the home row on keybr.com (I seriously could not type using the home row).

So in 4 weeks I went from not only, not being able to type on the home row, but not being able to type without looking at the keyboard, to being able to efficiently program in vim, navigate Firefox without the mouse, type this whole blog post without looking at the keyboard once. Do you know how awesome this is? I am laying in bed right now with my eyes have closed, transcribing my stream of consciousness with minimal effort.

My point is that I have fundamentally altered the way that I interface with the computer. I have completely decoupled the keyboard and my eyes

The internet has always been a tool which feeds me communication. Like a one way function, or a one-sided conversation, I have never been one to give back to the internet. From 4chan to reddit to facebook to stackoverflow. I have been reading thoughts, statements, jokes, conversations, videos of other people and I have never given any thing back. As beneficial as the internet has been to me, I have come to the understanding that it can be a much more powerful tool for one who speaks back. I have realized that if there is no stack overflow post answering your question then you can actually post the question and if it is a well formed question then you will have a well formed answer by the next morning. If you don’t have a personal trainer then you can post on reddit/r/fitness and there will be many qualified people excited to help you. If you have an interesting yet puzzling physics question and you don’t have your best friend around to flesh it out with you, then you can post it on http://physics.stackexchange.com/ . Just the other day I was wondering if you could become a magnetized human by getting wrapped up in the chord while you are vacuuming.

Written on October 28, 2016