• ベストアンサー

初心者がCGIプログラムを作って見たい・・・。

はじめまして。よろしくお願いします。 (質問に至るまで) HTMLやCSSを勉強し、それなりにある程度出来るようになりました。色々ページ作成等している中で、レンタルフォームやチャット、掲示板などがCGIで動いている事を知りました。また一般的にはそのようなCGIプログラムは広告付きのレンタルか、業者から購入するかであることを知りました。でも、できることならHTMLやCSSを勉強したように、自分で勉強して作成できないものなのだろうか?と考えるようになりました。 (今の状態) 自分で調べてCGIはプログラム言語そのものではなく、概念である事、Perlという言語が一般的に使われる事、でもC言語やその他の言語も使える事を知りました。が全くそれらの知識はありませんしまだ違いもよく分かっていません(少しは調べましたが)。そこで (質問) 1 全くの初心者が独学でも、頑張ればある程度のプログラムを作れるようになりますか?掲示板を作るとか、メールフォームを作るとか・・・。 2 上記のような目的ならPerlを勉強するのが一番いいのでしょうか? 3 1日2,3時間勉強に取れるとして、以下が出来るようになるまでの大まかな(時間的な)目安を教えて下さい。目安ですので、自分は実際にそこまでする予定のないものも含みます。 ・大体の仕組みが分かり、ちょっとしたCGIの改造が出来るようになる。 ・自分で簡単なプログラムを作れるようになる ・自分で本格的なプログラムができるようになる ・なんと人の希望を聞いてCGIを作って売ることまで出来るようになってしまう(^^)。 あくまでできるものならやってみたいなぁ、というもので、将来「これで仕事を!」と思っているわけではありません。ですから「大変だぞ、やめときなよ。」というご意見でも結構ですので、よろしくお願いします(でも一応上記質問には答えてもらえたらと思います)。

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

  • ベストアンサー
noname#15164
noname#15164
回答No.5

