0

私は完全な Noob であり、Mac で Eclipse を使用して Python 2.7 を 4 日未満で学習し、「FizzBang」をゼロから約 20 分で作成することができました。基本的なアルゴリズムの時間。これが時間の経過とともにスピードアップするものなのか、それとも指示なしで私の上にあるある種の「論理的思考」の練習があるのか​​ 疑問に思っています. 構文を覚えることはこれまでのところ問題ありませんでした。すべてがうまくいったときの感覚を本当に楽しんでいます。

私の質問は、現在の初心者向けの本から迂回して、基本的なアルゴリズムについて何か (おそらく Python アルゴリズムに固有のもの) を読むべきですか?

もしそうなら、どの初心者向けテキストをお勧めしますか?

私はこのトピックを検索しましたが、一致するものは何も見つかりませんでした。

プロからの助けをいただければ幸いです。ありがとう

4

3 に答える 3

5

アルゴリズムを表現するためのプログラミング言語の構文を学ぶことは、考えを表現するために英語の構文を学ぶことに似ています。
確かに、英語には、他の言語や他の言語よりも優れた考えを表現できるニュアンスがあります。ただし、英語のコマンドでは、自動的にいくつかの考えを考えることができるようにはなりません。

同様に、アルゴリズムの本を手に入れたい場合は、それを手に入れてください!Pythonの理解は、問題を解決するための開発およびアルゴリズムの能力とは非常に緩く関連しています。

問題を解決する方法を学ぶと、目前の特定の問題を解決するためのアルゴリズムを開発し、そのアルゴリズムを表現するのに最適な言語を選択できるようになります。

…そして、ますます多くのアルゴリズムを設計するにつれて、より良いアルゴリズムの開発が上手くなります。さらにPythonコードを書くと、Pythonコードの記述が上手になります。

あなたが現在読んでいる本はわかりませんが、初心者の本は、単純なアルゴリズムの例を使用して言語(構文、セマンティクスなど)を教えることに専念する傾向があります。これらの例のソリューションを管理するアルゴリズムを理解するのに苦労している場合は、おそらくアルゴリズムの初心者向けの読み物を行う必要があります。これは多少のサイクルです。実際、アルゴリズムを学習するには、アルゴリズムを表現できる必要があります(そして、アルゴリズムはコードで最も簡単に表現できます)。したがって、アルゴリズムを理解するには、コードを理解する必要があります。
これは完全に真実ではありません-擬似コードはこの問題を非常にうまく解決します。ただし、少なくとも擬似コードを理解する必要があります。

お役に立てれば

于 2013-01-11T21:48:22.997 に答える
1

無料で入手できるプログラミング書籍のリスト を参照してください。「Language Agnostic」セクションには、プログラミングのゲシュタルトに入るのに役立つ参考文献がたくさんあります。

練習し、間違いを犯し、その時点で自分にとって意味のある方法でプログラムを機能させることが非常に重要です。これは、何かを行うためのより良い方法に遭遇したときにそれを認識するのに役立つため、より広く読んで経験を積むにつれて非常に価値があります. 「ねえ、これは私が以前解決しようとしていた問題のようなもので、この方法はより明確で、より短く、より速く、より柔軟で、よりセクシーです!」

于 2013-01-11T22:01:40.843 に答える
0

プレイを続けることをお勧めします。自分をプッシュしますが、辛抱してください。解決できない問題を見つけて、解決しようとします。Google や Stackoverflow などで検索してみてください。プロジェクト euler がいいかもしれません。プロジェクトオイラー

「考える」部分は時間とともにやってくると思います。より多くの言語を見たり、より多くのプロジェクトを試したりすればするほど、アイデアをどのように実装できるかがわかります。

私がお勧めする Python の 1 つのことは、ライブラリ pdf を読むことです。itertoolsおよびcollectionsモジュールは、アイデアを実装するための洗練された方法を提供することが多いため、チェックしてください 。

個人的には Python から始めましたが、気に入っていますが、現在 Haskell で遊んでいます。効果的で、さらに重要なことに「新しい」考え方を理解するために、Python 固有のチュートリアルは必要ありません。

それで...うーん...おそらくこれは少しとりとめのないものでした...しかし、私の感情はそこにあると思います。楽しむだけ!

于 2013-01-11T21:57:53.657 に答える