Algorithmic Thinking for a Better Life

Algorithmic Thinking for a Better Life
Image by Danni Liu

I remember my first encounter with the term "algorithm." It was in a high school computer science class. At the time, it didn't really make a big impact on me. Fast forward two decades and my perspective has shifted significantly. A big part of this change can be attributed to one of Professor David Malan's dynamic lessons on algorithms. The cover photo you see are of him dramatically tearing apart a phone book. He used this theatrical method during a lecture to explain the binary search algorithm. I was completely enthralled for the entire two hours of the lesson.

As a data professional, you might wonder why I would delve into algorithms, which seem more suited for developers. It's a valid question. I spent some time reflecting on its relevance- I concluded that understanding algorithms is relevant to my field and everyday life.

So, how do algorithms fit into my work and life? You might be scratching your head, wondering where I'm going with this. Let me explain.

Algorithms are not just lines of code in a computer program that tell the computer what to do; they are a way of structuring thought and action to achieve goals more effectively and efficiently. As a data professional, our line of work can be somewhat ambiguous. The requests we receive or the business problems we tackle are seldom clearly defined, and neither is the solution. Does this sound familiar? Life, too, is peppered with challenges of varying complexity and clarity. Some problems are easy to solve, some problems you don't even know what the problem is, and some problems are so huge and overwhelming that it's just paralyzing. I believe learning about algorithms helps cultivate algorithmic thinking. Applying this type of thinking can help us navigate challenges in a structured and efficient manner. It can spare us from, if not reduce, the length of time we spend on the emotional rollercoaster ride of anxiety, panic, tears and breakdowns.

So, in this blog, I would like to share how applying algorithmic thinking can help with several situations. Specifically, we will look at these:

  • Problem-solving
  • Decision-making
  • Efficiency and productivity
  • Creativity and Innovation

To make it more real, we will use simple life examples, such as planning a vacation and grocery shopping, to illustrate the application of algorithmic thinking on these points.

Problem-Solving

In the data field, the problems we handle are often complex and layered. I find engaging in algorithmic thinking very helpful. This approach involves deconstructing the problem into smaller, more manageable parts and then systematically solving these parts. For instance, let's say you're unclear about the problem despite someone giving you the brief. The brief could be ill-defined. Your first step is to figure out the problem. This might mean talking to people who know more about the issue or asking the right questions to get a clearer picture. If you're still stuck, it probably means you need to break the problem down even more. A good rule of thumb is to simplify the problem to a point where even a computer could understand it – then you know you're on the right track to solving it.

Let's turn to planning a vacation as an example. Using algorithmic thinking here would mean first picking a destination based on things like how much you want to spend, the weather, and what you like to do. After that, you plan the trip by dividing it into days and planning activities for each day. This approach is a lot like solving smaller parts of a big problem in data work. You take it step by step, and it helps you manage everything without getting overwhelmed.

Decision-making

Algorithmic thinking can be helpful in decision-making. It involves listing all the important points (like cost, time, and benefits) and possible results for each choice you have. It's similar to how a computer program (algorithm) examines each piece of information and decides which parts are most important. This way of thinking helps you see the pros and cons of each option clearly. It ensures you're not just making a random choice or going with your gut feeling; instead, you're thinking through each step carefully, increasing your chances of making a good decision.

Let's apply this to planning a vacation. You might be trying to decide between several places to visit. Using an algorithmic approach, you'd list each place's good and bad points. This could include things like how much it costs, what fun activities are there, and how long it takes to get there. Then, you decide what's most important to you, like staying within budget or having many things to do. This is similar to how a computer program in machine learning, called a decision tree algorithm, works by sorting through options based on what matters most.

Efficiency and Productivity

Efficiency and productivity are increasingly important at work and in our daily lives. We're often faced with the challenge of doing more with less, and personally, I'm always looking for ways to make the most of my 24 hours.

Learning about algorithms has got me thinking frequently about optimising many aspects of life, like how I can structure my days and weeks to get the most out of it or find the most efficient way to get things done.
It also makes me consider where the bottlenecks are and how I can create systems that not only scale but also, ideally, run without me being the hamster powering the wheel.

Another aspect of algorithmic thinking is that it sharpens the ability to recognise patterns in processes. Once these patterns are identified, you can then apply them to different problems or situations in novel ways. For example, consider how you do your weekly grocery shopping. You might initially list items as they come to mind - fruits, cleaning supplies, bread, etc. However, by applying algorithmic thinking, you notice patterns, like the unnecessary back-and-forth across the supermarket. So, you try a different approach: rearranging your list to match the supermarket's layout - all the produce first, then dairy, followed by frozen foods and household items at the end. This might feel odd at first since it's not how you naturally think of these items, but this reordering leads to a much more efficient shopping experience. You're not crisscrossing the supermarket; you're moving through it logically, which saves time and reduces the chance of missing something.

Creativity and Innovation

Algorithmic thinking might seem like it's all about logic and structure, but it actually plays a significant role in enabling creativity and innovation. Here's why:

Spotting Patterns: When you're used to thinking about problems in steps, you get better at noticing patterns. This can lead you to some pretty cool and unexpected solutions because you're looking at things differently than usual.

Trying Things Out: A big part of algorithmic thinking is about testing out different ideas and seeing what works. It's a lot like experimenting. You try something, see how it goes, and then tweak it to improve it. This is how a lot of creative work happens, and it's like how machines learn to get smarter over time.

Flexibility: Even though algorithmic thinking is all about structure, it makes you more flexible in solving problems. It gets you into the habit of looking at problems from all angles and trying out a bunch of different solutions. This way, you're not just stuck with the first idea that comes to mind but exploring all kinds of possibilities.

And that's a wrap! I hope this blog has shown you that algorithmic thinking isn't just for tech experts or data whizzes – it's something we all can use to improve our lives.