Home System Tutorial LINUX Why study algorithms?

Why study algorithms?

Apr 12, 2024 am 09:16 AM
linux c language c++ linux tutorial Red Hat linux system linux command linux certification red hat linux linux video

Why study algorithms?

Many times, I have asked myself, what is the use of learning algorithms?

As a student at the School of Software, I have learned C language, C, data structures, and algorithms. Among these courses involving programming, I feel that algorithms are the least useful. Of course, , the use of the little finger here is after work. Most of the time during the work process, there is no need to design an algorithm, or apply a very awesome algorithm in the introduction to algorithms. It is more just a way to complete one module and integrate two modules, mainly design patterns and Viewpoints such as object-oriented are playing a huge role, and algorithms must have simple data structures, and may not even require any algorithms at all. I guess this should not be the case in JAVA, which is more of a module building process. Rare.

There are some awesome people around ACM, ranked in the top ten on POJ, but when it comes to work, his algorithm skills do not seem to be of much help to his work. He just writes something in JAVA every day, and then tests and fixes some bugs. It doesn't involve DP, greed, or graph theory at all. As long as the function is realized, it doesn't matter what you use. This kind of thinking should exist. Not everyone can go to a research institution like Microsoft Asia Research Institute, which has high requirements for algorithms. If you go to an ordinary company, as long as you can speak the language, understand some technology, and have done projects, you can basically meet the requirements. As for the interview, you may Asking a few data structure questions will not ask you to write a DP algorithm on the spot, or give you an ACM question to talk about your ideas. The R&D team doesn’t really need algorithms, let alone the testing team.

Then what’s the use of learning algorithms? In fact, this question is very similar to what is the use of learning mathematics. After working, it is rare for anyone to be able to calculate an integral, or find a limit, or even solve a system of quadratic equations of one variable. Chatting with a senior who has been working for a year, he said that data structure, design patterns, operating systems and English are very important. As for algorithms, he didn't mention them at all, and of course he didn't mention calculus.

I think that if we think in terms of mathematics and teach people to think, the same is true for algorithms. Algorithms are essentially mathematics. For example, there are many algorithms in combinatorial mathematics, as well as discrete mathematics. Many times, this knowledge is not used. Even if it is used, it can be read by looking up a book, and then it will be forgotten again soon. To become an average programmer, you don't need to learn many algorithms. Only those who are determined to become excellent programmers should learn some algorithms, which will be beneficial to their own thinking and the improvement of their abilities. Maybe in a group of programmers, everyone can design patterns and be proficient in C/JAVA, but if you are proficient in algorithms, then you will definitely be better at it. Even if you can't use it, it is your weight. You know more than others and can't do it. Not a bad thing.

The above is the detailed content of Why study algorithms?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1587
276
How to make PHP container support automatic construction? Continuously integrated CI configuration method of PHP environment How to make PHP container support automatic construction? Continuously integrated CI configuration method of PHP environment Jul 25, 2025 pm 08:54 PM

To enable PHP containers to support automatic construction, the core lies in configuring the continuous integration (CI) process. 1. Use Dockerfile to define the PHP environment, including basic image, extension installation, dependency management and permission settings; 2. Configure CI/CD tools such as GitLabCI, and define the build, test and deployment stages through the .gitlab-ci.yml file to achieve automatic construction, testing and deployment; 3. Integrate test frameworks such as PHPUnit to ensure that tests are automatically run after code changes; 4. Use automated deployment strategies such as Kubernetes to define deployment configuration through the deployment.yaml file; 5. Optimize Dockerfile and adopt multi-stage construction

PHP array_column function redefinition error: Compatibility and modern practice PHP array_column function redefinition error: Compatibility and modern practice Jul 25, 2025 pm 08:06 PM

