I have been seeing lots of newcomers to the world of programming skipping one of the coolest parts of it: automating stuff. If you do repetitive daily tasks on your computer, it's likely you can automate that.
My current favorite way of automate things is using Shell Script and Python for miscellaneous automations and scripting. I did some useful scripts in the past years, to highlight a few:
- a post-installation script to download my favorite software and make a few tweaks after a fresh install of my Linux distros (Shell Script).
- a script that lists all images in a AWS bucket, downloads them to a local folder, resize and optimize them using ImageMagick and finally re-uploads and replace the optimized images in the bucket (Python).
- a script that connects to a database, run a list of SQL queries based on the input parameters and outputs .xlsx files based on a set of rules (the data, columns and file name was all dependent on the inputs). It was a process done manually that was asked for me to be done for a month - I had no choice other than automate it or I wouldn't do my work (Python + Pandas).
- our development environment script, started in collaboration with my co-worker William. Before that, new developers could spend weeks to configure the environment on their local machines. It was not something particularly hard to to, but it was a very monotonous task, with a lot of room for error. Now, in a afternoon the developer has the basic set up done and can start working on the project. We keep iterating the code in a weekly basis, and I'm very proud of it (Shell Script).
I'm currently working on learning web scrapping and automation using Python and Selenium, just for fun. I want to be able to get data from public websites and use this information in various ways. Maybe integrating this data to a Twitter or Telegram bot, don't know yet.
If this post got you inspired, try to search "how to automate 'x' thing using 'language'". You'll probably find some tutorial or guide to get you started on the task. It's fun to spend some hours to automate things that you spend a few minutes every single day doing. And tweet me about it!