• 締切済み

アルゴリズムについて

今、c言語のアルゴリズムの勉強をしています。 入門書が3、4冊を読みました。c言語によるアルゴリズム辞典っていう本を見たら、ほんの少ししかならないです。 将来、プログラマになりたいです。アルゴリズムがプログラマにとって非常に重要ですので。そこで今プログラムの仕事をしている方に聞きたいです。アルゴリズムってどの程度勉強したらいいですか?入門書の場合は、精精木構造までですね。

みんなの回答

noname#48699
noname#48699
回答No.6

>アルゴリズムがプログラマにとって非常に重要ですので・・ 年寄り(30年前にFORTRAN、20年前からC)は、そうは思いません。 「的確なアルゴリズムを発想できるかがプログラマにとって非常に重要」と思います。 言い換えると、本を読んで1を知り、10(2でも)を【悟る】ことができるかが・・。 質問者様は、本を読んで1を知り、その1をいっぱい【積み重ねる】ことが重要と思っていませんか?。 ★プログラムに戻って 課題(仕事)が与えられてから、どう解決するかの道筋を考える、ですよ。 (課題が「検索」や「ソート」だけなら「丸暗記」でいいのですが・・・、もはや「アルゴリズム」でなく「ツール」ですね) >・・・勉強をしています。 まず課題を持って、こんなときはどうすんだ、と勉強した方が身に付き易いのでは。 たとえば、答えが明らかな、 ◆πの1万桁とか、微分、積分をプログラムしてみたら如何でしょう。 ◆等値線図(例えば、中間・期末試験結果差を席位置XYとして表現)、テキストエディタなどもいいかも。 将来、プログラマになったとき、「今、c言語のアルゴリズムの勉強をしています」よりも、◆の過程の方が役立つ、と思うのは年寄りだけかな。 ともかく、プログラミング、プログラミング(通信、画像、情報処理・・・)。

xiaosin
質問者

お礼

明確な指示で、ありがとうございました。自分に足りないところがよくわかりました。

  • crew21
  • ベストアンサー率26% (58/222)
回答No.5

将来、プログラマになりたいということは、まだプログラマの入り口にいるってことだよね。 だとしたら、「アルゴリズム辞典」なんて大仰なもの読んでもあまり意味ないと思うぞ。 野球やったことない人が、野球のルールブック読んでいきなりプレーするようなもんだ。 たぶん、ごく抽象的にしかわからないと思う。 今は、ごくごく基本的なアルゴリズムをいくつか勉強して、それで自分なりに簡単なテーマを設けて、実際にプログラミングしてみることだよ。それが大事。 No.4さんも言ってる通り、大事なのは如何に自分の中で消化するかだからね。丸暗記は全く意味無い。 大胆なこと言うと、オレはプログラミング歴延べ15年くらい(最近は後進の指導が多くてプログラミングの機会は減ったけど)だけど、 きちんとアルゴリズムの勉強をしたことは一度もないよ。 でも、自分が苦労して作った(完成して客先に納品した)プログラムを後から眺めてみると、 部分的に、自然となにかのアルゴリズムに当てはまってるものだったよ。 オレの頭が良いんだなんて言いたいんじゃなくて、要は人間の考えることは、絞りに絞っていくと、だいたい同じようなところに落ち着くってことじゃないかな。 とにかくなにか一つでもいいからアルゴリズムの理論を学んで、それで自分でテーマを決めてプログラミングしてみるといい。 そしてそのプログラムと、アルゴリズムの本に書いてあることとの同一性や違いを咀嚼すること。 それが大事。そして一番の近道だと思う。 そしてそう言うことをやっていれば、学んだアルゴリズムに更に汎用性を持たせたアルゴリズムを作ることもできるようになってくるよ。

xiaosin
質問者

お礼

ご回答、ありがとうございます。crew21さんが言いたいことがよくわかります。とりあえず、自分で作ってみることですね。 だけど、今の僕はバッドの持ち方すら知らないので、ボールを打とうにしても、打てないですよ。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> 暗記って苦手ですよ。 アルゴリズムだけでなくデザインパターンなんかもそうですが、いったんは自分の中で消化して、それから実際のコードに反映すべきものです。丸暗記ではなく、必ず一度は理解して、自分のものにしなければなりません。 また、丸暗記にせよ丸写しにせよ、自分なりのアレンジを行わなければ、多くの場合著作権を侵害してしまいがちです。実務レベルで活用するためには、特許を踏まないかどうかを判断できることも重要です。

