Pursuing a career in Software Engineering is a lot of work. I get a lot of advice from different angles that it seems quite overwhelming. At different points part of the advice included studying Data Structures and Algorithms. One problem I had though was that I was never satisfied with the reasons I was given to study it (maybe that was why I was always scared of it).As a self taught developer who reads materials as it comes my way and relies on answers from Stack Overflow a lot, the only reason I could conjure up for studying DS & A (Data Structures and Algorithms) was I needed to know them in order to answer questions during interviews. It wasn't till I started reading that I understood how wrong I was.
Learning Data Structures and Algorithms isn't just about the interview – it goes beyond that. Have you ever wondered WHY companies want you to know these things? Its all about implementation! Data Structures were created to improve the time and space complexity. Algorithms are the steps taken to perform a given task. Now naturally, lesser steps would translate to smaller time. This is important to companies because time spent and space consumed translates to money – money for production, money for maintenance. If the software took too much time for work, it wouldn't be of much use to anyone. If it crashed as result, that would mean bringing more people in to fix it.
When we solve problems as newbies, we just hack till we find solutions. After doing this for a while, patterns begin to emerge. Now instead of going through the same painful process each time you need to solve a problem, DS & A helps us shorten the time it takes to craft a solution. Imagine immediately searching for a number in an array, I know immediately a binary search would be the fastest way to do it! It also optimizes operations for better efficiency – they take lesser time or lesser space (there are trade offs, through). A solution hacked together might work, but the difference in efficiency when compared to a solution carefully crafted using Data Structures is clear.
Bottom line, having knowledge of Data Structures and Algorithms is like a superpower. Its like the ultimate fashion trend that never goes out of style. You'll be able to implement it no matter the time or the language. Most books on the topic write solutions in pseudo code making it easier to understand despite your background. It also makes you see problems differently. Solving problems won't be about hacking things together anymore. There's a mathematical side to it all (the side that leaves me bewildered the most) but I suggest just trying to understand the basics first and ease into it slowly.
I'm still studying but would love learn more things that can be gotten out of DS & A.👋
A social network for devs?
Level up every day