We’re in the age of STEM right now and everyone is screaming that “Everyone should learn to code” when what they really mean is that more people should learn how to program. Programming is a skill that will help most of us, as most of us deal with computers on a daily basis. Programmatic Thinking is a skill that will help almost anyone, because programmitic thinking is just problem solving in a systematic way. This post is about how I learned to program years before I every learned to code and how programmatic thinking has changed the way I solve problems.
Should You Learn to Code? …Maybe
Coding is not programming, even though people often think of programming and coding as being one and the same. Coding is just one means by which we program. There are plenty of programming languages out there, however learning any one of them will not teach you how to think like a programmer anymore than learning how to use a screwdriver teaches you how to fix a dryer.
Programmatic Thinking is a skill that will help almost anyone, because programmitic thinking is just problem solving in a systematic way.
Should You Learn to Program? Definitely!
Even though coding is not programming; automating is programming. Because programming is the process of providing instructions for automation, ALL automation MUST involve programming. We program things all the time in our everyday lives. You want your A/C to start up if the room reaches a certain temperature, so you program your thermostat. If you’ve ever set your thermostat, set up an alarm, or told your crockpot to turn on at 3, congratulations! You’re a programmer!
Programming Will Upgrade Your Life
Programming will improve the life of pretty much anyone who works with computers. Most of us do tasks that we would prefer not to have to do. They are tedious, repetitive, boring, and agonizing. Learning to think like a programmer will improve those tasks because we’ll start to engineer solutions that allow us to do less and less of them.
Even in our non-computer-related lives, we know that a systematic set of actions for a given situation will yield better results than not having one. For instance, when I was a child, I had to wait around for my parents’ washing machine to enter the rinse cycle so I could add fabric softener. Then, my parents got a new washer and I didn’t have to do that anymore. Adding the fabric softener got programmed into the functions of the machine. The experience of doing my laundry was much improved!
In much the same way, when I learned that I could program tasks for my phone or my computer, using those devices became much improved. I no longer need to remember to put my phone on vibrate when I’m at work, or turn the ringer back on with I get home.
There are definitely tasks that you either forget or hate that can be automated, and once you start on the automation train, you won’t want to get off!
You, too can start making little programs for your phone with just a few taps of your little fingers! Let’s introduce some automation apps to get you started.
Tasker wasn’t the first automation app I tried, but it quickly became my favorite. It’s super powerful and I’ve been using it for years. Though this is the only paid app on the list, it is well worth the three bucks. It’s the most powerful automation tool I’ve ever seen short of coding an application in Java or some other native language.
Tasker works pretty simply when you get the hang of it. You tell it what conditions it should watch out for in the “Profiles” section. These conditions can be things like a time or date, or if the phone is charging, or if you receive a text, or any one of nearly 100 triggers .
Tasker has a bit of a learning curve, but once you get the hang of it, a whole world of programming is open to you. I’ve been using some form of the menu above for years (I had a settings menu in my notification tray years before they were a standard Android feature), and because Tasker can be backed up, I take the same menu with me from phone to phone, tweaking and upgrading it as needed.
Automate is another very powerful automation tool that works in a much more graphical way. Functions are set up like a flowchart and the app follows instructions based on the chart. Automate may be a bit more approachable for those who want a powerful tool but find the interface for Tasker to be too much.
The flow above turns the phone’s call and system volume to 7 when an AUX line is plugged in. When the AUX is no longer plugged in, it turns it to 0. The flows that you build with it can get very wide and complex. Before you know it, your phone will do anything you ask!
IFTTT (Android, iOS)
IFTTT is many people’s first step into the automation pond. With a simple user interface and functions made for the services you use everyday, IFTTT is a clear win for anyone wanting to remove a few steps from that thing they keep having to do.
My favorite applets include posting any Instagram photos as native Twitter posts, put any tweets I like in a spreadsheet for easier reference, and add a card to my “Read Later” Trello board when my friend texts me a link to an article.
IFTTT is also a great way to get all your devices playing just a bit better together. Tell Alexa to turn on the porch light when your Android phone comes near your home after dark and never fumble to put your key in the door again.
Having never had an iOS device, I’ve never used Shortcuts. But even a coursery look at what it can do let’s me know that this app is a great tool. Shortcuts is actually rebranded, and revamped version of an app called Workflows. When Apple bought the company it renamed it Shortcuts and made it even more powerful. Shortcuts was launched as a part of iOS 12. Because Shortcuts is an official Apple app, getting shortcuts is very easy with the Shortcuts gallery.
Automator and Task Scheduler (macOS and Windows, respectively)
While I won’t spend much time on either, both Windows and macOS have built-in automation tools. I use them both on my respective windows and macOS machines and love them. Want a reminder that you’ve been working too long? You can have your machine minimize all windows and display a “Take a Break” popup. Hate the tedium of system upkeep, but know it must be done? Have your computer do a quick scan for viruses then restart and install updates at 3:00 am while you sleep.
But What Should I Automate?
Knowing what to automate is a simple as asking “What do I wish I didn’t have to do?” or “What do I wish could be done for me?” because programming is just problem-solving, the best place to start is identifying the problem. Once you know what problem you want to solve, you’re that much closer to engineering the solution.
Remember, you don’t always have to do tedious, annoying, complicated, repetitive, or just plain boring work. Computer’s are machines with lots of processing power and no free will! Make them do it for you so you can go out and play with your friends.
What are you going to start automating? Let me know in the comments!