xiaosin
質問者

お礼

以外でした。丸写しだと著作権の侵害に成るなんて、考えたこともありません。ほんとに、ありがとうございました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

基本的なアルゴリズムは自力でプログラムが組める程度は覚えておいたほうが良いでしょう。あとは、本とサイトで調べられますので必要なときに参照してプログラム化できれば問題ないです。 プログラムとして覚えられないような複雑なアルゴリズムは、その特性とメリット・デメリットを覚えていれば使い所がわかりますから最低限のレベルはその程度で十分です。 基本的なアルゴリズムだとこんな所でしょうか。少し高度なアルゴリズムも混じってますが。 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 仕事の内容でも知識として必要とするアルゴリズムは変わりますので、あとは仕事で覚えればいいんじゃないでしょか。

xiaosin
質問者

お礼

回答、ありがとうございました。 僕もその本を持っています。でも、全部理解して、自分のものにするには、時間がかかるでしょうね。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

一度にあれもこれも覚えられませんから、まずはどんなアルゴリズムがあって、どんなときに利用価値があるのか、目次だけでも頭の中に作りましょう。詳細は必要になってから本やネットで調べれば済みますから。 あと、駄目なアルゴリズムを覚えておくのも役に立ちます。自分が失敗しそうになったとき、それが駄目なことがあらかじめ分かっていれば、失敗を事前に防ぐことができますから。

xiaosin
質問者

お礼

ありがとう、ございます。じゃ、アルゴリズムをいちいち暗記しなくてもいいですね。暗記って苦手ですよ。

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.1

>アルゴリズムってどの程度勉強したらいいですか? アルゴリズムは知っておけば知っておくほど良いです 仕事に入ってからも、この業界では勉強が終わることはありません。 本を読むのも重要なことですが、実際にプログラムを打って 実践することが最も大切です。

xiaosin
質問者

お礼

ご返答、ありがとうございます。 僕の質問が悪かったです。聞きたいのは、皆さんがプログラマってい言う仕事に就く時点でどの程度のアルゴリズムを習得していました?

