The shoemaker's son always go barefoot.
It saddens, and surprises me the amount of manual work that we developers put up with. It is paradoxical that we are paid to automate other people’s work, yet fail do so the same with our own.
I am not just talking about automating tasks that can take you hours or days to do. A five second task that is repeated often enough may well be worth automating.
Automation saves time, enables repeatability, avoids mental overhead, and can be rewarding.
One off tasks
Your attitude before starting any task, no matter how small, should be: can I write a program to do this?
A word of caution, though: set a time limit for the task, as you can really get lost down the rabbit hole. Once that time limit has elapsed, you have to be willing to let it go and do the task manually. This requires a surprising amount of discipline.
Beware the GUI
GUIs, like the Sirens, lure you with an easy first time experience, but then enslave you in their own isolated world, away from other programs.
You want to use tools that compose. You want to use programs that you can glue together with other programs. Programs that can be inside a for loop.
GUIs do not compose. Free yourself.
For quick and easy things, there is nothing like a good old Bash shell. It is the only tool that has remained constantly useful in my 17 years of working experience.
For more complex tasks, just use whatever your production programming language is. It probably has tons of libraries available which you are already very proficient with.
Or maybe you could use that “forbidden” language, the one that you actually love, thus making the task doubly enjoyable.
Remember that you are a developer. So develop. Write programs. Free yourself.
More about efficiency: