Essential Algorithms Every Software Engineer Needs to Know

Maryann Gitonga
2 min readSep 5, 2023

What is an Algorithm?

An algorithm is like a set of precise instructions, a step-by-step plan that tells a computer how to solve a problem. Think of it as a recipe guiding your computer through a task.

These algorithms are like the magic behind how computers efficiently handle tasks, from simple ones like finding a specific item in a list to complex challenges like optimizing routes or compressing data into smaller packages.

The Main Categories

We can group algorithms into three main categories. First, we have searching algorithms, which help in finding specific elements in a dataset, sorting algorithms, which help in rearranging elements in a particular order, and lastly, graph algorithms, which help in solving problems involving interconnected data points.

We’re going to focus on the real heavy hitters: the algorithms that power the systems we use every day as both users and engineers. Alongside these powerful algos, are a few algorithms which do not fall under any of the categories above (miscellaneous), which we simply cannot overlook.

Now, the code snippets we’ll share below are simple illustrations just here to help you grasp the idea. In reality, a lot more complex logic goes into developing algorithms for the real-life applications.

Searching Algorithms

Sorting Algorithms

In closing, think of algorithms as the backbone of countless real-world systems that shape our daily lives far beyond the realm of interviews. These problem-solving techniques power the apps that guide you through traffic snarls, help compress files for swift file transfers, and optimize the delivery of your online shopping haul.

Learning algorithms isn’t just about cracking codes; it’s about unlocking the magic behind practical solutions. It’s your ticket to streamline processes, save on resources, and intentionally contribute to this tech-driven world. Algorithms are not just for interviews; they’re your key to a world of innovation and impact. Happy exploring! 🚀

--

--

Maryann Gitonga

A Software Engineer who loves trying out different tooling & engineering concepts in Back-end Engineering & DevOps. An explorer in the ML world too!