web-dev-qa-db-ja.com

実際のプログラマーになるためにアルゴリズムを学ぶことは不可欠ですか?

私はPHPプログラマーです。今まで、アルゴリズムを学ぶ必要はありませんでした...

Python(実際のプログラミング言語)です。matplotlibを使用する必要があるためです。Pythonアルゴリズムを読むことから始めるのは理にかなっていますか?予約してからmatplotlibとnumpyを学ぶか、matplotlibとnumpyにジャンプする必要がありますか?

宜しくお願いします、

22
André

もちろんです。アルゴリズムを知らなければ、他にどのようにプログラムがどのようにプログラムを実行するかを理解するでしょうか?

より効率的にプログラムを作成し、より優れたプログラムを作成するためには、アルゴリズムの開発を理解することが不可欠です。はじめに、少なくとも制御フロー(おそらく状態オートマトンを使用するが、必ずしも必要ではない)のような概念の基本とBig O表記法、およびそれがパフォーマンスにどのように影響するかを知っている必要があります。

35
Andrew Arnold

答えはイエスとノーの両方です。さまざまなアルゴリズムの仕組みやその背後にある理論の詳細を知る必要はありません-それはコンピューターサイエンティストの仕事です-しかし、特定のタスクを解くために利用できるアルゴリズムや、どれが特定の状況に最適です。

あなたの場合、あなたはあなたが言及したライブラリーの使用を始めることができます-それらは他人のために人生を楽にするためだけに誰かによって構築されました。確かに、それを使用するためだけに構築に使用されたアルゴリズムを知る必要はありません。

18
casablanca

はい、そうすれば、あるアプローチを別のアプローチに適用する方法を理解できます。また、すでに機能している既存のアルゴリズムが多数あるため、「車輪を再発明」したくありません。それらがそこにあることを知らなければ、潜在的に弱いソリューションを発明する時間を浪費し、なぜそれが弱いのかも理解できません。

7
jmq

プログラマにとってのアルゴリズムは、鍛冶屋にとってはハンマーです。確かにあなたは仕事を成し遂げるために代わりに使用することなく成功することができますが、あなたがそれを正しく行いたいと思うなら、それは不可欠です。

アルゴリズムの良い点は、プログラミング言語に依存しないことです。そのため、理論を一度学習すれば、どの言語でも実装できます。以下は、私が学習を始めるために構築している優れたWebサイトです: www.ambesty.com 彼らはJavaを使用していますが、それは学ぶためのサンプルコードが付属しています。それらは、データ圧縮アルゴリズムのようなより複雑なものに単純なADTと並べ替えアルゴリズムを提供します。非常に興味深い読み物。幸運を

3
ailan

わかりました-これはあなたが意図したものではないことを知っていますが、あなたはすでにアルゴリズム(方法)を知っています。定義に応じて、すべてのプログラムをアルゴリズムの例として使用できます。

恐れるな。基本的なアルゴリズムを知っておくと便利です。基本的なデータ構造を知っておくと便利ですが、デザイン「パターン」を知っておくとさらに便利です。結局のところ、基本的なアルゴリズムとデータ構造は選択したフレームワークに実装されますが、パターンはおそらくそうではありません...

1
Carsten

PHPの経験に応じて、基本的なプログラミング概念をある言語から別の言語に適応できる段階にある場合は、そうしてください。これはあなたの時間を使う最も効率的な方法でしょう。

Matplotlib 、numpy、Pythonを統合するために必要なことを読んでください。そして、行き詰まった場合は、さらに深くダイビングを続けてください。私はこの注文をお勧めします

  • 時間がかかりません
  • あなたおそらくはあなたが読んだすべてのアルゴリズムを適用しているわけではありません
1
J.K.

ビジネスアプリケーション(のみ)を開発している場合は、リスト、キュー、並べ替え、文字列検索などの基本のみを学習して、用語、パフォーマンスへの影響や測定方法などを学習してください。時間を有効に活用するには、新しいテクノロジー、OOパターン、効果的なデータベース設計、アプリケーション開発方法論など)に集中することです。

1
NoChance

大学に入る前は、自分はかなりまともなプログラマーだと思っていました。2、3年の実務経験がありました。しかし、大学でアルゴリズムとデータ構造について学んだ後、私はあなたが持っている必要がある知識だと感じています!それはあなたがするすべてのために不可欠です。あなたは毎日その知識を直接使用するわけではないかもしれませんが、それはあなたの頭の一番上にあり、それはあなたをより良いプログラマーにするでしょう。

パフォーマンスについては多くのことを学びますが、パフォーマンスは通常1番ではありませんが、アルゴリズムを知っていると、パフォーマンスが非常に悪く、愚かなことを実行できなくなります。パフォーマンスが一番ではありませんが、その知識を使用して正しい決定をしない理由はありません。

0
Niklas H

学ぶpython最初に、それから気になったらアルゴリズムを学ぶことができます;アルゴリズムはpython固有ではないため、すべての言語が一般的です。

0
eggie5