In this mini-series I will walk you through some habits I replaced in recent times, which have shown to pay off and make me a more productive programmer/power-user of my computer. All these changes should be easy to gradually adopt, so I would highly recommend checking them out. If you’ve any suggestions ☝️ or improvements ✍️, then email me at firstname.lastname@example.org or reach out using any of the social media listed here.
The Need for Refactoring Your Habits
It is often said that the best thing one can spend their time on is learning . I agree. However, learning can take various forms, one I find being particularly under appreciated is improving. Here I am not talking about increasing your knowledge in a field you already have a profound basis in. Instead, I want to focus on replacing previously acquired knowledge — or habits — with more effective and valuable alternatives.
This type of learning is in no way better or more important than other types of learning. However, it’s easy to focus on learning new things and taking everything prior for granted. This is a shame, as the benefits of improving one’s habits can pay off big time in the long run. When developing an application it is common to talk about technical debt, knowing that at times we need to go back to maintain and refactor as to improve and adapt to changes in the environment. Why are we not taking time to refactor our own habits into more productive ones?
As always, there’s an XKCD for that. Source: XKCD
The remainder of this post will dive into the methods which have led me to adopt new improved habits. Most of them will probably seem trivial, although being mindful about them makes it easier to reserve time for improving them.
Be Curious and Critical
If you ever wonder “Why haven’t I automated this yet”, then you’re probably already too late. Being critical on your own routines and curious about improving them is foundational to refactoring your own habits. Digging into how to do something more effectively is something you should actively strive for. Having a natural curiosity to do so will make it a lot easier, just quickly searching online if there’s a ready-made solution takes less than a minute and already teaches you something. If you find something, then the process of applying this
Search for Change
Over time, habits will slowly become routines. Routines you do not look back to, nor consider improving. Regularly, radically changing your environment is a great opportunity. For one, this change of context forces you to adapt your old habits to unfamiliar applications. These unfamiliar environments often solve the same goal, however different underlying ideologies made them to make different choices. Such a switch is a great opportunity to experience the best of both worlds and become more flexible at using different environments.
Concrete examples of switches I regularly try to make:
- Operating System: Over the past few years I have used Windows, MacOS and Linux based systems as my daily driver.
- IDE: I’m a huge proponent for JetBrains and their amazing IDEs. However, being flexible is advantageous, as you won’t always have the luxury to wait a minute until it has booted up or work on a machine with your desired version installed. Many other IDEs exist, all with their own use-case at which they excel, some more lightweight alternatives I am recently using frequently are Visual Studio Code and Vim.
- Machine: If you have the opportunity, then pair programming on the machine of a colleague can be a great way of experiencing their way of working. Try to ask them on how they would do something if there’s something which you can do a lot easier on your own machine. Either they show you another method of achieving the same, or you can learn them something.