ホームページ >システムチュートリアル >Linux >なぜアルゴリズムを勉強するのでしょうか?
私は何度も、学習アルゴリズムの何の役に立つのかと自問してきました。
私はソフトウェア学部の学生として、C言語、C、データ構造、アルゴリズムなどを学んできましたが、プログラミングに関する授業の中で、アルゴリズムが最も役に立たないと感じています。ここの指は仕事の後です。作業プロセスのほとんどの場合、アルゴリズムを設計したり、アルゴリズムの導入で非常に優れたアルゴリズムを適用したりする必要はなく、1 つのモジュールを完成させ、主にデザイン パターンとビューポイントの 2 つのモジュールを統合するだけの方法です。オブジェクト指向などが大きな役割を果たしており、アルゴリズムは単純なデータ構造を持つ必要があり、アルゴリズムをまったく必要としない場合もありますが、モジュール構築プロセスに近い JAVA ではこれは当てはまらないのではないかと思います。 。
ACM の周りには POJ でトップ 10 にランクされる素晴らしい人材が何人かいますが、仕事となると、彼のアルゴリズムのスキルはあまり役に立っていないようです。彼は毎日 JAVA で何かを書いてテストし、いくつかのバグを修正するだけで、DP、欲張り、グラフ理論などはまったく関係ありません。機能が実現できれば何を使っても構わない、そんな考え方があってしかるべきです。マイクロソフトアジア研究所のような、アルゴリズムに対する要求が高い研究機関に誰でも行けるわけではありませんが、一般企業であれば、言語が話せて、ある程度の技術が理解でき、プロジェクトに携わったことがあれば、基本的には行けると思います。面接に関しては、データ構造に関するいくつかの質問をするだけで、その場で DP アルゴリズムを作成するよう求められたり、アイデアについて話すための ACM の質問を与えられたりすることはありません。研究開発チームは実際にはアルゴリズムを必要としていませんし、テストチームは言うまでもありません。
では、学習アルゴリズムは何の役に立つのでしょうか?実際、この質問は数学を学ぶことに何の意味があるのかという質問と非常によく似ています。仕事をした後、積分を計算したり、極限を見つけたり、1 変数の二次方程式を解くことができる人はほとんどいません。入社1年目の先輩と雑談していて、データ構造、デザインパターン、OS、英語が大事だと言っていたが、アルゴリズムについては全く触れず、もちろん触れなかった。微積分。
私たちが数学の観点から考え、人々に考えることを教えるのであれば、同じことがアルゴリズムにも当てはまると思います。アルゴリズムは本質的に数学です。たとえば、離散数学だけでなく、組み合わせ数学にも多くのアルゴリズムがあります。この知識は使われないことも多く、たとえ使ったとしても本を調べて読むだけで、すぐにまた忘れてしまいます。平均的なプログラマーになるために多くのアルゴリズムを学ぶ必要はありませんが、優秀なプログラマーになることを決意した人だけが、自分の思考と能力の向上に役立ついくつかのアルゴリズムを学ぶ必要があります。おそらく、プログラマーのグループでは、誰もがパターンを設計でき、C/JAVA に習熟できますが、アルゴリズムに習熟していれば、間違いなく優れています。たとえ使えなくても、それはあなたの重みです。あなたは他の人より多くのことを知っているのにそれができない、それは悪いことではありません。
以上がなぜアルゴリズムを勉強するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。