Living an “Algorithmic” Life

Jaskaran Singh Bhatia
The Startup
Published in
7 min readFeb 10, 2021
Photo by Alexander Schimmeck on Unsplash

The distinction between Computers and Humans is not as striking as one would initially assume it is. We conventionally say that a computer is a “dumb” aggregate of semiconductor devices that can’t think on its own, and we’re right in saying so. The common general purpose computer does have to be programmed before we can expect anything out of it — it needs to be told what it’s tasks are, what it’s constraints are, what it will get from us in the form of an input, and what it needs to compute as the output. At a very high level, a computer is just a machine that maps inputs to outputs subject to some constraints. Humans, on the other hand, are complex emotional beings that have much more going on inside of them, right? We have the capability to think; we have what is called “free will”. We can make decisions for ourselves, and then act upon those decisions. We can sense whatever’s going on around us, and then decide what it is that we want to do. Our speech, actions, gestures etc. — basically all forms of ways we interact with our environment and the people around us — are shaped by what we see, touch, hear, feel, then interpret and process. At a very high level, humans factor in their surroundings, and based on laws, norms, and various religious, personal, and societal conventions, they act.

Come to think of it, that sounds an awful lot like just mapping inputs to outputs subject to certain constraints. My point is, there may be numerous arguments to be made against the whole concept of comparing Man to Machine, but at the micro-level, everything we do boils down to a decision problem that is sometimes influenced by external factors. Our lives are made of the very problems that computers have been taught how to handle. If you analyse each activity, you will find a striking similarity between said activity and some aspect of the rather vast field of computer science.

Say you’re sitting at your desk working on a paper for school. Your stomach makes the characteristic “dying whale” sound. This is an Interrupt. You’re hungry. Decision point: do you get a snack, or do you finish off your work first. Your mind (consciously or otherwise) weighs in the pros and cons. It is anticipating the outcome and wants to act in the way that would be most beneficial to you, much like a Lookahead mechanism that’s implemented in various computer-y contexts. Eventually your brain does a cost-benefit analysis and says:

The analogy doesn’t end here. When you’ve decided to move between tasks, you need to do a Context Switch. You need to save the current state of your process so that you can get back to it and start off where you left. It’ll take you some time to “get in the zone” again when you’re back, much like the overhead that a processor has to bear.

Say, then, that you decide to make a sandwich. You check if you have all the ingredients by Searching through your pantry. You realise you’re missing some sauces so you decide to drive to the store. Upon reaching, you look at the store map and mentally plot the Shortest Path to the aisle that has the sauces. When you can’t find what you need, you Query an employee and they return with exactly what you need. At the checkout, the cashier says “Thanks for shopping with us.” You say “You too.” Oops! Cache Miss these weren’t the words you were looking for.

When you reach home, you can’t seem to find your keys. Your house is Encrypted. Thankfully you remember your neighbours have your spare key for Redundancy. You ring their bell but nobody answers. You knock, and call out their name. They come out and say they had to cut off the bell connection because the neighbourhood kids would ring the bell and run away. What you just experienced was the aftermath of a Denial of Service attack…

The key idea is that our day-to-day lives can be broken up into these small scenarios, each of which have a counterpart in computer science that are entire fields of research all on their own. It’s easy to describe a computer as a machine that simply follows instructions. We don’t realise that there are countless instances where a computer fails to provide an optimum solution even when the problem is very well defined, such as checking if a number is prime. What is a fundamental property of arithmetic becomes a nightmare when the order of the numbers we’re talking about gets larger and larger.

In such situations, a computer too has to make optimisations and approximations not unlike what you’d expect a human being to do. We usually try to find shortcuts, or answers that are good enough when we’re trying to figure something out that’s immensely involved. Often, we try to reduce the complexity of problems, simplify our assumptions, or even just lower our expectations. Sometimes, we leave our fate to luck and just hope for the best. A computer is no different and resorts to similar means when it’s stuck.

Everything we do is a tradeoff. As Big Sean says, we “Win Some, Lose Some”. Every time we pick a path, we’re letting go of the other one. As they say, you cannot eat the cake and have it too. Studying to become an engineer like your parents want means you have to let go of your desire to become a photographer, as has been the popular Indian stereotype. But trade-offs are not just limited to life altering, career changing decisions — soup or salad, iPhone or Android, sleep or study — every time there is a limited resource in the picture (which is literally all the time), there is a tradeoff. Time, money, health, attention, processor speed, memory (both, the human brain and computer RAM) — all of these are limited. A processor choosing to throttle performance for saving power is not too different from a human napping for a quick 15 minutes before they get back to work.

Whether or not you agree with my interpretation of our lives as being a collection of activities you can draw parallels to computers with is a choice I leave to you. What I’d strongly suggest you to do, however, is to grab a copy of Algorithms to Live By, by Brian Christian and Tom Griffiths, and to try to understand the perspective they’re trying to throw at you.

As a computer science student, I couldn’t help but feel this weird happiness (I’m sure there must be a German compound word to express exactly what I’m talking about) after finding words and phrases that I knew from the context of my courses, being applied to real life in the way that the authors have. Every other page has a jargon that I look at and immediately identify.

Leonardo Meme
Me finding coursework while leisure reading

Of course, then, I suggest you to read the book if you’re someone who has anything to do with computers. Also be sure to check out the notes section at the back of the book because it’s a goldmine in itself. The authors have done a wonderful job in simplifying difficult concepts in the main text just enough for the average person to read it, but there’s ample resources and explanations at the back that give someone with a computer science background a lot of extra (mostly technical) insight.

But if you’re not someone who’s studying computers, it should be all the more reason for you to understand this philosophical approach to computer science that the authors are bringing to the fore. By reading about some of the things that computers do to make their lives easy, we can definitely pick up a thing or two to make ours less hellish.

In fact, after going through the book, the one thing I understand is that we employ a lot of these “algorithms” that the authors talk about implicitly. We don’t have to know what Explore/Exploit is because we already follow a similar approach in life — exploring, that is learning, until we’re able to exploit — that is using what we’ve learnt to earn. This book is less about bringing out similarities between our lives and how a computer works, and more about how we can actively identify these processes that the two share and use preexisting research on the one to better optimise the other. It’s about using proven algorithmic techniques to help us make our real-life decisions better.

By understanding how some of the most complex machines have been designed and how they run, it gives us better context for trying to understand something that’s even more complicated: the human brain.

My name is Jaskaran and I’m an undergraduate Computer Science student at BITS Goa. I am a visual designer and would love if you could check out my work at jaskaransbhatia.com

--

--