As a software developer who likes to think that I’m productive - at least sometimes - I’ve spent a lot of time trying to figure out exactly what I can do to make myself more productive, more of the time.
There’s a lot written about getting in the zone; avoiding meetings interrupting developer time, turning off notifications on Slack, and so on. All of this is really valuable and I’ve seen most of my peers follow this advice to varying levels, depending on their preferences. One area that I’m always surprised that less people spend time on is their editing environment, and it’s this that I want to talk about in this article.
If I think about how my days as an engineer are made, the bulk of it is spent writing or editing code, and as such I’ve spent a lot of time tweaking my environment. My preferred set up is a terminal with tmux and Vim, but regardless of chosen applications, I would say that spending time on my personal setup is one of the most valuable habits I’ve got into as a developer. My personal dotfiles repository is testament to this - with over 1000 commits spanning nearly 5 years (here’s the first commit, if you’re interested).
Doing this has to be worth it - ultimately I’ve spent a good few evenings playing with Vim settings, tmux plugins, and the like - but doing so means that I can move quickly and confidently when working on a new project. Given that most time is spent editing exiting projects, and not on writing new projects, it makes sense to optimise for that. You should spend time getting to know your editor (this is not a blog post about Vim), how it works and its shortcuts. If you use a terminal (which seems less and less avoidable as time goes on), you should create aliases for common commands. For example, I have gaa aliased to git add -A and many, many more. Using each of these aliases once doesn’t save me much time, but if you add up their usage over a month, a year, or longer, I’m saving time and keystrokes.
It doesn’t matter if you use Vim, Atom, Notepad, VSCode, or any other code editor. It doesn’t matter if you use git in the terminal or via an application. It doesn’t matter if you use Tmux or stick to multiple terminal windows, and it doesn’t matter what font or color scheme you use. Find the setup that works for you, and iterate on it until it’s as close to perfect as you can. You’ll thank yourself later.