生徒おめでとう生徒

Matzにっきをきっかけに盛況な、初心者向けの言語議論。
ありがたいことに、まとめてくれてるところがむねきゅんです。


私の意見としては、初心者向けの言語と言われても何も浮かびません。
何の議論をしてるのか微妙ではあるんですが、エンジニア育成論と言語学論はやっぱり別物ではないでしょうか。


私の見解では、今皆さんがしてる議論は「高校の物理教育手法とその教科書検定」に置き換えてみると近いと思います。

たとえばの話

うホ


議論で例え話はご法度と判ってはいるんですが、あえて例えます。
運動方程式の教科書」を考えて見ましょう。


運動方程式を理解できる人、理解できない人。
微分積分の観点から運動方程式を見ることが出来る人、出来ない人。
最終的にたどり着く場所がどこなのかで、この「運動方程式の教科書」ってのはだいぶ変わってきます。


で、普通科高校のベースラインは大抵「センター試験をパスすること」です。
なら、実は運動方程式は一部ケースでの使い方さえ覚えていれば、理解している必要は無いんです。
無論、理系大学をマトモに受験するならさらに上、まださらに上の領域に達しなければならないので、様々なシチュエーション経験、例えば二重振り子とかの運動方程式を自力で記述して、解いてみる*1くらいの度量が必要なケースがあります。そして大学の理工学部はそれくらいの人材を必要としています。
でも、社会に出てエンジニアになれればいい、程度のひとにはマトモに運動方程式を記述できる能力なんて必要ないんです。

教科書検定

では、高校一年生の物理初心者には、どんな「運動方程式の教科書」が必要でしょうか?


教育現場や教育学専攻者は、このお題と常に向き合ってます。
詰め込み教育」だの「ゆとり教育」だの散々けなされてきた文部省の教科書検定は、いつもどんな生徒を相手にしてどんな風に進むか、サンプル数が生徒の揺らぎに対してお世辞にも多いとはいえない中で出来た代物なんです。


さて、「詰め込み教育の教科書」は Pascal のようでしたか?
さて、「ゆとり教育の教科書」は PHP のようでしたか?


難しいですね。初心者って区分は。


でも、現場の先生にはこっそりと上位の教科書で教えている人もいます。
私もそうやって物理を学びました。暇な人は解いてみろ、という難易度の課題を解くのが面白くて、ニュートン力学レベルの運動方程式をどんな場合でも解けるようになりたくて遊んでいました。
大学に入ると解析力学が始まります。私はここで著しく時間を浪費して、結局物理の道を歩むことを諦めました。


自分にとっての古典力学習得は、ノイマンアーキテクチャべったりな C言語習得。
そして解析力学習得は、それを超越した関数型言語の世界の Lisp 習得。


まぁ、そんな感じです。

で、開発初心者に戻る

ぐだぐだしてきましたが、
 初心者なんて山程いるんだから、初心者向きなんて千差万別だろ
とゆーことです。なんて無難でつまらない答えでしょう


まぁ、でも教科書は必要だから敢えて定義すると…。

  • サラグラマーや土方でいい人には、(レッサー)PHP か (レッサー)Java
  • 日曜大工な人には、RubyPythonPerl も一応
  • PC組む時にCPU選びを楽しんでる変態初心者には、C言語
  • 思考回路が斜め128度向いてる人には、emacs LispScheme

かなぁ。
まずは、Hello world. が簡単な言語をその人に合ったものから選択するべきかと。


ちなみに俺は C言語でした。ノイマンアーキテクチャは偉大です。

一番初めに戻る( GOTO 10 )

…と、教科書的な初心者向け言語の話からはずれて個別指導になっちゃいました。
話を戻しましょう。


まずは、目の前に何か与えたら、それをいじるかどうか観察してみてはどうでしょうか。
生徒の関心と目標を見極めるのが、教育方針の要です。
そして、平均的な生徒のスタンダードは時代や環境によって常に変わります。だから教科書検定は刷新されてるんです。


だから、初心者向けの言語も多数の意見を聞きながら刷新されていけばいいんじゃないでしょうかね。
まぁ、今なら Ruby でいいんじゃないでしょうか。Rails をいじりながら。

*1:結果は…… ご存知のとおりです。