(This is the first post in the “Hello Mathew” series. The aim of this series is to share the richness of a professional software engineer’s life with budding engineers. I hope that some of the experiences I share will encourage others to embrace programming as their passion)

Data Structures and Algorithms are essential topics in most software engineering job interviews (at least in the early years).

However, this is an aspect of the profession that is sometimes overlooked. It’s especially true with people who came to programming through a “build it” approach. Think of what draws you the most to programming. Is it that you can build amazing things in the computer ? If so, contrast with someone else for whom programming is more about solving difficult puzzles or tasks. There are higher chances that a “build it” person might overlook the topic of algorithms.

Another reason the topic get overlooked is the fact that most real world software engineering jobs hardly ever involves a programmer thinking hard about what data structure or algorithm to use.

As a result, sometimes there is less motivation to study and understand data structures and algorithms academically.

In what follows, let me try to provide some motivation for why/how this should/can be changed.

The easiest way to think is to use the analogy of Mathematics. All of us, especially the engineers, had a good share of serious Math study from school right through to university. Algebra, calculus, trigonometry, probability, statistics and a whole lot more. Pretty advanced compared to what gets used in daily life.

I remember practicing the simplification of complex trigonometric expressions using a bunch of trig identities – that was lot of hard work. Am sure you will also have similar memories.

The key thing is that all that work did help to develop an ease with Mathematics; a confidence that proved to be essential in later study of specialized engineering disciplines.

So too with programming. Data structures and algorithms are to programming, what mathematics is to engineering.

Depending on your field of engineering the direct use of Mathematics may vary, yet it’s an essential foundation.

This analogy is also useful to understand what it takes to develop that foundation. Just like Mathematics, there is no short cut to practice. Practice, practice and more practice ! In the beginning, hardly anything will come natural, but with practice we start to see the patterns and connections.