Recently, I’ve been reading “Principles of Economics” by Saifedean Ammous. In the first few chapters, he discusses the important concept of time preference. He defines time preference as the degree to which humans discount future utility compared to present utility.
Because the future is uncertain, we always prefer present utility over future utility. Furthermore, a low time preference indicates a low degree of discounting of the future and, therefore, a greater concern for the future. On the other hand, a high time preference means discounting the future to a higher degree, with less concern for the future and present-oriented action.
How does this relate to being a developer? While we often experience time preference subconsciously, it’s useful to employ the concept purposefully in your daily decision-making. You can do this by consciously choosing to lower your time preference. This doesn’t just mean thinking about tomorrow, the end of the sprint, or even the end of the current project. It means thinking about how what you do or learn today will impact things five, 10, or 20 years later. Lowering your time preference could manifest in many ways. It has shaped my thinking around Vim, aliases, and keyboard shortcuts, as well as the prioritization of creative tasks.
Embracing Vim for the Long Haul
Learning Vim is a slog, and it can be easy to reach for the mouse out of frustration. Besides the time it takes to reach Vim fluency, the biggest frustration can be a dramatic slowdown in typing speed, leading to a general reduction in productivity. To maintain your work velocity, you might push Vim to the side, discounting the future benefits to yourself. Instead, focus on the keyboard efficiency and improvement in developer experience that you can enjoy for the rest of your life.
The Power of Aliases and Keyboard Shortcuts
Long before I started lowering my time preference as a developer, I switched my default keyboard layout and learned to touch type. I moved from the traditional Qwerty keyboard layout to Programmer Dvorak. More than five years later, I can confidently say that my future self appreciates switching keyboard layouts.
While not everyone may want to switch their default keyboard layout, I believe everyone can benefit by learning aliases and keyboard shortcuts. For me, this involved writing down pre-defined Oh My Zsh and frequently-used Chromium shortcuts on sticky notes. I placed those notes by my computer until they became muscle memory. Today, I rarely use a Git or terminal command that I have not aliased in some fashion. In turn, this has reduced friction between my computer and me while simultaneously increasing the joy I receive from interacting with my computer.
Harnessing AI to Automate Routine Tasks
These days, powerful AI technologies can assist developers with their daily tasks. While these tools may prove more or less useful to individuals (given what problems they are trying to solve), not using them effectively is a missed opportunity. Furthermore, given the current trajectory of AI technology, it seems prudent to offload repetitive, non-creative tasks to AI. That allows individuals more time to focus on the most creative tasks. For example, I’ve found ChatGPT is particularly useful for data cleaning, short scripts, and generating ideas for debugging error messages.
Transition to Thinking Long Term
Lowering your time preference is crucial to thinking long-term and planning for the future. Seeking to lower my own time preference concerning my developer tasks has changed how I think about Vim, aliases, and shortcuts, as well as how to maximize creative work. I invite you to also consciously lower your time preference to seek to better provide for the future.