世界に挨拶する代わりに、最初の一歩を踏み出す場所

前回の記事に頂いたトラックバックから。

コンソールベースの勉強って古臭いのかなぁー?とか思ったり。javascript で画面がグリグリ動いたり、ruby の余計なおまじないの少ないシンプルな言語から入ったほうが今はいいのかも。ケータイと web アプリ全盛期を過ごしてきた若者にとっては黒い画面で文字数字がウネウネ動いてるだけじゃモチベーションが保ちにくいかもなぁ…と思ったりもする。

Hello, world から始まらないプログラミング教育 - kagamihogeの日記

確かにそんな気もする。


「プログラミングを学びたい」と自発的に思う人は、自分がコンピュータを使って解決したい問題を、自分がコンピュータに触れた時代に、他の人がやってみせているのと同じように解決してみたくて学び始めるのだ、と思っていたりする。

たとえば「ゲームが作りたい」と思う人は、自分が見てきたゲームと同じレベルのものを作れるようになりたくてプログラムを始める。…いや、私がそうだっただけなんだが、この「ゲーム」を他のものに置き換えても、この前提は成り立つんじゃないかと。


まぁどこに最初の目標を置くにせよ、重要なのは最初に踏み出す一歩が「必ず約束の地に繋がっている」と確信できることだろうか。
私がプログラムを学び始めた時代にはBASICがあり(そして事実上BASICしか無く)、目的としてゲームがあり、ある程度であればゲームもBASICで作れていたのでBASICが入り口になった。今学ぼうとする人たちには、今の人たちが立てる目標に合った入り口があって良いと思う。

id:kagamihoge も挙げた Webアプリケーションならば、JavaScriptPHP あたりだろうか? 「(面白い|かっこいい|かわいい)blogパーツが作りたい」とか「Flashで華やかなWebSiteが作りたい」「FlashWebSite上にゲームを置きたい」とかいうのも動機になりうる。そう考えれば、案外ECMAScript*1は良い選択かもしれない。目標に近いことが直感的にわかるプラットフォームで「プログラムに出来ること」を「単純なサンプル」からイメージしつつ進めていくのは、一体何処にたどり着くかわからない "Hello, world." を書かされるより学びやすいんじゃないかと。


本当はどのようなプログラム環境で始めても、何のプログラムを組むとしても、プログラムという考え方そのものは何一つ変わらないわけだが、それに気づくのは、この「プログラムという考え方」を当初目標のもとである程度理解してからでいいと思う。

…まぁ、自然と類推解釈で気づくことではあるんだけど。