私も独学ですが、ある程度なら自作できるようになったと自負しています。 CGIですが、やはりこれからはPHPの方が主力になると思います。 PHPの方がPerlより、ネットに特化しているからです。 また、データーベースも気軽に扱えます。 もちろん、すべて無料で環境を作れますし。 ただ、まだあまりつっこんだ内容の書籍が少ないので、お金を取るまでは、かなりの勉強が必要かと。 1 掲示板を作るとか、メールフォームを作るとか・・・。 独学でも、十分できますよ。 ただし、セキュリティーやパスワード管理に注意が必要。 初心者用の本では、おざなりになっているので。 私は、メール関連は作ったことがありますが、掲示板は作ったことがありません。 掲示板は開発の人気があり、人のスクリプトで十分満足しているし、また自分の満足するものを作るとなると時間と長いスクリプトが必要なので。 2 上記のような目的ならPerlを勉強するのが一番いいのでしょうか? Perlか、PHPだと思います。 どちらでもいいですが、上記にあげたように、私はPHPを勧めています。 ただ、Perlを勉強した知識も、PHPでも無駄にはなりません。 3 1日2,3時間勉強 一番簡単なBBSやメールフォームなら2,3日のうちに。 ただし、PerlやPHPを作成する環境を自分のPCに作らないといけないのですが、その方が2,3日かかるかもしれません。 絶対にサーバでテストはしないでください。 ■大体の仕組みが分かり、ちょっとしたCGIの改造が出来るようになる。 これは作成されたスクリプトにもよります。 シンプルなものは、辞書があれば、その日のうちに理解できますが、複雑なものや上級者の作ったスクリプトは、理解するのも難しいかもしれません。 私も改造から始めましたが、一月くらいである程度は理解できるようにはなりました。 ■自分で簡単なプログラムを作れるようになる これも、1ヶ月ら3ヶ月くらいだと思います。 ただ、セキュリティーに関しては日々勉強だと思います。 ■自分で本格的なプログラムができるようになる 本格的かはわかりませんが、スクリプトを体感して理解できるようになったのは、私は1年をすぎてからでした。 HPで自作のスクリプトを、きちんとしたコーナーとして発表したのは、勉強し始めて3ヶ月くらいからでした。 後で見ると、ぺっぽこでしたが、一応はコーナーとして人気はありました。 ・CGIを作って売ること 知人には、頼みを聞いて販売したことはありますが、複数のユーザーに販売するのは、私はしたことがありません。 一つは、心配性なので責任がとりきれないのと、私は自分のHPように他にはないオリジナルのスクリプトを作っているので、販売や配布は一切していません。 でも、CGIを検索できるサイトがあるのですが、その中でも、えー、これってまずいんじゃない?ってのも多く見かけるので、販売はある程度の知識と勇気だと思うけど。(w PerlやPHPは、それほど難しい概念を扱っていないので、習得しやすいですよ。 ちなみに、CGIは、コモンゲートウェイインターフェイスの略だったかな。 要は、サーバで対話して情報をやりとりしようー、ってことで、サーバが理解できれば、CでもPerlでも、Reby(?)でもOKです。 電話のコールセンターで電話の相手が、英語やフランス語、中国語、日本語がOKなら、各言語で対応してくれるってことですよ。 PHPとPErlでは、技術的に微妙に違うらしいのですが、同じ掲示板や日記、カウンター、他いろいろなことができます。

realslimshady
質問者

お礼

こんにちは! 4番さんまでの回答を読んでPHPとPerlで迷う私の気持ちを察したかのようなご回答、感謝します(^^)。 経験からくるアドバイスが本当に参考になります。嬉しいです。 >ただし、PerlやPHPを作成する環境を自分のPCに作らないといけないのですが、その方が2,3日かかるかもしれません。 早速方法をいろいろ調べて見る事にします。 >絶対にサーバでテストはしないでください。 はい、わかりました。 >でも、CGIを検索できるサイトがあるのですが、その中でも、えー、これってまずいんじゃない?ってのも多く見かけるので、販売はある程度の知識と勇気だと思うけど。(w ははは。そんなのあるんですね。 もし仮に将来販売まで出来るようになれば(「仮に」ですよ!)「まずいんじゃないの」とは思われないように頑張りたいと思います(笑)。 重ねて回答ありがとうございました!

その他の回答 (5)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.6

おおむね、他の方と同じような意見になるので一点だけ。 > 一般的にはそのようなCGIプログラムは広告付きのレンタルか、業者から購入するかであることを知りました。 もう一つのケースとして、無料で提供されているスクリプトを利用しているケースもかなりあります。 多くの個人ユーザはレンタルの次の段階としてこれをダウンロード、自分のサーバに設置して利用していると思います。 有料、無料のCGI/PHPスクリプトは以下のようなサイトで探せます。 http://www.yumemaboroshi.net/ http://www.206.usn.ac/search/cgiscript/ http://www.i-say.net/cgi/ http://www.cgi-now.net/ 書籍などのサンプル以外にも多くの実用スクリプトを見るのも勉強になるかと思います。

realslimshady
質問者

お礼

ありがとうございます。 >おおむね、他の方と同じような意見になるので一点だけ。 ありがとうございます。他の方と同じという事は、ある程度まで独学可能と理解します。やってみる気になっています! >もう一つのケースとして、無料で提供されているスク>リプトを利用しているケースもかなりあります。 はい、そうですね。ごめんなさい、書き忘れと言うか、質問時頭から抜けていたと言うか・・・私もそういうスクリプトは使ったことがあります(パーミッション変更とか、sendmailの設定とかそれで何とか概要をしりました)。 >有料、無料のCGI/PHPスクリプトは以下のようなサイ>トで探せます。 ありがとうございます。とても役に立ちそうです。 >書籍などのサンプル以外にも多くの実用スクリプトを>見るのも勉強になるかと思います。 はい、ぜひ勉強してみたいと思います。 どうもありがとうございました!

realslimshady
質問者

補足

この場を借りて質問に答えて下さった皆様に改めてお礼を申し上げるとともに、この質問への回答を締め切りたいと思います。 皆様のアドバイスのおかげで、やってみる決意がつきました。心から感謝致します。 ポイントは、全ての回答が今の私にとって役に立ったので、とても付け辛いのですが、中でも今後の目処になるのに役立った回答に差し上げます。 でも、今申しましたように、全てのご回答が参考になりました。ポイントをつけていない方へも感謝の気持ちは同じですので、どうかご容赦下さい(できることなら全員にポイントを差し上げたい気持ちです)。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

参考程度に読んで下さい。 1. もちろんできるようになります。 2. PHPが、HTMLの中に埋め込みの形で書ける(他にもありますが)ので、いいかもしれません。 Perlは、万能的に使えますが、取っつきにくいような気もします。 他の言語としてRubyもいいと思いますが、サンプルの流通とかから考えると、PHPやPerlの方がいいと思います。 3. (1)なんかの本を買ってきて2~3週間でできるようになると思います。 (2)(1)と同様ですが、本に載っていないようなことをするには、言語自体の理解とかそういうことをちゃんとしないといけないので、少なくとも1ヶ月ぐらいは掛かるのではないでしょうか。 (3)"本格的なプログラム"にもよりますが、広範な知識が必要になると思いますので、それなりの経験とかが必要になります。数ヶ月~数年かかるかと思います。 (4)自分が使うようなものをそのまま販売するというのはすぐできるかと思いますが、あらゆるユーザのニーズと環境で、堅牢に動くモノをつくるのはかなり難しいです。 そういった経験とか知識の取得が必要になります。 少なくとも、テストできるさまざまな環境が必要で、かなりのコストが必要になるかと思います。

realslimshady
質問者

お礼

個々の質問にポイントを突いたお返事を頂きまして、嬉しく思います。(3)の「本格的なプログラム」は質問の仕方としてちょっと抽象的過ぎたですね。反省してます。(2)までできるように、まず頑張ってみたいと思います! 回答どうもありがとうございました! P.S. PHPとPerlで迷う事になりそうです。

  • Yabukoji
  • ベストアンサー率33% (158/475)
回答No.3

perlでCGIを勉強してから2年経つので、No.3の私のアドバイスは最新の事情に沿ったものではないかもしれません。 1・ 不可能ではないですがよほど意志が強くないと出来ないことだと思います。私には無理です。 2・ CGIだけを目的とするなら、Perlが習得に早いようです(耳知識です)。 3. 「ちょっとしたCGIの改造ができる」のと「簡単なプログラムができる」は同じです。30~45日でしょうか。 「本格的なプログラム」から上はちょっと見等がつきません。 CGI技術の習得にとっての一つの障碍はプロバイダーがすべてCGIを許可してはいないということです。 作ったCGIプログラムを実際に動かすためにはそれが許されるサーバーを見つけることが必要です。 初期の段階はローカルだけでよいでしょうが、実際に動かすようになる前にCGI用のサーバーを用意してくれるプロバイダー、職場他を見つける必要があります。

realslimshady
質問者

お礼

意思の強さですか・・・。今はやる気満々なんですけどね!HTMLやCSSのマスターは人よりかなり早かったみたいなので(友人談です・笑)、集中力はあると思うのですが・・・。 CGI自体は使えるサーバーを既に使っています。PHPもMySQLも使えます。海外のサーバーなので安いです(^^)。月7ドル程度で容量4Gあって(使い切れない!)かなり何でもできるので重宝してます。まだ豚に真珠な感じですが(笑)。 回答ありがとうございました!

回答No.2

1を満たすにはPHPが簡単でお勧めかも知れません。 CGIの改造を・・・と考えるとperlの方が良いかも知れません。 覚えるのには2週間もあれば結構覚えるんじゃないでしょうか。 会社で全くの初心者の方でも、3,4日くらいでなんとか書けるくらいにはなってました(PHP) >・なんと人の希望を聞いてCGIを作って売ることまで出来るようになってしまう(^^)。 これについてはちょっと時間がかかるかも知れません。 CGI以外の知識も必要で、覚えなければいけない情報がかなり多岐で多いです。 ちょっとした改造や簡単なプログラムを書くにはそれこそ2,3日で覚えられるかも知れません。 和足もrealsimshadyさんと同じような流れ、環境でCGI作成に取り組んだのですが、改造程度なら2,3日あれば出来るようになると思います。 また、CGIは下手に作成すると、サーバーを止めてしまったり壊してしまったりする場合があります。 最初のうちは自分のPCにAPACHEやperlをインストールするなどして、自分のPC上で作ってみると良いかも知れません。 インストール方法はグーグルで検索すると結構出てくるので、わかりやすいページを探してみると良いかと思います。 ちょっと探してみたのですが、解りやすいのが見つからなかったです。

realslimshady
質問者

お礼

ありがとうございます。私と同じような流れで最初取り組まれたのですね!これは一般的に皆さんと同じようなスタート台なのでしょうか(^^)。PHPとPerlどちら?という質問は多くそれらも参照したのですが、CGIの改造も考えて質問しました。ですのでその点的を射たお答えを頂きまして感謝致します。 最後の点、注意します。確かにサーバーに負担をかけるのはよくないですものね。壊してしまったりすれば、他の人にまで迷惑かかりますし。 同じような経験者(専門家となっているので失礼ですが、流れが同じと言う意味で)の方からのお答え励みになります。頑張って見ますね! あらためて回答感謝します。

  • ex_hmmt
  • ベストアンサー率48% (726/1485)
回答No.1

まず、私は「専門家」と言っていますが、レベルとして他人にCGIプログラムを販売できるようなレベルまで到達していない事をお伝えしておきます。私が到達しているのは、ネットワーク管理者としての仕事の中で、サーバ管理にPerlやPHPを利用したりする程度のレベルです。私も独学でした。 良い質問です。特に、CGIが概念である事やHTML,CSSを既に勉強していることなどがすばらしい。もちろん、Perlを勉強するのに遅すぎるなんてことはないし、「やってみようとしない」だけで出来る人は多いでしょう。 さて 1、可能です。始めはみんな素人ですし、最近は良い書籍も多いし、解説されているウェブサイトも多いです。昔は言語の仕様だけしかないところからみんな独学していました。今はそれにくらべれば、遥かに独学しやすいという事は事実です。 2、Perlが「CGIが利用できる」とされるウェブサイトのスペースや、レンタルサーバでは最も一般的に利用できるものですから、応用範囲は広くなるでしょう。ただし、PerlもPHPも、他の言語も、それぞれ得意な部分と苦手な部分がありますから、実際に実用プログラムを組む際にはそれらを考慮して何を使うかを考えるのが良いと思いますが(まぁそれ以外にも「顧客の要求仕様」とかがあったりしますし)、楽しんで組む場合にはとりあえずどれでも良いでしょう。なんなら自分のPCの中に実行出来る環境も構築できる(というか、まずは自分のPCの中にPerlやらPHPやらとローカルなウェブサーバをインストールして、構築するべきです。そうしないと暴走とかしたときに、同じサーバを使っているほかのユーザに迷惑かけます)ので、何を使っても良いと思います。初心者が学習するべきなのは、プログラミングの概念と構築方法であって、言語そのものは実際には(一つ理解していれば、他のものも)結構なんとかなっちゃったりするもんなんで。 3についてですが……かなり人に依存します。その人の資質というか。ところで、あなたはいわゆるJavaScript(JAVAではなく、HTMLなどに組み込んで利用する方のJavaScript)などは利用していますか?もしくは、ExcelやWordのマクロでも良いでしょう。 もしそれが出来ているなら >・大体の仕組みが分かり、ちょっとしたCGIの改造が出来るようになる。 >・自分で簡単なプログラムを作れるようになる ここまではすぐだと思います。まぁ、1日で出来るようになるか、1週間か、1ヶ月か、半年はちょっとわかりませんが(その人の資質に寄るため)。少なくとも、JavaScriptを自分で組める人であれば、Perlも十分組む事はできます。言語pや組み方は違うわけですが、「プログラムを作成している」という意味では概念としては同様だからです。 そこから先は、うーん。どうですかね。独学で到達できるのは確かですが、やはり資質にもよります。第一「本格的なプログラム」というのがどこからかとか曖昧ですし。 特に >・なんと人の希望を聞いてCGIを作って売ることまで出来るようになってしまう(^^)。 は、独学だけでは最近は厳しくなりつつあります。セキュリティの問題が絡んでくるからです。とはいえ、不可能ではない、ですが……今度は、「セキュリティを高めるにはどうしたらいいのか?Webサイトを攻撃する手段とは?」という事も独学で学ばなければいけなくなります。とはいえ、それもまた楽しいかもしれません。私のようなサーバ管理者の場合、利用するスクリプトは外部からアクセスできる場所にはおいていませんから、そういう部分をあまり考慮する必要がないのです。そういう意味では、ウェブサイトへ公開するような場合よりも難易度が数段下がる、とはいえます。

realslimshady
質問者

お礼

こんにちは。お返事ありがとうございます。 >特に、CGIが概念である事やHTML,CSSを既に勉強していることなどがすばらしい。 お褒め頂き恐縮です。ここでも色々調べ、PerlとPHPではどちらがいい?とかその手の質問は読みました。 Java script は多少利用していますが、人が使っているのを見よう見まねで、本格的に勉強したわけではありません。質問がある程度抽象的になってしまい申し訳ありませんでしたが、丁寧にお答えくださり嬉しいです。ひとつずつのお答え非常に参考になりました。 頑張ってみようと思います。3、4レベルは、自分でここまでというつもりはないのですが、プロとアマチュア(?)にどれくらい差がある分野なのか知りたくて質問しました。 お答え嬉しいです。感謝します!

realslimshady
質問者

補足

お礼の自己補足です。「3、と4はここまでというつもりはない」と書きましたが、3くらいまではできるのなら狙っています(笑)。

関連するQ&A