### Don’t be afraid of the mathematical part.

Data structure and algorithms do involve some mathematical reasoning and proof, especially when analyzing the time and space complexity of an algorithm.

The big-O complexity analysis is important, but you don’t need to worry about it too much. You don’t need a high IQ or abstract mathematical knowledge. You can master it as long as you have a high school mathematics level.

You will have more confidence after months of practice and learning.

## What is data structure and algorithm essentially?

Generally speaking, the data structure is a storage structure for a set of data, an algorithm is a method and pattern for solving problems.

I will help you understand these two concepts from examples.

Take an example

**How do you find a book from a library?**

- Method #1: You can check each book one by one until you find the wanted book.
- Method #2: You can first locate the bookshelf according to the category of a book, whether it is humanity, or science, or computer science, and then you search in the specific bookshelf.

In general terms, these two methods for finding a book are both algorithms, so we get the definition of an algorithm is: The methods for solving problems, which could be implemented in programming.

In detail, when we talk about data structures and algorithms, we are talking queues, stacks, heaps, binary search, dynamic programming and so on.

These are patterns for abstraction and solving problems, which invented by computer pioneers. We can effectively learn them and use them to solve many practical development problems.