Software tools promise to make life easier, and many of the time, they do. But there’s a downside: complexity.
How much would you pay for a piece of software that does what yours does, only better and faster? Or one that delivers your work to clients automatically? And not just any client: perhaps several different types of clients, each with their own peculiarities. At this point, I hope you’re thinking about how far automation can take you; personally, I find it liberating (and even fun).
So here is my advice: learn good programming skills and apply them to reduce useless manual labor or repetitive tasks. You’ll end up having more time to focus on the fun stuff. Your job will suddenly become less of a chore and more of an adventure.
To increase the efficiency of your work, follow these simple rules:
- Test-drive code to see what it does for you. Every time I have a job that needs to be done manually or that requires an awkward sequence of steps using other software, I ask myself, “Can I write a small program to automate this?” If so, I put together a script and use it rather than doing things manually. The more complex the task is, the less inclined you are probably are to automate it; but unless you’re really sure about what your program will do and how long it may take (and even if you feel pretty confident), start with baby steps: try out simple scripts and then grow them into more complex ones.
- Use Python (2.7) or Perl instead of shell scripts, particularly if you want to build your program with others’ help or share it on the Web; both are popular languages for “glue” code that automates interactions between software components. Although I find Java to be worrisome (it’s less flexible than Python and tends to bloat programs), if you must use Java, consider using Groovy instead, which is designed specifically for scripting-style tasks that involve access to APIs. While working on larger projects, I prefer writing functions in C/C++, either as part of a larger project or as small standalone applications.
- Make sure your script is easily portable by following standard conventions for the language you’re using, such as avoiding hard-coded file names and using tools to locate dependencies. For example, Python packages are installed in standard locations with predictable names that configure scripts automatically.
- Be wary of time-consuming tasks that can be automated, particularly when done repeatedly or when they involve mistakes due to repetitive actions (typing, copying files) or lengthy confirmation processes with poorly designed software interfaces. All these factors can slow you down without your realizing it; automation will help you work at top speed while doing less grunt work. As an added bonus, you’ll gain confidence when working on tedious jobs — after all, there’s no need to fear them anymore!