Dive Deeper Into Data Structures & Algorithms

Kevin Sheehan
Geek Culture
Published in
3 min readMar 10, 2021

--

In this blog, I share my experience learning various data structures & algorithms (DS&A’s) & how I found a much better understanding after taking the time to create an application that utilized what I learned.

A little over one month ago, in early February, I decided to spend time studying DS&A’s in the hopes that learning them will allow me to utilize them for future projects, interviews, & jobs. I would spend many hours each day learning the different concepts. Learning how to traverse binary search trees, understanding the differences between hash maps & objects, memorizing the big O notation of different sorting algorithms, etc.

However, there was something that bugged me while I was learning. I was able to memorize all these concepts, however, the learning felt very shallow & would think to myself “would I know when to really use this information?” or “would I remember this stuff a month or two from now?”. The realistic answer to these questions was… not really, at least not with the level of understanding I wanted.

This is when I decided to take my learning to a deeper level & create an application that utilized these concepts. An application that would not only utilize the DS&A’s but allow others using the application to get a sense of how they worked as well. So I have begun creating a web application that takes the data structures or algorithm & creates an animation that steps through the process of how they work.

One of the animations I created on my app. Displays the creation of a binary search tree & the algorithm to find one of the nodes in the tree.
One of the animations I created on my app. Displays the creation of a binary search tree & the algorithm to find one of the nodes in the tree.

The effect it had on my learning was immediate. I began with animating sorting algorithms, merge sort, quick sort, & bubble sort. Then quickly moved on to traversing binary search trees, figuring out how to animate adding or finding nodes & their connections.

Taking the time to think about each of the steps involved so I can highlight the differences in my animations allowed me to understand the details significantly better than simply taking notes. My learning was no longer about memorization. I was now taking a concept & utilizing every aspect of it to create a visualization that is easy to understand. My understanding improved significantly & I found myself enjoying the time I spent, engrossed in my learning.

Currently, I am learning & implementing animations to simulate pathfinding algorithms & can confidently say this process has not only allowed me to learn the concepts at a deeper level but also improved my skills as a developer. If you are someone who is currently learning or plan to learn DS&A’s, then I highly suggest not just taking notes but finding a way to apply the information you learned. If you’re anything like me, you will find the learning much more enjoyable & see significant improvement in how much you learn.

Photo by Christopher Gower on Unsplash

--

--