Data structure and blah blah blah not again! Well, that’s how I felt anytime a conversation around that topic comes up. Maybe, it was because of how I was taught in my computer science undergraduate course or because of how complex and abstract it could be. Well, whatever the case, I found out later it’s not as difficult as I thought. While scrolling down Twitter today, on my feed I saw some “tech bro” talking about a data structure concept, they made a mountain out of a molehill. Found out that this topic is usually perceived as difficult because of how abstract it can be and its “lack” of usage in day-to-day coding by software engineers. Thought to myself, why not write a series on this topic by giving real-life scenarios to these concepts and turning that “mountain” into a molehill. Yes that’s why you are here, so let’s get started.
What is data structure?
Data structure is a way to store, organize and manage information(data) in a way that enables efficient access to that information. For example, the oxford dictionary is used to look up the meaning of an English word. Words in the dictionary are arranged in alphabetical order. This is done so that lookup of words will be very easy for dictionary users. Words in this context can be referred to as data, while the order in which they are arranged or presented in the dictionary, which is alphabetical, can be referred to as the data structure. Hurrah, you are now a data structure expert! oops not yet, but you’re going to be one very soon… Well, in computer science we have several ways in which data can be stored. I.e Arrays, Stacks, Queue. e.t.c. The key is knowing how various data structure works when to use them and which to use while proffering solution to a problem.
Now, let’s talk about algorithms.
Algorithm is a process or set of rules to be followed in order to solve a problem. I love taking coffee, this is how I make my coffee when I want one. Heat up a cup of water, add 1 to 2 teaspoons of coffee to a mug then, I dissolve the coffee with a tablespoon of cold water. Pour the hot water into the mug. Finally, I stir the coffee and serve it. I love my coffee black no milk or cream, you can add that to yours when making. Yummy, coffee is ready! Well, the simple process listed out is an algorithm for making coffee. Easy right? If you have a simpler way you can let me know in the comment….lol.
Now that we have defined what data structure and algorithm are, the next thing we are going to talk about is what Big-O is and how to analyze the running time of algorithms. This knowledge is used to measure the performance of an algorithm or data structure. As I stated earlier, it’s a series aimed to equip you with the knowledge on how to apply data structure knowledge to the software development process and relate the learning process to real-life scenarios, also approaches and break down technical problems with performance in mind. So, in my coming writings, we will be talking about arrays, binary trees, hash tables, graphs, stacks, and queues…and go as far into advanced concepts like dynamic programming. So I enjoin you to subscribe to my newsletter placed at the end of this article so you get notified as posts roll out.
While not “knowing” data structure and algorithms does not make you “less” of a developer, yeah no gatekeeping…but it certainly makes you a better one. So why not become a better one?
Thanks for reading! If you liked this post don’t forget to clap, also you can consider entering your email here if you’d like to be added to my once-weekly email list. You can also follow me on Twitter & Github.