DSA Problem #0

Timilehin Tayo
3 min readDec 12, 2023

--

Does the ability to perform Data Structure and Algorithm (DSA) magic make a better software engineer?

I used to think that the answer to this question was a firm “no”. My short dance with DSA in my penultimate year of university convinced me of this answer. Without realizing it at the time, I started a career in game development mostly because of how much I yearned to write code that made sense to me. Learning an algorithm to invert a binary tree did not make sense to me…at the time. I have now spent two years as a game development professional, and I feel a bit different.

Almost every software engineering influencer I’ve come across on the internet does not believe in the use of hard DSA problems to interview potential software engineering employees. The general opinion I get on the internet is that becoming a DSA expert is a kind of necessary evil you have to go through to break into the real world of software engineering where you will no longer be presented with the DSA burden until the next time you interview for a new software engineering role. Is this really the case?

Max Howell — Homebrew package manager — did not believe in DSA sorcery in 2015.

A wise cab driver — who was actually a software engineer driving a cab as a hobby — once said to me, “if everyone shares a particular opinion, it is most likely wrong”. While this may be a bit of a problematic life philosophy, it does find some merit, especially when considering complex ideas. I am afflicted by an inability to perform even decently at things that I don’t believe in. If I’m ever going to become an excellent software engineer, I have to believe in the methods I am going to use to get there. If DSA expertise is truly one of the correct methods, then I have to discard the opposing opinions, find out why and then believe in it.

In my last job as a game developer, I worked extensively with Behavior Trees and a Spatial Hash Grid. However, I didn’t need to invert the Behavior Tree within the hour or perform any esoteric operation on the Spatial Hash Grid. While working directly with somewhat complex systems did open my eyes to the usefulness of DSA, it still didn’t quite justify the ability to perform “DSA sorcery”. I need to know what being a DSA wizard does for your software engineering aptitude, if it does anything. I will be taking DSA topics one after the other, gaining mastery of them and then probing deeper to find out if mastery of these topics helps me to more easily digest software engineering content. I already know that some (usually simple) Data Structures and Algorithms find their way into the work we do daily, but I want to know how this concept scales as we consider more and more complex and seemingly contrived DSA problems.

--

--

Timilehin Tayo
Timilehin Tayo

No responses yet