• ベストアンサー

どうやって作っているの?

最近、シンプルなものかたすごく複雑なものまで、たくさんのCGIスクリプトが公開されていますが、製作者の方々はいったいどのようにして作っていらっしゃるのでしょうか? というのも製作者の方々はすべてのPERLなどのプログラミング言語が頭の中に入っていて、参考書など何も見ずにひたすらプログラミングしているのか、参考書片手に四苦八苦しながらプログラミングしているのかどちらなのでしょう?  もちろんプログラミング歴にもよると思いますが、プログラミング歴何年でどのように作っているのか教えていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • callhiro
  • ベストアンサー率35% (54/152)
回答No.4

僕も自作のCGIをふんだんに使ってホームページを作っています。 頭の中に入っているのは最低限必要な部分かな。 最低限といっても、ほとんどの作りたいプログラムが、 この最低限の知識で作れますけどね。 変数はどんな風に扱うかとか、ループはどのように行うかとか、 ファイルはどのように開けるとかその程度です。 あとはその基本的な知識をベースに、 自分のアイデアをいかに表現するかですね。 簡単な文法をうまく組み合わせるだけで、 見た目にはすごく複雑なプログラムを作ることも可能です。 deiaさんのおっしゃる「シンプルなもの」も「複雑なもの」も 意外に中身は似たようなもんなんじゃないかと思います。 すでにできあがっているプログラムを流用することも多いです。 知らない人の作ったプログラムから、何をやっているのかを解析するのは 大変おもしろいし勉強になります。 プログラミングの基本はどれも同じ様なもんです。 初めて覚えたのはC言語ですが、Perlはほとんどそのときの知識に、 ちょっとしたPerl特有の部分を覚えればすぐに修得できました。 実質、Perlでプログラムが組めるようになったのは数時間程度でしたよ(笑) でもクッキーとかのやり方を覚えるたのはもう少し後になってからでしたが・・。 C言語やC言語で、そんな何ヶ月もかかりませんでしたよ。 これは学校の授業で習いましたが、 いちいち教わったのではなくて、全く知らない状態なのにいきなり課題が出され、 それを実現するために自分で一から調べてやっていくといった勉強方法でした。 全く知らない状態からでしたが、いつの間にかプログラムが出来るようになっていました。 プログラムを作る場合だいたい以下のようになるんじゃないでしょうか? 1.まずやりたいことを決める(掲示板を作りたいとか、投票を作りたいとか) 2.自分の完全に覚えている知識である程度作る(初めての場合はそのまま4へ) 3.ちょっと本を見ればわかる、過去に作ったことがあるという事を、本や過去のスクリプトを参照してある程度作る。 4.それでも出来ない場合は、何が出来ないから実現できないのか考える   (ファイルの開け方がわからないとか、繰り返し処理がわからないとか) 5.4でわからなかったことを調べて解決する 5.次回からはこのとき身につけたやり方を利用する。または、このとき作ったスクリプトを参照する。 こんな感じかな。 「調べて解決する」っていうのが難しく聞こえますか? この部分がネットで調べたり、本を読んだり、他の人のスクリプトを参照したりする部分です。 案外すぐに出来ますよ。 一度調べれば、次からはそのときより短時間で同じ事が出来ます。 こういうことの繰り返しなんでしょうね。 完全に覚えていることは基礎的なこと。 経験した処理は調べればすぐにわかるので、必要になったら調べる。または本を見る。 やっぱこういう感じになるかな。 プログラミング歴なんて浅くてもこつをつかめば簡単です。 がんばってくださいな。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

その他の回答 (4)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.5

初めは、参考書を眺めながら、 自分の欲しい機能が付いているフリーCGIのソースとにらめっこ。 という形で学んでいました。 今はもう、頭の中に以前ににらめっこしたサンプルが存在しているので、 「常に参考書片手に」ということはないですよ。 久しぶりに使う関数の文法確認のために Perl辞書を覗く程度です。 やっぱり、Perl といえども得意分野があると思うので 「全ての関数が頭に入っている」という方は少ないでしょうが、 必要な時に「あぁ、○○関数があったっけ」 などと思い出す程度には、頭に入っていると思いますよ。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

  • 911turbo
  • ベストアンサー率50% (1/2)
回答No.3

プロでも最初は皆、いろんなデータソースからプログラムを引っ張ってきて、中身を解析したり、参考書とにらめっこしながらプログラムを覚えて行きます。 プログラムを作成する本数が増えてくると、いつも使用する、同じようなロジックが沢山できます。 それを、ライブラリーとして、パーツ化しておいて、必要な時にそれを持ってきて、モディファイして使います。 プログラミング歴うんぬん、よりも、どれだけ経験したかによりますよ。 また、開発言語によっても、難易度はかわります。 perlは、比較的易しい(奥は深いですよ)言語だと思います。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

noname#25358
noname#25358
回答No.2

 えとですね。  簡単な文法はもちろん覚えていますが、プロの半分ほどは(本当は「たいがい」と書くのが正解だと思うんですが、念のため「半分ほど」ということにしておきます)、「どこを見れば何が分かる」という情報を特にたくさん覚えているんです。  たとえば、ヤフーでこんなキーワードを入れればいい、とか、これこれこういうことを調べるにはこのホームページを見ればいいとか、こういうものを作るには本棚のあの本を引っ張り出してくればいい、とかそういうことです。  すべてのことを暗記して、画面をひたすら見続ける、というのは、まあ、不可能でしょう(^_^;  それをやるためには、コンピューター業界は移り変わりが早すぎます。  たいがい、プロでやってる人間は、「自分がやりたいことがどうやって実現できるか、その方法を調べるのが巧い」人だったりします。  とはいえ、俺みたいな奴もプロでやってるような業界だったりしますが(笑)

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

noname#225520
noname#225520
回答No.1

 私は本業はハードウェア設計ですのでperlスクリプトは趣味でやっています。最初のうちは先人の皆さんがこしらえたソースをちょこちょこいじることから始めました。キャラクタのデコードなどのように、決まり切った部分はいただいて来ます。  ひょっとしたらこんなことできるかなぁ、と思った時点でリファレンスを見るようにしてます。仲間内のプログラマーも似たようなものだ、と言っております。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。