This article aims to resolve the common Cannotredeclarearray_column() function redefinition error in PHP development. This error usually occurs when trying to customize the array_column function, which is already built-in in newer versions of PHP. The article will explain in detail how to safely implement the old version of Polyfill solution through conditional judgment function_exists(), as well as best practices to directly remove redundant custom functions in a modern PHP environment to ensure the robustness and maintainability of the code.

How to build an independent PHP task container environment. How to configure the container for running PHP timed scripts How to build an independent PHP task container environment. How to configure the container for running PHP timed scripts Jul 25, 2025 pm 07:27 PM

Building an independent PHP task container environment can be implemented through Docker. The specific steps are as follows: 1. Install Docker and DockerCompose as the basis; 2. Create an independent directory to store Dockerfile and crontab files; 3. Write Dockerfile to define the PHPCLI environment and install cron and necessary extensions; 4. Write a crontab file to define timing tasks; 5. Write a docker-compose.yml mount script directory and configure environment variables; 6. Start the container and verify the log. Compared with performing timing tasks in web containers, independent containers have the advantages of resource isolation, pure environment, strong stability, and easy expansion. To ensure logging and error capture

Linux vs Windows: Which Operating System is Better for You? Linux vs Windows: Which Operating System is Better for You? Jul 29, 2025 am 03:40 AM

Windowsisbetterforbeginnersduetoeaseofuse,seamlesshardwarecompatibility,andsupportformainstreamsoftwarelikeMicrosoftOfficeandAdobeapps.2.LinuxoutperformsWindowsonolderorlow-resourcehardwarewithfasterboottimes,lowersystemrequirements,andlessbloat.3.Li

How to Schedule Tasks on Linux with Cron and anacron How to Schedule Tasks on Linux with Cron and anacron Aug 01, 2025 am 06:11 AM

cronisusedforpreciseschedulingonalways-onsystems,whileanacronensuresperiodictasksrunonsystemsthataren'tcontinuouslypowered,suchaslaptops;1.Usecronforexacttiming(e.g.,3AMdaily)viacrontab-ewithsyntaxMINHOURDOMMONDOWCOMMAND;2.Useanacronfordaily,weekly,o

How to install software on Linux using the terminal? How to install software on Linux using the terminal? Aug 02, 2025 pm 12:58 PM

There are three main ways to install software on Linux: 1. Use a package manager, such as apt, dnf or pacman, and then execute the install command after updating the source, such as sudoaptininstallcurl; 2. For .deb or .rpm files, use dpkg or rpm commands to install, and repair dependencies when needed; 3. Use snap or flatpak to install applications across platforms, such as sudosnapinstall software name, which is suitable for users who are pursuing version updates. It is recommended to use the system's own package manager for better compatibility and performance.

The Ultimate Guide to High-Performance Gaming on Linux The Ultimate Guide to High-Performance Gaming on Linux Aug 03, 2025 am 05:51 AM

ChoosePop!_OS,Ubuntu,NobaraLinux,orArchLinuxforoptimalgamingperformancewithminimaloverhead.2.InstallofficialNVIDIAproprietarydriversforNVIDIAGPUs,ensureup-to-dateMesaandkernelversionsforAMDandIntelGPUs.3.EnabletheperformanceCPUgovernor,usealow-latenc

What are the main pros and cons of Linux vs. Windows? What are the main pros and cons of Linux vs. Windows? Aug 03, 2025 am 02:56 AM

Linux is suitable for old hardware, has high security and is customizable, but has weak software compatibility; Windows software is rich and easy to use, but has high resource utilization. 1. In terms of performance, Linux is lightweight and efficient, suitable for old devices; Windows has high hardware requirements. 2. In terms of software, Windows has wider compatibility, especially professional tools and games; Linux needs to use tools to run some software. 3. In terms of security, Linux permission management is stricter and updates are convenient; although Windows is protected, it is still vulnerable to attacks. 4. In terms of difficulty of use, the Linux learning curve is steep; Windows operation is intuitive. Choose according to requirements: choose Linux with performance and security, and choose Windows with compatibility and ease of use.

See all articles