What is the purpose of learning algorithms?

Source: Internet
Author: User

I have asked myself and learned many times.AlgorithmWhat is the purpose?

As a software college student, I have studied C language, C ++, data structures, algorithms, and programming courses, I feel that algorithms are the least useful. Of course, the usage here is a small point after work. In most of the work process, you do not need to design algorithms, or apply them to a very good algorithm in the introduction to algorithms. What's more, you just need to complete one module, the integration of the two modules is mainly because the design patterns and object-oriented ideas play a huge role, and the algorithms must have a simple data structure, or even no algorithms at all, I guess this situation should be quite common in Java's process of building more modules.

There is a kind of ACM cool people around. poj ranks top 10, but at work, his algorithm skills seem to be of little help to his work. He writes something in Java every day and tests the change bug. It completely involves no DP, greedy, or graph theory. As long as the function is implemented, it doesn't matter what to use. This idea should exist. Not everyone can go to a research institution that has high algorithm requirements, such as the Microsoft Research Institute. If a company wants to use a language, understand some technology, and do a project, it can basically meet the requirements, as for the data structure questions that may be asked during the interview, you will not be asked to write a DP Algorithm on site, or use ACM questions to explain your ideas. The R & D team does not need algorithms very much, not to mention the testing team.

So what is the use of algorithms? In fact, this question is similar to learning mathematics. Who else will calculate an integral point after work, or calculate the limit, or even solve a one-dollar quadratic equations is rare. Chatting with a senior who has been working for a year, he talked about the importance of data structures, design patterns, and English in the operating system. As for algorithms, he didn't even mention calculus.

in my opinion, if we think in mathematics and teach people to think about this concept, the same is true for algorithms. algorithms are essentially mathematics. For example, there are many algorithms in composite mathematics, and discrete mathematics. Most of the time, this knowledge is not used. Even if it is used, you can check the book and then forget it in a short time. To become a common Program member, you do not need to learn many algorithms. As long as those who are determined to become excellent programmers, they should learn algorithms, it will be good for both your own thinking and your ability improvement. Maybe everyone in a group of programmers will design patterns and be proficient in C ++/Java, but if you are proficient in algorithms, you will certainly be able to use them well, it is also your weight. It is not a bad thing to know more than others.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.