目的ベースでプログラミングを学ぶ場合における複数言語アプローチの可能性

プログラミングそのものを習得しようとするのではなく、特定の目的を実現する手段としてプログラミングを習得しようとする学習者に対して、段階に応じて複数のプログラミング言語を学習させることが、目的への到達容易性を高めるのではないか、というテーゼ。 以下の議論から着想を得ました。 Togetter - 「ゲーム制作雑誌「がまぐ!」の編集長と、プログラミングを始める人はどうやって進んでいけばいいかを考える」 続きを読む
5
Ernest Croft @middlander

興味を引かれて「がまぐ!」を読んでみたけれど、かなり面食らった。大量の前書きと唐突なソースコード。対象読者を要約すると「覚悟完了してない初学者」だと思われるのだけど、95%は速攻で脱落すると思った。ので全体的な論調と.. http://togetter.com/li/109788

2011-03-10 02:37:40
Ernest Croft @middlander

ふと思ったのだけど、目的ベースでプログラミングを学ぶ場合、段階に応じて言語を乗り換えていっても良いのではないだろうか。100%思いつきなので強い根拠はないけど。

2011-03-10 02:47:14
Ernest Croft @middlander

言語を乗り換えることに対する批判は容易に想像できる。特に「学習者が今まで学んだ内容を破棄することはモチベーション低下に繋がる」といった類の指摘は避けられないだろう。でも本当にそうだろうか?

2011-03-10 02:50:19
Ernest Croft @middlander

少なくとも同じ手続き型言語であれば、思考様式は変わらないのだ。「書き方は違うけど、やってることは同じだね」と学習者に思わせることが可能であれば、全体としてのハードルは下がるはずだ。

2011-03-10 02:54:25
Ernest Croft @middlander

例えばHSPなりSmall Basicなり学習が容易な言語で、いちど簡単なゴールに到達させたのち、次のようにアプローチする。「Easyモードはお楽しみいただけたかな?だけどもっと難しいことをやるなら、Hardモードに進んで新しいことを学ばなきゃいけないんだ」

2011-03-10 03:00:52
Ernest Croft @middlander

そんなの上手く行きっこない、という疑念は強くあるだろう。ぼく自身も感じる。その源は、少なくともぼくの場合、ひとつひとつの言語を区別して学ぶという学習体系を経て今の自分があるという成功体験だと思う。まぁ無職なうなのがどう成功なのかは置いておいて欲しい。

2011-03-10 03:16:10
Ernest Croft @middlander

でもぼくの知る限り、いかなる題目を唱えたにしても、一からプログラミングを学ぶタイプの入門書はすべてひとつの言語のみを扱っている。だから色々な道を模索した上での感覚ってわけじゃなくて、つまり何の根拠もないわけだ。

2011-03-10 03:21:47
Ernest Croft @middlander

目的ベースの入門書であってもひとつの言語しか扱わないというのは、特定の言語の入門書をベースにしているという側面が多分にあるというだけで、それがたったひとつの冴えたやり方ってわけじゃないと思う。

2011-03-10 03:26:16
Ernest Croft @middlander

文法は異なるけど本質的には同じもので難度が異なる、という関係のものは他の分野にもあって、易しいものから入って難しいものへステップアップしたという経験がぼく自身にはある。

2011-03-10 03:32:34
Ernest Croft @middlander

例えばぼくのFPS経験はそのもので、最初に間口の広いものから入って強い興味を覚え、次第に競技性の強いものをプレイするようになっていった。最終的には初心者が即死しまくるような非常にシビアなものを遊んでいた。

2011-03-10 03:41:40
Ernest Croft @middlander

他にも、上手く行ってるかは知らないけど、どうぶつしょうぎと将棋なんて例もある。面白いというモチベーションの前では文法の違いなんて些細なものに過ぎないはずだ。だから本当にフォーカスすべきなのは、大いなる面白さをいかに学習者に与えるか、であるべきだ。

2011-03-10 03:55:56
きしだൠ(K1S) @kis

@middlander 入門書、プログラムに入門するという点では複数の言語を扱うメリットよりデメリットのほうがかなり大きい気がします。

2011-03-10 03:29:29
Ernest Croft @middlander

@kis 仰るとおり、プログラミングそのものに入門する場合、複数の言語を経るメリットは殆どないと思います。一連のtweetは「ゲームが作れるようになりたい」みたいな目的ベースで学んでゆく場合を前提に考えてます。via. http://togetter.com/li/109788

2011-03-10 03:36:22
きしだൠ(K1S) @kis

@middlander ちょうど今きづきました。「がまぐ」を軸にした話しなのですね。

2011-03-10 03:37:24
Ernest Croft @middlander

@kis です。あ、創るJava読みました。理屈的な部分よりも、わかりやすさとか楽しさを優先していくべき、というアプローチは大変参考になり、たぶんこの話の着想の元にもなってます。目的次第では複数の言語を跨ぐほうがより入りやすいのでは?というアプローチとご理解いただけると幸いです。

2011-03-10 03:49:54
きしだൠ(K1S) @kis

@middlander 読んでいただいててありがとうございます!わかりやすさや楽しさの中に、どう理屈を織り込むかというのが苦労したところでした。複数言語を跨ぐ場合には、よりプログラムとは何かみたいなメタな部分の動機が強くて、その理解力があるというのが前提に必要な気がします。

2011-03-10 03:59:23
Ernest Croft @middlander

@kis 確かに学習者の理解に依る部分は大きくなりそうです。ただ、万人にプログラミングの適正があるわけではなさそうなので「君にはHardモードはクリアできなかったようだね」で片付けてしまいたいという気持ちもあります。XD via. http://bit.ly/fxIRfD

2011-03-10 04:04:42
きしだൠ(K1S) @kis

@middlander まあ、目的はっきりさせて、ついてこれる人だけを相手にするというのはありでしょうね。そのほうがコンテンツとしておもしろくなると思うし。

2011-03-10 04:15:19
Ernest Croft @middlander

昨夜少し書いたけど、Small Basicは初学者にとても向いてる言語だと思う。こんなこと言うと笑われるかもしれないけど、まず見た目がとてもキャッチーなのだ。かわいい。

2011-03-10 13:22:16
Ernest Croft @middlander

それにチュートリアルがとても良くできている。何を作るにしてもGUIで何かが動いてくれて、学習者を楽しませてくれる。実際、プログラミングがそこそこできるぼくが触れても、自然とニヤニヤしてしまうぐらい楽しかった。

2011-03-10 13:24:17
Ernest Croft @middlander

他にも、ソースコードの共有が簡単にできるのも利点だろう。サンプルコードの入手が容易だし、誰かにコードを見せて相談に乗ってもらうこともできる。

2011-03-10 13:27:20
Ernest Croft @middlander

どうやら日本語化もされたみたい。チュートリアルも翻訳されたものがある。みんなSmall Basic触ってみるといいと思うよ。 特に @sfiorire とか。

2011-03-10 13:36:38