Hey folks, it's Howard from Web Dev Distilled here.
Welcome to my very first article in the Data Structure and Algorithms Distilled. πββοΈ
We all know that having solid Computer Science fundamental knowledge like DSA, Operating systems, networking, programming foundation etc... can benefit you so much in the long run as a Software Engineer.
Especially DSA, this kind of knowledge is not just required in the coding interview but they are also super helpful in your day-to-day work when writing software, if not a must to really "think like an Engineer", "think from computer perspective" and stand out from the crowd.
By gaining deep knowledge of DSA, you could know how to write optimized and blazing-fast software. Because you're writing code from the computer vision.
In this series, I will distill everything I know about DSA, core concepts, principles, and the most vital parts we must understand with diagrams, images, code examples, and explanations. Of course, in a digestible format π.
DSA is not too complicated. They're simple, but hard.
Like a muscle, your DSA skill takes time to grow.
Let's dive right in.
1οΈβ£ Formal Definition π€
β Data Structure is a Collection of Values
β The value can have Relationships among them or have functions apply to them
β Each one is different in WHAT IT CAN DO or WHAT IT CAN BE BEST USED FOR
β Each Data structure is Good and Specialized for its own things.
2οΈβ£ LESS Formal Definition π€©
β think of Data structure as any sort of container or compartment to organize our data.
β used to store different types of data, each of them useful for its own things.
β Data structures are designed on purpose to easily perform operations on them effectively.
(Source: ZTM)
To better illustrate. Please take a look at the above image.
We have several things here, the backpack, the drawer, a toybox, a file, and a fridge.
Each of them is designed for its own purpose.
I'm not going to put my food into the box, or a file.
I'm not going to put my books into the fridge.
I'm not going to put my clothes into the file.
By organizing stuff and putting them in the right and reasonable place, when I need to grab something, I know exactly where to get things from.
3οΈβ£ How to understand Data Structure deeply
β Know HOW TO BUILD them.
Don't worry, in the context of software engineering, and coding interviews, there are not too many.
In this series, I will walk you through the process of building data structures and implementing algorithms from scratch.