はじめてのプログラミングとしてPHPを勉強しはじめ、
セキュリティ、データベース、PEARについて
本に書かれてることは理解できるようになりましたが、
簡単なカウンターのようなものでさえ思うように作ることができません。
サンプルスクリプトを読んだりして理解はできるのですが、
いざ自分でスクリプトを作ろうとするとそこでばったり手が止まってしまいます。
英語にたとえると、英単語を知っていて、和訳を読むことはできるけど、
英作文は書けないというかんじです。
どうしたら良いのでしょうか?
「自分のしたいことをおおざっぱに分けて、それをさらに分けてみる」とか
「まずHTMLから作ってみる」とか教えていただいたのですが、それらは大変参考になりました。
あるいはZendやSmartyなど不足していることを教えていただいたり、
ほしいスクリプトはこうやって探すと良いなどを教えていただけると参考になります。
質問が漠然としているので、答えも参考になりそうなことなら何でも良いです。
よろしくお願いします。
セキュリティなどは当然ながら大切な事柄ですが
一度に出来るものなどありません。
出来る限り短い(数行から十数行程度まで)サンプルスクリプトを沢山テストして
「それらを組み合わせて何か出来ないか?」というように考えたりして
徐々に複雑にしていけばよろしいかと思います。
実用的なものを造れるようになることを優先するのであれば
細かな部分は既に準備されていてパーツを組み合わせるだけでOK
セキュリティなどもある程度考えられた環境を使うというのも手になります。
それがフレームワークです。
どれでも良いので人気のありそうなフレームワークか
書籍などで何度でも読み返せる資料があるフレームワークをチョイスして
使ってみる事から始めると良いでしょう。
そして、足りない機能の部分を改造する形でスキルアップ・・・。
何事も時間はかかるものですから、あせらず最低2~3年は基礎固めに使いましょう。
1つのフレームワークを使いこなせるようになったら
あとは実装されている機能が多少違うくらいで中身は似たような物です。
フレームワークのようなものを個人個人で作っていた時代に比べれば
ネット上に無料のものが幾種もあるとは・・・何と幸せな時代になったことでしょう。
「PHP」という言語は実用レベルに十分到達していると客観的に感じます。
問題はプログラムを組み立てる能力であって、PHP固有の問題ではないと思います。
私はネットワーク/サーバ関連の業務を行ってます。
この分野に居るのはプログラムに苦手意識があったからだったのですが、
結局、サーバ関連の業務を行うにはプログラミング能力も必須でした。
当時、ほぼ素人同然の私が上司から教わった方法です。
1:まずテーマを決める(プログラムの目的)
2:目的に至るまでの処理の細分化(箇条書きでOKです)
3:プログラムの遷移を簡単な図で表す
(UMLみたいな大層なものではなく、処理、条件分岐が四角で描ければOKです)
4:日本語交じりのコーディング
(この処理をして、その結果をさらに処理して という流れを日本語で書いていきます。)
5:実際のコーディング
4番が少し不思議な表現ですが、要はこの箇所で「やりたい事」を日本語で書きます。
例として、携帯からのアクセスをキャリア別で振り分けるコードの一部で説明します。
----------------------------------------
$変数A = 取得したユーザエージェント;
if(変数Aに"docomo"が含まれる場合){
宛先をhttp://www.hogehoge.com/imode/に書き換える。
}
~以下略~
----------------------------------------
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
これでプログラムの流れは組めたので、あとやりたい事に従って、
処理をPHPのものに変換していくだけです。
逆引きリファレンスなどがあると非常に助かります。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
----------------------------------------
$agent = $_SERVER['HTTP_USER_AGENT'];
if(ereg("DoCoMo",$agent)){
header("Location: http://www.hogehoge.com/imode/");
exit;
}
~以下略~
----------------------------------------
非常に手間ではありますが、プログラム思考を身につける事が出来ると思います。
有識者の方にアドバイスを得る際にも、「何をどうしたい」がはっきりしていると事がスムーズにゆきます。
ご回答ありがとうございます。
>問題はプログラムを組み立てる能力であって、PHP固有の問題ではないと思います。
それは疑ってません。ひとえに私の経験不足、能力不足によるところです。
上司さんから教わった方法はとても参考になりました。
この流れは実践に取り入れていこうと思います。
そもそもプログラミングは必要とする目的があって、
それを実現するためのものであり、
何か目的がないとなかなか身につかないと思います。
おそらく
簡単なカウンターのようなものでさえ思うように作ることができません。
というのは、途中でハマッてしまっているだけであり、
ハマッてしまうことは10年選手でもありえることです。
ハマッてからどう実現するか、
努力できるかどうかが大事であると思います。
「自分のしたいこと」であると目的として弱い可能性があります。
プロを目指すのであれば「顧客が求めるもの」が目的となります。
また、smartyなどは一人でやっている場合はあまり役に立たないし、
効果的な使い方は身につかないと思います。
具体的にはデザイナーとの連携を考え出すと必要になってきます。
なので目的が必要ですね。
それを探すのが一番難しいわけではありますが。。。
ご回答ありがとうございます。
はまったというか、最初から全然先に進まないんです。
頭が真っ白になってしまうんです。
>smartyなどは一人でやっている場合はあまり役に立たない
これは参考なりました。
まさにボクもそういうところで悩みました。
発想を変えて、まず
「いきなり作ろうとしてみる→わからないので参考書でソースを見る」「ほかいろいろ調べる」
の連続でいくしかないと思います~。
しかも簡単な掲示板とか。参考ソースがありそうな簡単なものを目標にするといいと思います。
ご回答ありがとうございます。
私も結局はそれしかないかなと思います。
>まさにボクもそういうところで悩みました。
そこからの体験談や、技術的なことも教えてもらえると嬉しいです。
逆にこっちのほうが難しいかもしれませんが、Perlをやってみてはどうでしょう?
こちらでカウンターができればできるのでは?
ご回答ありがとうございます。
とりあえずはPHPで頑張ってみます。
丁寧なご回答ありがとうございます。
いろいろ参考になりました。
>出来る限り短い(数行から十数行程度まで)サンプルスクリプトを沢山テストして
やはりそういうことになりますね。
もしネット上でおすすめのサイトなどありましたら教えてもらえると嬉しいです。
>最低2~3年は基礎固めに使いましょう。
そんなに時間がかかるのですか!?
フレームワークも検討してみます。