My boss bought me a copy of the seminal classic The Pragmatic Programmer. It’s full of sensible advice for both beginners and experienced software professionals.
I have lots of thoughts about the contents of this book but what I’d like to cover is usage of text editors, and specifically becoming proficient with a editor that’s typically universally available. I can think of 3 of these for UNIX systems.
When I was at university I used emacs for all CS course text editing. In my first job, the UNIX servers we had didn’t have emacs installed. I wanted to install emacs, but the application vendor didn’t allow us to, as they had a support contract and hadn’t tested their application with emacs on the box, so no-dice. vi was it for a few years. Then, I just a stopped using these types of editors for about 11 years. The advent of IDEs (Eclipse, Xcode) meant I didn’t have to use these “basic” editors about had a lot of point-and-click, plugins, refactoring etc functionality available.
The Pragmatic Programmer has convinced me to relearn basic (and powerful) UNIX tools, and I’m starting with emacs. In my job (at the moment) I typically do about 50-80% dev, the rest other stuff (sales, management, architecture, analysis). So I spend a fair amount of time in development environments. I’m not a big shortcut key user, and this needs to change - it’s just wasting time moving that mouse around to get to menu items and select text.
I’m enjoying the ability to use the same environment for text + 3 languages + code control. Super powerful.
If you’re interested in my setup, I have an emacs file in my dotfiles git repo. Check it out (ho ho ho).
If you have any tips for emacs please let me know in the comments or on Twitter - @rickerbh