Hi, my name is Josh and I am a Vim addict. I have been for quite a while now, nearly 15 years by my estimates. I love everything about it but in all honesty, I have only really started to get “good” with it in the last couple of years. Why only recently? Because Vim has always worked for me. I generally don’t look under the hook of an app unless it’s failing me in some way. Vim has never let me down and I’ve always known I could get more out of it. As of late, I have been getting as much as I can by way of plugins remaps and just better aquainting myself with the commands.
Today as I sit here shouting expletives at my fingers and attempting to reprogram years of muscle memory, I got reminded of all the poor souls I have met that lack any and all code editor proficiency. Before I get to those sad sacks, let me quickly elaborate on my recently change. For years I have had my caps lock key remapped to ESC but after some conversations and a bit of reading I have come to the conclusion that remapping caps lock to CTRL will be an improvement. First, on OS X remapping caps lock to ESC requires a third-party app (PCKeyboardHack is what I use) but remapping to CTRL can be done with the keyboard preferences and nothing else. Second, ESC is what Alton Brown would refer to as a “uni-tasker” as all I use it for is switching back to NORMAL mode. CTRL on the other hand is used all the time for many different things, so being able to tap it without leaving the home row makes sense. What I’m getting used to is hitting CAPS+C to go back to NORMAL mode instead of simply tapping CAPS. Frustrating as all hell, but will be worth it in the long run.
Okay, so back to developers and their code editor knowledge, I’ve worked with my fair share of them and the tend to fall into a few specific categories:
The no syntax highlighting developer - This person never has syntax highlighting turned on. You ask them why and they make up some excuse about how they will figure it out later. They can get the job done, but I have to question the skills of anyone that refuses to take the 2 seconds it takes to enable syntax highlighting / color coding.
The indecisive developer - This person changes their code editor nearly as often as their underwear. You know the one, they are constantly fumbling around in whatever this week’s flavor is and rarely can find anything. They also tend to say things like “maybe I should give your editor a try” and are terrible at deciding where to go for lunch.
The loud, obnoxious power user - Their editor can do any and everything. How do you know this? Because they have a tendency to tell you about it on a regular basis. At the end of the day, this is more of a character flaw than an issue of editor proficiency.
Everyone else - These developers not only have a favorite editor, but they know how to use it. Their knowledge of their code editor ranges from good to great including full on power users (not to be confused with category 3). From time to time they will experiment with other code editors but usually when they hit a road block with their own.
Wait, so what’s the importance of editor proficiency? The fact is, the people I’ve worked with that fall into category 1 and 2 have had a tendency to be low yield developers. Very slow to produce and often times telling stories about their hold ups, be it another department or some obscure bug they were having an issue troubleshooting. I factor in aptitude with their code editor as a major reason for their shortcomings. If nothing else, you can chock it all up to inexperience as a whole.
How does one fix this? Simply put, just learn how to use your fucking editor. It doesn’t matter what you use as long as you know what you’re doing with it. At the very least, get syntax highlighting working and stick with something for at least a couple of months before jumping ship. Learn the hotkeys instead of relying on pointing and clicking to save time and embrace anything that could potentially speed up your workflow. Stuff like code completion and language-specific syntax checking are a must for efficiency.
Oh, and once you get really good with your editor, please for everyone else’s sake, keep it to yourself unless someone is soliciting you for info. Flame wars over editors are a waste of time, the only thing that matters is shipping, early and often.