Why Data Structures - Eishaaya/GMRDataStructuresTest GitHub Wiki

Data Structures & Algorithms FAQ

What is a data structure?

A data structure is a way of efficiently organizing and storing data. Some data structures are even designed to sort and organize themselves automatically.

Why should I care about data structures?

Data structures are seen over almost every aspect of any software platform. Every single application, online, cloud or local has a data structure that holds its data efficiently and effectively. Most people don't know about data structures because they assume data is "taken care of" by some "magic" that most frameworks handle. Knowing how these data structures work and how to make them from scratch allows one to create more advanced/efficient solutions that separate influential developers from coders.

Aren't data structures just storing data in memory? Why does that matter to me?

Data structures are a way of storing data in memory efficiently, which is a valuable skill in today's information-driven world. Any developer can store data, but not every developer can store data in such a way that it can be quickly and easily accessed.

What is an algorithm?

An algorithm is a step-by-step procedure to solve logical and mathematical problems.

What is a search algorithm?

A search algorithm is the step-by-step procedure used to locate specific data among a collection of data.

Why are search algorithms important?

Imagine opening your favorite browser, and seeing the familiar likely home page - a search engine. But something is off - instead of the search bar, you're presented with pages and pages of information, in the order your search engine documented it... looking for something? No problem, just sift through a few billion pages or so, the answer is there someplace! Clearly, this would be a terrible experience! This is where search algorithms come in quite handy. Information, in the amounts that is available today, is simply not useful without fast and efficient searching.

Can't I just always insert alphabetically? What's the point of learning these techniques?

Think back to the search engines example above - new information is constantly added to their databases. To constantly store it in alphabetical order may not be the most efficient approach - and even if it was, it requires a structured way of storing such data, and a means for re-ordering such data every time a new piece of information is added. We're right back to needing data structures and sorting algorithms. Searching is still important, even if information is presented alphabetically - do you really want to keep clicking "Next" until you get to "t" if you're looking for "tiger"? It might take a while! Being skilled at creating these data structures and algorithms means a much deeper understanding of how most applications work and how very large problems can be solved.

What will I learn when I complete this course?

Quite a bit, starting with a general understanding of the different ways data can be organized in computer's memory, and pros and cons of various organizational methods. You will learn how to compare data structures and algorithms to one another using common metrics, and how to pick the right data structure for a given problem. Just as important, you will learn sorting and searching techniques that are fast, efficient, and reliable, no matter what type of data you're dealing with, and what structure you chose to store it in. In summary, you will learn to think like a professional developer when it comes to data-related issues.


<-- Previous | Next -->