Time for #DevDiscuss— DEV Community 👩💻👨💻 (@ThePracticalDev) July 1, 2020
Tonight's topic is... Productivity tools 🛠
Let's start with some questions
- What does it mean to be productive?
- How does your view on tools evolve over time?
- Recommend some tools! pic.twitter.com/Wyc84CYx6A
BUT I'm the good kind of lazy that works really hard to do as little actual work as possible. If I have to do anything more than twice, I'm going to think about automating it. From scripts to download & process product photos, to hours-saving spreadsheet combiners, there's not much in my job and life that isn't at least partially fueled by automation.
My Automation Toolkit
Smarter minds than me can probably go into the depths of Pros and Cons between all of these methods, but I'm not going to. This is just a list of some of the things I've used over the years to speed up mundane tasks. Everything here was used to solve a super specific problem, so think about things in your work day that can be sped up with the help of our friendly
If It's Repetitive, You Can Probably Get a Computer to Do It For You.
Python is often reached for when starting to learn programming. It's simple, it's easy to read, and you don't get lost in a sea of brackets and semi-colons. At the same time it's insanely powerful and I'm sure a very large chunk of the online world is run with python.
Need to process or combine large spreadsheets on a recurring basis? Check out Pandas.
Want to automate certain mundane tasks online? Check out Selenium (more on that later 👇).
Want to make Generative Art or play with fractals? Python can do that too.
Need to submit the same form on a webpage over and over again? Time to bust out Selenium. Selenium is a tool you can use with Python (or Java) to write code to make a browser do things to itself 😉. Python is super verbose and easy to read so you're just telling the browser:
"Go Here, type XYZ into that Form, click on this checkbox and then click on that submit button"
"Now do it 999 more times"
With Great Scripting Power Comes Great Responsibility. Don't accidentally (or intentionally) DoS anybody by bombarding their site with requests. Build in exits and control the timing of requests. All That Fun Stuff.
PowerShell / Bash Scripts
PowerShell was my first introduction to scripting. I started with simple "move files around" type scripts and built more stuff from there as the need came up. I wrote a PowerShell script that could fetch product images by SKU from specific sources, crop/resize and rename the files, then upload them over FTP to our web server. What used to be a manual hour long process is now 5-10 minutes tops.
Bash Scripts are basically the Linux version of PowerShell (or the other way around, I don't know). Super useful for processing things server side. Mixed with Cron, you can automate reports and file fetching fairly simply, back up and maintain your servers automatically, and more. Definitely spend some time learning Bash scripting if you do anything on Linux Servers.
If your on Windows I highly recommend AutoHotkey. It allows you to configure almost anything as a keyboard shortcut.
Some of my most used shortcuts:
- Jack <mm/dd/yyyy>with the current date.
Ctrl + Pausestarts and stops Spotify, while
Ctrl + <Scoll Lock / Print>will switch tracks.
Caps Lockdoesn't do anything. Double Tapping
Caps Locktoggles Caps Lock. I've wasted way too much time backing up when I accidentally hit it AND eVERYTHING sTARTS tYPING lIKE tHIS.
- I use an older mechanical keyboard that doesn't have a Windows key, that I got for $2. I also religiously use Windows Virtual Desktops and the keyboard shortcuts for those are controlled with the Windows Key (Specifically
Windows + Tabbrings up the overview). Google was my friend and I was able to rebind
Caps + Tabto open up the overview, and
Caps + <A/S>to switch between desktops.
Keyboard Shortcuts -- Learn 'Em. Love 'em. Live 'em.
On top of everything I've configured for AutoHotkey, I swear by keyboard shortcuts. Why waste time reaching for the mouse and then moving it all the way across the screen to dig through 3 levels of menus to click on something, when you can just memorize the keyboard shortcut and be done with it.
This is doubly true for Photoshop and Illustrator. All of the tools you're using have keyboard shortcuts to flip through them.
You'll save so much time in the long run and you don't have to move your hand back and forth to the mouse as much. It's a win-win.