In the season of gold, silver and silver, have you learned your algorithm well? (2 free books at the end of the article)

In the season of gold, silver and silver, have you learned your algorithm well? (2 free books at the end of the article)
picture

It is another recruiting season of gold, silver and silver. You need to ask yourself, have you passed the level of the algorithm?

1 written in front

The results of the 2022 TIOBE annual programming language rankings came out. Python ranked first, and C++ finally surpassed Java and rose to third place.

picture

In previous years, the rankings of this list have also been different.

In the past few years, Java was relatively popular, but in the past two years, with the rise of artificial intelligence (AI), Python has become the head again.

It can be described by a line of poem: "Generation of talented people come out from generation to generation, each leading the way for hundreds of years."

Behind the ever-changing changes in language popularity are technological innovations and the constant changes and development of mainstream programming tools.

It is this kind of rapid change that makes people feel that the IT industry is an industry that is constantly updated and requires continuous learning.

I do not deny this point. Engaging in the IT industry does require continuous learning, perseverance and quality of continuous improvement, but if we look at the essence through the phenomenon, we will find that no matter how the process trend of programming languages ​​changes and how programming tools are updated iteratively, other There is always an invariant behind it, which is the "algorithm".

2 Why Algorithms Matter

2.1 Algorithm is the soul of the program

In the programming world, algorithm + data structure = program .

If the data structure is compared to the body and skeleton of the program, then the algorithm is the soul of the program.

The flesh and skeleton of the data structure can be implemented in any language (such as C++, Java, Python), while the algorithm is the most invariable and essential thing.

As Kai-fu Lee wrote in the book "The Power of Algorithms": "Algorithms are one of the most important cornerstones in the field of computer science... Although programming languages ​​should be learned, it is more important to learn computer algorithms and theories, because computer algorithms and theories are more important. Important, because computer languages ​​and development platforms are changing with each passing day, but those algorithms and theories remain the same, such as data structures, algorithms, compilation principles, computer architecture, relational database principles, etc.”

2.2 Only by breaking through the barriers of tools can you be free

Modern programming languages ​​encapsulate the implementation of many algorithms and data structures in their own class libraries, which greatly reduces the difficulty and threshold of programming, but it also creates huge dependencies for people.

Programmers are becoming more and more like construction workers. They only need to assemble module black boxes together according to business logic, and a program is built. But what the inside of the black box looks like, you may never know.

In this way, a layer of barriers is virtually added to one's own cognition and vision, and it is difficult for developers to have their own way of thinking, let alone innovation.

So Yukihiro Matsumoto, the father of Ruby, once said that we should focus on algorithms rather than tools. Only with good algorithmic thinking can we break through the barriers of tools and gain freedom of thought.

2.3 Interview

Generally speaking, technical interview = basic knowledge and business logic interview + algorithm interview .

The basic knowledge and business logic part can be mastered quickly through a short-term surprise, while the algorithm needs a period of accumulation and practice to reach a certain height.

Therefore, the examination of the algorithm is very differentiated and can be used to screen talents. So now more and more large companies are more willing to use data structure and algorithm issues as examination questions for recruiting talents (especially fresh graduates).

3 How to learn algorithms

3.1 How can I learn data structures and algorithms well?

The method I recommend is very straightforward, and at the same time I think it is more effective and reliable. This is the "three-step strategy" of basic + improvement + brushing questions .

First of all, it is extremely important to lay a solid foundation for data structures and algorithms. Because the systems and branches of data structures and algorithms are relatively complex, and the problems involved are ever-changing, only by laying a solid theoretical foundation can we deal with various complex problems more confidently.

After mastering the basic knowledge of data structure and algorithm, you need to further improve the level on this basis. Learning in the improvement stage is challenging, because the theory of this part of the content is relatively complex, and the topics are more flexible and changeable. If we can work hard to break through this part, we will get a comprehensive sublimation in the field of data structure and algorithm.

The last stage is to brush the questions. Whether it is participating in a programming competition, taking a postgraduate entrance examination, or participating in a written test interview recruited by a large factory, in the final analysis it is also a kind of test-taking. To pass the exam, brushing the questions is an essential part. The question brushing we are talking about here is done under the condition that a solid theoretical foundation has been laid (completed the first and second stages of learning), so the question brushing here should be more targeted, and the main purpose is to pick up lost things To fill in the gaps, we will repeatedly temper the weak links, key points and difficulties we found in the first and second stages of learning through a large number of questions, so that we can master the key points of knowledge more comprehensively and proficiently, and finally win the exam.

picture

3.2 Friendly recommendation

Here I recommend the book **"The Big Bang of Algorithms"** to everyone. This book is a book that can not only help readers build a solid foundation of data structures and algorithms, but also help readers improve their competitiveness in the workplace.

picture

Whole book adopts Java language to write, divide up and down two, in all 15 chapters.

  • The first part (chapters 1~9) is the basis of data structures and algorithms . It comprehensively sorts out the basic knowledge of commonly used data structures and algorithms for readers. The content covers arrays, linked lists, queues, stacks, tree structures, graph structures, sorting and searching. Algorithm, exhaustive method, recursive method, greedy algorithm, dynamic programming, backtracking method, etc.;
  • The next part (chapters 10~15) is a detailed explanation of Dachang’s classic interview questions . It collects more than 50 classic and interesting Dachang interview questions, and provides detailed analysis and answers for each question, aiming to help readers comprehensively Improve the ability to use the knowledge of data structures and algorithms to solve practical problems, and also lay a solid foundation for readers to prepare for the written test and interview. Figure 4 shows the knowledge framework of the whole book.

picture

In the process of creation, this book adheres to the creative concept of "solid foundation, emphasizing practice, and drawing inferences from one instance". I hope this book can accompany readers to learn data structures and algorithms well in a relaxed and pleasant atmosphere.

This book is suitable for students of computer-related majors and algorithm enthusiasts to study and use for further study. It can be used as a job-hunting reference book for fresh graduates and social recruiters for written examinations and interviews. teaching materials.

picture

picture

picture

4 Benefits at the end of the article

In response to the needs of the majority of fans, I will give away books related to software . Interested friends are welcome to pay attention to my CSDN technical community activity post: [The 22nd Community Welfare Book Donation Activity] The season of gold, silver and four, how do you plan to prepare for the algorithm? difficulty? | 2 free books at the end of the article .

Or click on the WeChat official account business card at the bottom of the article and reply to [Algorithm] to participate in the book donation activity.

jiantou_2222

Guess you like

Origin blog.csdn.net/szullc/article/details/130119662