Whether you like it or not, technology is everywhere these days. It’s likely that you own a smartphone and use it several times a day for a variety of reasons. In fact, according to the Pew Research Center:
“Nearly two-thirds of Americans are now smartphone owners, and for many these devices are a key entry point to the online world.”
That’s a huge number! But what all these people may not realize is that by using a smartphone, they’re actually using code written by people…everyday!
These days we can simply pull out our smartphones, speak to it to ask for help and – voila! – we’ve got our directions. But contrary to how it may seem, smartphones cannot perform magic.
So how does this actually work? The answer is programming (also known as coding). Programming is the applied task of using a specific language to write an application. This language is then used to create an algorithm, a step-by-step set of rules that consistently solve a problem.
Think of it like a step-by-step recipe for the computer to follow.
Let’s take a closer look at the example of navigation. We need phones to give the exact directions for the myriad of roads, destinations, and starting locations. In theory, there are endless ways to get from one place to another. You can take the highway if you like to drive fast, cruise the back roads for a more relaxed ride.
But it’s fair to say that most people want to get from A to B in the fastest way possible. Here is where the problem to be solved comes in:
How can we quickly travel from here to there, taking into consideration factors like traffic, construction, detours, weather, and road work?
A smartphone uses Dijkstra’s Algorithm to solve this problem. Following the instructions dictated by the algorithm, the computer quickly and strategically explores the different possible routes, evaluates them by their efficiency, and gives you the best result it finds. No paper map necessary.
Coding allows us to create the algorithms that tell the computer (in this case the phone) how to systematically arrive at the solution to this and countless other problems. These algorithms, in turn, make the apps, computer software, and websites that we use every day possible.