本物のプログラマーになるためには、アルゴリズムを学ぶことが不可欠ですか?[閉まっている]


21

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

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

宜しくお願いします、


2
アルゴリズムを学習せず、特定のタスクに最適なものを理解している場合、この質問のような答えになります:stackoverflow.com/questions/5498865
kdgregory

1
名前やその背後にある理論を実際に知らなくても、おそらくいくつかのアルゴリズムを既に実装しているでしょう。何らかのアルゴリズムを実装しなくても、誰もが有用なプログラミングを行うことができるとは信じられません。
tdammers

2
アルゴリズムは、物事を最適な方法で行う方法の常識です。プログラミングでは、最小限のリソースを使用してパフォーマンスを確保する必要があるため、常にそれを使用しています。ところで、これはPython(本当のプログラミング言語)を意味するのでしょうか???? PHPは他の何よりも優れています。それは単なるウェブスクリプト言語であり、あなたを気にかけているだけで、長い間ビジネスで最高です。
Pankaj Upadhyay

回答:


35

絶対に。アルゴリズムを知らなくても、プログラムがどのように機能するかを他にどのように理解しますか?

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


私は同意しますが、ドナルドクヌースになってから2回目に、地元のコミュニティカレッジのアルゴリズムの紹介をどの程度知っているべきでしょうか。
ジョブ

古き良き大野記譜法

1
アルゴリズムの複雑さ(「ビッグO表記」)を知ることの重要性に同意します。しかし、「本当のプログラマーになるためにはアルゴリズムを学ぶことが不可欠ですか」に対する「絶対に」答えには強く反対します。実際、Pythonをよく学ぶことは、リストを並べ替える方法(Pythonがリストを並べ替えるので)やPythonが辞書を処理する方法(Pythonプログラマーがハッシュメカニズムを実装する必要がありましたか)などを知るよりもはるかに便利です。言語だからといってアルゴリズムを習得できなかった。現代の時代は異なります。
エリックOレビゴット

17

答えはイエスとノーの両方です。さまざまなアルゴリズムがどのように機能するか、その背後にある理論の詳細を知る必要はありません-それはコンピューター科学者の仕事です-しかし、特定のタスクを解決するために利用可能なアルゴリズムなどの基本を知る必要があります特定の状況に最適なのはどれですか。

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


2
そのような「現代の」コメントに対して+1。学習と教育のアルゴリズムは、実際にそれらを実装する必要のある人に限定する必要があります。
エリックOレビゴット

6

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


3

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

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


1

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

Matplotlib、numpy、およびPython を統合するために必要なことをお読みください。そして、行き詰まったら、もっと深く潜り続けてください。この注文をお勧めします

  • 時間がかからない
  • あなたはおそらくあなたが読んすべてのアルゴリズムを適用することはありません

1

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


1

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

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


0

最初にpythonを学んでから、アルゴリズムを勉強できると感じたら、アルゴリズムはPython固有ではないため、すべての言語で一般的です。


0

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

パフォーマンスについて多くのことを学びます。通常、パフォーマンスはナンバーワンではありませんが、アルゴリズムを知っていると、本当に悪いパフォーマンスでいくつかの愚かなことをすることができなくなります。パフォーマンスはナンバーワンではありませんが、正しい判断を下すためにその知識を使用しない理由はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.