Tell me about me

Data Structures and Algorithms is a required textbook in universities. In fact, in the university or learn quite good, the end of the semester are above 85, but from the school recruitment to now a little useless. What the university tells is also relatively shallow, also forgot now almost. College is actually the best golden time, now have to squeeze time. Now can only sigh: young do not know the algorithm is good, the wrong sister when chengbao. I have been learning it for three months now. At present, I feel that learning algorithm is not a difficult problem, but whether you can stick to it, because it is really boring! So WRITE an article to motivate and urge myself.

Reasons for learning algorithms

I think except algorithm engineer, basically will not use in the work, so the most direct reason to learn algorithms is for the interview. And, of course, these benefits:

This will be the road to strength. Refuse to turn screws. Refuse to be a code carrier.

2. Necessary for making wheels. If the company asks you to optimize a database or framework someday, or if the company wants to design its own database or framework, can you take on the responsibility? Far from it, you might think, that’s what bigwigs do. Don’t deny yourself in the future, the algorithm will let you and the brick-moving party gap, years later, suddenly found that the big man is me. The wheels will be built, the tickets will be less.

3. The bar for programmers is higher. I don’t expect learning algorithms to improve me much, and I don’t care if it’s useful for me in the future. He who sweeps his fellow men to death is king. The IT industry is advancing by leaps and bounds and demanding more and more. The new technology won’t catch up, but the underlying principles are universal. Such as data structure and algorithm, computer composition principle, computer and network and so on. From the current point of view hibernate can not learn, I directly learn Springboot. Spring may or may not learn it, but these underlying principles will always need to be learned. So learning the underlying principles is a sure bet.

4. Necessary for entering big factories. The bigger the factory, the more it values the fundamentals and algorithmic power of the computer, the more money it wants to get to the better people.

The target

I can watch it in interviews, but I can blow it in daily life

Learning plan

B station watch video + “Algorithm fourth edition” –> “sword finger offer” –> brush Leetcode

The video of station B is quite good after I see it. Now I have been following it and finished watching it now. I feel that I can only be an introduction, and I will talk a little bit about B trees, but I will not talk about implementation, and I will not talk about red black trees at all, so I have to see for myself. Or practice in the individual ah. Generally listen to the ideas of an algorithm, and then began their own LU code, in comparison with others, learn from each other, during the interspersed to see the fourth edition of the algorithm. (OS: I can’t eat this book. It’s a supplement. It’s thick and unspoken, but authoritative.)

During the period of cultivation, I encountered the following situations:

1, I write with 100 lines, others only use 10 lines, this is also ok, at least can write out. Some can’t write even if they have ideas.

2, can not write can only look at the answer and then understand, otherwise in the consumption is a waste of time, there is no need. In fact, the most important thing is not to knock, thinking time is often accounted for.

After three months, WHEN I was writing this article, I thought about what made me stick to it. Maybe it was the sense of achievement I felt every time I wrote according to my own ideas, or maybe it was the heart that I never wanted to be a salty fish.

But this is just the beginning of the doge.

How to learn

Watch video + see algorithm book + own summary

Learning algorithms are not built overnight. Every little makes a mickle. Even if it takes a little longer to understand. Such words later review to save a lot of time, efficiency will be greatly strengthened, the important thing is the method, not dead knock. Finally there is ** the most important thing is persistence!! ** Without these two words, nothing is worth mentioning.

The body of the

Learning algorithms must learn data structures and lay down a good foundation. Line substitution, discrete preconditions have to be learned. Otherwise, if I encounter an adjacency matrix, I’ll just use it. I don’t know what it is.

Current progress (referring to offer)

The queue

The stack

recursive

The sorting

The tree

figure

Commonly used algorithm

The sword refers to offer

Ongoing update