サーバサイド プログラミング with PHP(ITを学ぶのに想像力が必要な件)

久しぶりに、PHPによるサーバサイドプログラミングの授業。

本当は、Javaサーブレットと書いてあるのだが、変更した。 そんな効率の悪いことはできん。

サーバサイドでもクライアントサイドでも、システムの「奥行き」を 感じていないと理解が全く進まない。

システムの構成を図に描くと、2次元の平面でとりあえず描く、 描けてしまうけれども、「webサイトを作ろう。サーバも動かして」 となると、話は別になる。

そもそもパソコンの画面で起きる現象を見ていると、その裏側の システム、その構造を把握するのは難しい。

HTMLでwebページに何か表示するのと、 JavaScriptでwebページに何か表示するのと、 PHPでwebページに何か表示するのと、 どう違うのか? どう選ぶのか?

HTMLで書くと、ページソースを見ても内容は確認できる。 JavaScriptで書くと、条件によって内容が変わったり、エラーによって表示されなくなったりする。 PHPで書くと、webブラウザ側では結果を受け取るだけだから、どう制御されているかは見えない。

何をしたいか、どうやりたいか、で決めれば良いのだが、 それを考えるには個々の性質を把握していないと、 どう違うかがわからない。従ってどう使い分けるかわからない。

つまり、単純に「こうもできる」「こんな方法もある」と言われても、 一つのことを実現するのに複数の手段があったら、困るだけ。

「操作と結果」だけしか頭にないと、決められない。 また、それぞれの関係がわからないので、「なぜ複数あるのか、学ぶのか」 意義がわからなくなる。

意義のわからない事に取り組んでいる/やらされていると思うと、 自己肯定感、自己効力感が落ちる。

徒労になり、とりあえず動けば同じ、という考え方に落ち着く。

そんなふうに考えている輩にインストラクションするのも 10倍くらい徒労感が溢れるので、やっておれん。

というわけで、サーバサイドプログラミングを学ぶ機会があるなら、 「サーバを起動」して、DocumentRootにコンテンツを置き、 codeを書いてダイナミックなwebページを作ってみるのが良い。

一つずつ概念に触れて、整理していく。 「client / server」のやりとりを脳内に描き、 「Not Found」はサーバが動いてないと見られない(サーバが動いているとわかる)ことを知り、 「入力フォーム」でユーザが入力したデータがどう受け渡されていくかを観察する。

メッセージ一つでもいいから、webブラウザで入力されてからDBに格納されるまでの 流れを把握できると、「仕組み」と「振舞い」がわかってくる。

もちろんそれは、Javaサーブレットでも、できないことはないのだが。 サーブレットエンジンが入ると、役者が増えすぎて理解が面倒になる。

「システム」や「関数」、「写像」などの概念を身につけていないと、 ただ単に「扱う単語や手間が増えただけ」になってしまい、効果が減。

そこで、XAMPPでいいから、自分の手で動かしてみよう、となる。 いずれにせよ「仕組み」と「連携」を想像して理解する能力は必要だが、 比較的扱いやすいので、エクササイズを順番に与えると、わかりやすくはなる。

もっとも、そもそも仕組みを把握しようとする心がないと、、 それは、どうしようもない。全ての取り組み、試みは崩れ落ちる。

だから、「話を聞いてない」「理解しようとしていない」とか、 そもそも「理解する/できた」経験がなく、正しい状態を知らない、 というのは悪である。

知らない/わからないものが、わかる/できるようになる事を 経験していないと、まぁ対応できない。

つまり、変わる事の意義、変わる方法を知らない・信じてないので 行動できない。従って永遠に変わらない。即ち学べない、学ぶ能力がないのである。

ITじゃなければ、、操作と結果だけでこなせる部分もかなりあるだろうけど、 画面で覗くしかないITは、想像力に支えられること大なので、まぁ厳しいな。