無知な教師は罪?

ちょっとした日常話

今日は技術的なことは特に無いです。備忘録として日常のことをメモ。

週に一度、C言語初心者講習会みたいなのを開いていて、私も参加しています(特に興味は無いんだけれど、金曜夜After6なので)。
毎度講習会の2日前に資料が出てくるのですが、その資料が毎回正誤的な意味で酷いので講習会前日くらいに時々修正してもらってます。もちろん"完全に間違い"というわけでもないのですが、最近の講習会は参加者もアップアップで付いてくるのがやっとみたいで、合理的な理由の説明もなく"こう書くんだよ"という半ば洗脳みたいな感じで進めています.
進め方としては一種の手法なのですが、鵜呑みにする相手にC言語の書き方としては一般的に"悪い書き方"とされる方法を教えようとしたことがありました。その書き方で学んでしまえば将来全員がある問題に引っかかりうることを容易に想像が付くくらいの悪習なのですが、作ってる側は気づいていないんですね.*1
教えられる側に"文法とか規格"とか能を演ずるつもりはなく、教える側が無知であるが故に洗脳みたいな教え方で悪習を全員にラーニングさせてしまうのはいかがなものかな〜と思ったわけです。一般に販売されている参考書ですら理由は無くとも"betterな(もとい一般的な)書き方"をサンプルとして教えています*2。おそらく知識ある人間が書いているので悪習なコードは意図的に避けているのでしょうが、無知な人間が作るとどうにも悪いコードは避けられないと思います.*3
その為にも資料に習慣として悪い記述があるからそこは修正したほうが良いよ、という指摘をしたのですが、その指摘を"オレオレ規則の強制"だなんて横槍を刺すような人が現れて大変困りました*4。しかも割と知識を持っている人間からの横槍です。今のまま教えたら悪いコード"だけ"*5を覚えることになるので大変困りました。後に教えられる側が困る事態が発生するのは眼に見えています*6。流石にこれは正気の沙汰じゃないと思いましたね.....
教える側は手法にもよりますが、こういう初心者に教えるような場合にはちゃんと知識を持って教えるべきなんじゃないでしょうか?でなければ意図していなくても"悪い方法を覚えさせて野放しにして学習者を将来困らせる"ということになると思います。教えようとしている姿勢は素晴らしいのですが、無知なままその役になるのは少し罪な感じがします。悪いんじゃないし、裁かれるべきでもないんです。所謂"罪深い"というんでしょうか、そんな感じがしました......

という日常のメモ。私自身への自戒でもあります。

*1:ちなみに具体的に書くとプリプロセッサ辺りで、参加人数が多いのでそれによるバグが起こったら修正して回るのが大変です。後、教えてる側が無知すぎてプリプロセッサによるバグは修正できなさそうな雰囲気ががががg

*2:理由もなく標準的な書き方を身につけるのは個人的に良いと思ってます。別の師にあった時も読んでもらいやすいですよね

*3:悪いものを除去するには悪いものをと良いものを区別できるほどの知識を持っていなければならないからです

*4:私はそもそもbetterな方法の探求はしてるだけで、他人に強制など一度もしたことがない。betterな方法があるということは普段から言います(つぶやいてます)が、他人に強制しようとしてもどうせやらないでしょ?と思ってるので...

*5:もちろん悪いコードをわざと覚えさせて、その欠点に気づかせる方法はあります。でもそれは知識ある人間がそこまで教えることを計画してやることで、今回はそういう予定はありませんでした。

*6:自力では解決しづらい(且つ標準的な記述を使っていれば本来出会わないような)問題を自分たちの目の届かない位置で発生させるという時限爆弾を埋め込むような行為です