関連するQ&A

  • アルゴリズムとは何なのでしょうか?

    学校でアルゴリズムを習っているのですが、 アルゴリズムとは何なのでしょうか? 教科書として、 「新・明解 C言語によるアルゴリズムとデータ構造」という本を買ったのですが、 内容的には以前C言語を勉強するために読んだC言語の勉強本とあまり変わらないような気がします。 スタックやキュー、ソートに検索など確かにC言語を教わる本には書いてないことはありましたが、 要するにC言語の別の面ということだと思いました。 意味的にはアルゴリズムは数学でいう計算方法、 つまり答えを求めるための色々な方法というように考えたのですが、 実際アルゴリズムとはどのようなものと理解すればいいのでしょうか?

  • アルゴリズムが全くわからない

    「Javaによるはじめてのアルゴリズム」や、「Cプログラマのためのアルゴリズムとデータ構造」という本を買ったのですが、 数式や図表が難しくて理解できません。 (中学並の数学の知識しかないので・・) 私のような初心者でもアルゴリズムが理解できるようになるような、 数学やアルゴリズムの、本やウェブサイトなどがあれば教えてください。 方法論とかでも構いません。 よろしくお願いします。

  • C言語のアルゴリズムについて

    C言語で「標準入力から英語の文章を読み込んで,文字列Ilmorが出現した行をその行番号とともに表示するプログラムを作りなさい.」とプログラムを作りたいのですが、文字列を発見するところまでは分かるのですが、その行どうやって表示すればいいのか分かりません。また、文章を読み込むのもすごくややこしく最後にエンターを二回押すなどの制限があります。(scanf) 参考になるプログラムを書いていただける方いませんか?できればC言語のアルゴリズムについて詳しく書いた本やサイトがあれば教えていただきたいです。 レベルは超入門的な本を2,3冊読んだ程度です。アルゴリズムなどにはまったく触れてなかったし、ライブラリー関数も少ししか載ってなかったので関数の本もあれば教えていただきたいです。

  • 「改訂 C言語によるはじめてのアルゴリズム入門 河西朝雄」を持っているプログラマ

    「改訂 C言語によるはじめてのアルゴリズム入門 河西朝雄」を持っているプログラマの人に聞きたいのですが、このアルゴリズムをマスターしなければ一般的なプログラマになれないのでしょうか?またどれくらい出来ていればいいのでしょうか?

  • データ構造とアルゴリズム

    C言語の勉強をしているんですが最近はアルゴリズムについての勉強をしたくAmazon等で検索しています。 現在手持ちの本ではCのプログラムの解説(書き方)が主でアルゴリズムについての解説がとてもすくないです。 やっぱりCのソースがあったほうがいいのですが、詳しく解説(証明)している本が欲しいです。 お勧めの本がありましたら紹介してください。

  • アルゴリズム いい本

    こんにちは、 プログラムのアルゴリズムについて勉強したいのですが、何かいい本はないでしょうか? プログラム言語に拠らない、基本的な考え方をマスターできればと考えています。 よろしくお願いします。

  • 動的計画法、ナップサック問題などのアルゴリズム

    を独学で勉強したいのですが、お薦めの教科書はありますでしょうか?C言語やJavaといったプログラミング言語のコーディングの比重が高いものよりはもっと理論に重点をおいた本がよいです。(疑似コードで書かれていてもいいくらいですが、日本の書物でそんなの存在するのでしょうか) いくつか大学の情報系のシラバスを参照したところ、「アルゴリズムとデータ構造 改訂C言語版(電気工学入門シリーズ)」というのを使っているところが2つほどあったので試しにまずはこれを買ってみようと思っていますが、もし他にも理論的な本を知っている人がいたら教えて下さい。

  • アルゴリズム系の問題知りませんか?

    再来週大学院試験を控えている者です。 入試の項目に「プログラミング(アルゴリズム)」と書いてあり、ある程度複雑なアルゴリズムを考えるような問題が出る事が予想されます。 きっと二分探索木やクイックソートのような問題が出るように思います。 アルゴリズムを考えるような問題としていい問題ご存じないでしょうか? アルゴリズムを考えるような問題としてはハノイの塔とかよいように思いますが ちょっと入試の問題としては出ないような気がします。 自分では他に線形リストやスタックなども勉強したんですが、 C,JAVA,Pascal,フォートランなどどの言語で回答してもよい事になっているので言語に限定した問題は出ないように思います。 90分で解く3問あるうちのプログラムは1つですから30分以内に解けるような問題のはずです。 (出題される可能性も考えていただければ幸いです)よい問題をご存知でしたら教えてください。 よろしくお願いします。

  • ゲームプログラマーになるには

    現在大学生で、将来ゲームプログラマーになることを意識しています。 プログラミング言語は現在学習中で、 Javaに関しては簡単なマルチスレッドのプログラムが書ける程度ですが、 現在売り出されているゲームプログラミングに関する本はほとんどVisualC++とDirectX用に書かれているようなので、 最近C++を勉強し始めました。 入門書の内容はどれもそれほど難しくないのですが、ゲームプログラミングの本を読むととても難しく、すぐに手は出せない感じがします。 そこで質問なのですが、 ・今後ゲームクリエイターを目指していくにはどの言語を取得するのがよいでしょうか。 ・ゲームプログラミングの本がわかるようになるくらいの、入門書の次に読むレベルの本でよいものはあるでしょうか。 ・その他、ゲームプログラマーになるためのアドバイスなどあったらお聞かせください。

  • 勉強の方法!

    今年の4月からシステム会社のプログラマとして就職が 決まっているのですが、ほとんどプログラムの知識が ありません。 言語は、C言語を勉強しているのですが、 本やホームページを見て勉強するだけで いいのでしょうか? 効率がいい勉強方などがあったら教えてください。 時間はありますのでアルゴリズム等もしっかりと 覚えたいと思っています。 又は、他の言語でおすすめがあったら、教えてください。

専門家に質問してみよう