読者です 読者をやめる 読者になる 読者になる

絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

学習は螺旋的であればよく、まずは表面的に正しい作法を教えるべき

雑談 neta

ECサイトの会員登録画面・ログイン機能を作成しよう! プログラミング未経験から始めるPHP入門~応用編(3) (1/3):CodeZine
はてなダイアリー

フックにした話題と、言いたい本質がずれてるわけだが、まぁその辺はご愛嬌。
最近、ちょっと教育とかそういう部分について色々考える事が多いもんで、人のエントリに引っ掛けて言ってみた*1


まぁ、上の「これはひどい」記事について、下の記事で

まずWEBアプリはどんな仕組みで動いているのかと言うことを感じてもらうような場合はしょうがない気もする。

プログラミングができないうちから、セキュリティーについて教えても理解できないだろうし、遅すぎると動くものは作れるようになったからと無視するかもしれない。

はてなダイアリー

という事を言っていた。


だが、いやいやそれは違うんじゃない、と強く思う。


何よりもまず理解させるべき事は、セキュリティの本質的な仕組みや概念ではない。作法だ。

外から入力された値をSQLに入れる時には、その直前で必ずエスケープ関数に通す。

説明はそれで十分だ。
大事なのは、それによって何が行われているかを理解することではない。
正しい処理が行える作法を覚えることだ。
いっそ、そうしないとバグ*2が出るんだよ、SQLってそういうもんなんだよ、って教えてしまうぐらいでもいいかもしれない。


なぜ、1+1が2なのか。そんなことは算数を学ぶ時に理解しておく必要はない。
まずは計算が正しくできるようになる事が重要だ。
理由なぞ、学習が進み、大学で数学を専攻した時にでも学べばよい。
それまでは、1+1が2である理由なんて知らなくったって100点は取れる。
必要な時に、必要な事が分かればいいのだ。


教育とはそういうものだと思う。
人にものを教える、というのは、「教わる側にとっての本質」を見抜き、抽出し、伝えて行くことだ。
自分の知識やこだわりを語る事ではないのだ。

*1:そんな理由でなんか言われた方はたまったものではないですね^^^^

*2:初心者のうちなぞ、それこそバグとセキュリティホールは同等のものと思わせて十分だろう