- ベストアンサー
プログラミング設計思想をどうやって独学?
2chまとめサイトで、「プログラミングの勉強をを始めたい。どの言語がお勧め」という質問があると、 「プログラミング言語をおぼえるよりも、どの言語でも通じる設計思想やアルゴリズムを勉強したほうがいい」などという回答がよく見られます。 私はwebプログラミングの勉強をして、ブログを一から自分で作って見たいと思っているのですが、 どうやったらその設計思想、アルゴリズムを独学できるでしょう?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
確かに「どの言語でも通じる設計思想やアルゴリズムを勉強したほうがいい」には一理ありますが、勉強法のアドバイスにはなりません。 あなた自身にとってプログラミングが目的なのか、手段なのかをまず問うて見てください。あなたが若くて、それ自体が目的の場合--すなわちそれで喰って行ける様になりたいのか、あなたにある動作をするプログラムが必要であるのか・と言うことです。 プログラマになりたいあなたへの手紙 - プログラマになりたいあなたへの手紙:ITpro ( http://itpro.nikkeibp.co.jp/article/COLUMN/20090324/327071/ ) 「ブログを一から自分で作って見たいと思っているのですが、」はあまり良いアプローチではありません。なぜなら、プログラマーの世界では「車輪の再発明 ( http://ja.wikipedia.org/wiki/%E8%BB%8A%E8%BC%AA%E3%81%AE%E5%86%8D%E7%99%BA%E6%98%8E )」という言葉に必ず出会うでしょう。 プログラムの基本は、すでにあるものを再発明してしまったり、四角い車輪を発明したりしないことです。すでにある優れたプログラムがあれば、それをよりよいものに直していく姿勢が基本でしょう。そのためには、そのプログラムを解析して知らなければなりません。そのなかで、「設計思想やアルゴリズム」は身に付くものです。 私は、元々ウェブからこの道に入ったのですが、最初はカウンターや掲示板に手を加えることから始めました。当時手に入るものでは機能が不足していましたから・・ ★プログラマになりたいあなたへの手紙 ( http://itpro.nikkeibp.co.jp/article/COLUMN/20090324/327071/ ) に6人のプログラマたちのメッセージがあります。役に立つのではないかと・・ 登録(無料)をすると記事すべてが読めるでしょう。 ★ITpro - エンタープライズICTの総合情報 ( http://itpro.nikkeibp.co.jp/ )/selfup:ITpro ( http://itpro.nikkeibp.co.jp/selfup/ )には、たくさんの役に立つ記事があります。2chをはじめとする「藁の中から針を探す」ような探し方をなくても良いですよ。
その他の回答 (2)
- k_kota
- ベストアンサー率19% (434/2186)
webプログラミングならjavascriptとかphpあたりですかね。 まあ、流行り廃りがあるのでなんとも言えませんが。 どうせならアルゴリズムの勉強もゴールに近いものを使ったほうがいいでしょう。 んで、その言語で適当な問題をやってみればいいんです。 ソートとかはよいかもしれませんね。 もちろん、関数で一発なのですが、車輪の再発明でもアルゴリズムの勉強にはよいでしょう。 ただ、プログラマー、WEB系ならどこでも…ってのはどうかなと。 今、そのレベルから初めて物になるかで言うと、少なくとも日本では難しそう。 国外の状況は分かりませんが、タイプだけじゃなくてコミュニケーションも必要になります。 とりあえず、やってみたらいいんじゃないですか。 この程度の情報があって、独学出来ないのであれば、時代の流れに追いつけない可能性も高いと思います。
- Tasuke22
- ベストアンサー率33% (1799/5383)
そうですねえ… 私はマイヤー著の「ソフトウエアの複合・構造化設計」及び「ソフトウェアテストの技法」に大きな影響を受けました。 既に古典的であり、設計の方はオブジェクト指向が世に出る前の著書です。 しかし、それらを読んでいたお陰で、オブジェクト指向が世に出た時に、使い方から入らないで、どう利用するかから入ることが出来、非常に役に立ったと思っています。 テストの方もPCが当たり前の現代には不要の技法もあるかもしれません。 私はPCによってボトムアップテストが一般的になったと考えていますが、もしかしたら私の考え違いかもしれません。 でもwebプログラミングは複数の言語の組合せになることが多いので、ボトムアップテストが効率的と思います。 テストの項目は役に立つと思います。 設計とテストでは頭の使い方が違うという点の説明も大きいでしょう。 アルゴリズムはどのようにして身に付いたかちょっと分からないですねえ。 幾つかの本を読んだのは事実です。 多くの言語を使ったり、システム化の実績のない問題のアルゴリズムを考えたり、と長年の積み重ねというしか無いような気もします。 この点は助言ができないです。
お礼
ありがとうございます。 なるほど。設計思想だけでなく、テストの技法も身につけるべきなんですね。 確かに、プログラムが巨大になると、バグを見つけるのも難しくなるでしょうから、 テストが大事になりますね。。。。
お礼
ありがとうございます。 現在25歳です。現在、フリーの翻訳家として欧州で働いています。 「自分と将来の家族が生活する国の選択」をできるようになりたいので、 英語とそれさえあれば世界中で働けるスキルとして、 世界共通語であるプログラミングあるいはデザインで食べていこうと考えています。 その中でも、自分のスキルをデモンストレーションしやすいのが、webデザインとwebプログラミングです。 そこで、日本以外なら25歳ならまだまだ再チャレンジがきく年齢ですが、 時間を無駄にする必要は無いので、なるべく短期間でweb関連への転職ができるように勉強しています。