- 締切済み
アルゴリズムについて
今、c言語のアルゴリズムの勉強をしています。 入門書が3、4冊を読みました。c言語によるアルゴリズム辞典っていう本を見たら、ほんの少ししかならないです。 将来、プログラマになりたいです。アルゴリズムがプログラマにとって非常に重要ですので。そこで今プログラムの仕事をしている方に聞きたいです。アルゴリズムってどの程度勉強したらいいですか?入門書の場合は、精精木構造までですね。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
>アルゴリズムがプログラマにとって非常に重要ですので・・ 年寄り(30年前にFORTRAN、20年前からC)は、そうは思いません。 「的確なアルゴリズムを発想できるかがプログラマにとって非常に重要」と思います。 言い換えると、本を読んで1を知り、10(2でも)を【悟る】ことができるかが・・。 質問者様は、本を読んで1を知り、その1をいっぱい【積み重ねる】ことが重要と思っていませんか?。 ★プログラムに戻って 課題(仕事)が与えられてから、どう解決するかの道筋を考える、ですよ。 (課題が「検索」や「ソート」だけなら「丸暗記」でいいのですが・・・、もはや「アルゴリズム」でなく「ツール」ですね) >・・・勉強をしています。 まず課題を持って、こんなときはどうすんだ、と勉強した方が身に付き易いのでは。 たとえば、答えが明らかな、 ◆πの1万桁とか、微分、積分をプログラムしてみたら如何でしょう。 ◆等値線図(例えば、中間・期末試験結果差を席位置XYとして表現)、テキストエディタなどもいいかも。 将来、プログラマになったとき、「今、c言語のアルゴリズムの勉強をしています」よりも、◆の過程の方が役立つ、と思うのは年寄りだけかな。 ともかく、プログラミング、プログラミング(通信、画像、情報処理・・・)。
- crew21
- ベストアンサー率26% (58/222)
将来、プログラマになりたいということは、まだプログラマの入り口にいるってことだよね。 だとしたら、「アルゴリズム辞典」なんて大仰なもの読んでもあまり意味ないと思うぞ。 野球やったことない人が、野球のルールブック読んでいきなりプレーするようなもんだ。 たぶん、ごく抽象的にしかわからないと思う。 今は、ごくごく基本的なアルゴリズムをいくつか勉強して、それで自分なりに簡単なテーマを設けて、実際にプログラミングしてみることだよ。それが大事。 No.4さんも言ってる通り、大事なのは如何に自分の中で消化するかだからね。丸暗記は全く意味無い。 大胆なこと言うと、オレはプログラミング歴延べ15年くらい(最近は後進の指導が多くてプログラミングの機会は減ったけど)だけど、 きちんとアルゴリズムの勉強をしたことは一度もないよ。 でも、自分が苦労して作った(完成して客先に納品した)プログラムを後から眺めてみると、 部分的に、自然となにかのアルゴリズムに当てはまってるものだったよ。 オレの頭が良いんだなんて言いたいんじゃなくて、要は人間の考えることは、絞りに絞っていくと、だいたい同じようなところに落ち着くってことじゃないかな。 とにかくなにか一つでもいいからアルゴリズムの理論を学んで、それで自分でテーマを決めてプログラミングしてみるといい。 そしてそのプログラムと、アルゴリズムの本に書いてあることとの同一性や違いを咀嚼すること。 それが大事。そして一番の近道だと思う。 そしてそう言うことをやっていれば、学んだアルゴリズムに更に汎用性を持たせたアルゴリズムを作ることもできるようになってくるよ。
お礼
ご回答、ありがとうございます。crew21さんが言いたいことがよくわかります。とりあえず、自分で作ってみることですね。 だけど、今の僕はバッドの持ち方すら知らないので、ボールを打とうにしても、打てないですよ。
- jacta
- ベストアンサー率26% (845/3158)
> 暗記って苦手ですよ。 アルゴリズムだけでなくデザインパターンなんかもそうですが、いったんは自分の中で消化して、それから実際のコードに反映すべきものです。丸暗記ではなく、必ず一度は理解して、自分のものにしなければなりません。 また、丸暗記にせよ丸写しにせよ、自分なりのアレンジを行わなければ、多くの場合著作権を侵害してしまいがちです。実務レベルで活用するためには、特許を踏まないかどうかを判断できることも重要です。
お礼
以外でした。丸写しだと著作権の侵害に成るなんて、考えたこともありません。ほんとに、ありがとうございました。
- zwi
- ベストアンサー率56% (730/1282)
基本的なアルゴリズムは自力でプログラムが組める程度は覚えておいたほうが良いでしょう。あとは、本とサイトで調べられますので必要なときに参照してプログラム化できれば問題ないです。 プログラムとして覚えられないような複雑なアルゴリズムは、その特性とメリット・デメリットを覚えていれば使い所がわかりますから最低限のレベルはその程度で十分です。 基本的なアルゴリズムだとこんな所でしょうか。少し高度なアルゴリズムも混じってますが。 http://www.codereading.com/algo_and_ds/ 存在を覚えておくと使うかも知れない(使わないかも知れない)アルゴリズムとしてこんなのも紹介しておきます。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070109/258278/?ST=develop 少し古い本ですが、手元にこんな本を置いておくと重宝します。http://www.amazon.co.jp/C%E8%A8%80%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8B%E6%9C%80%E6%96%B0%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E4%BA%8B%E5%85%B8-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC-%E5%A5%A5%E6%9D%91-%E6%99%B4%E5%BD%A6/dp/4874084141 仕事の内容でも知識として必要とするアルゴリズムは変わりますので、あとは仕事で覚えればいいんじゃないでしょか。
お礼
回答、ありがとうございました。 僕もその本を持っています。でも、全部理解して、自分のものにするには、時間がかかるでしょうね。
- jacta
- ベストアンサー率26% (845/3158)
一度にあれもこれも覚えられませんから、まずはどんなアルゴリズムがあって、どんなときに利用価値があるのか、目次だけでも頭の中に作りましょう。詳細は必要になってから本やネットで調べれば済みますから。 あと、駄目なアルゴリズムを覚えておくのも役に立ちます。自分が失敗しそうになったとき、それが駄目なことがあらかじめ分かっていれば、失敗を事前に防ぐことができますから。
お礼
ありがとう、ございます。じゃ、アルゴリズムをいちいち暗記しなくてもいいですね。暗記って苦手ですよ。
- aris-wiz
- ベストアンサー率38% (96/252)
>アルゴリズムってどの程度勉強したらいいですか? アルゴリズムは知っておけば知っておくほど良いです 仕事に入ってからも、この業界では勉強が終わることはありません。 本を読むのも重要なことですが、実際にプログラムを打って 実践することが最も大切です。
お礼
ご返答、ありがとうございます。 僕の質問が悪かったです。聞きたいのは、皆さんがプログラマってい言う仕事に就く時点でどの程度のアルゴリズムを習得していました?
お礼
明確な指示で、ありがとうございました。自分に足りないところがよくわかりました。