Q: プログラミング教室に通えば、将来プログラミングができるようになりますか?

なります。少なくとも、その役に立つことは間違いありません。ただし、scratchを学ぶだけではプログラマーにはなれません。

プログラミングは実は大きく2つのステップに分かれます。①まずは日本語でコンピューターにしてほしいことを考える。②それをプログラミング言語に翻訳する。この2つです。

教室ではscratchというプログラミング言語で、プログラミングを学びます。scratchを使った仕事はおそらくこの世にありません。そういう意味ではscratchを学ぶだけでは「仕事」になりませんし、プログラマーにはなれません。ただ、どんなプログラミングをするにせよ必要な①について、またそれを翻訳する②については、その力を身につけることができます。

日本語でコンピューターにしてほしいことを考える

まずは「何をしてほしいか」を、日本語で正確に考えられることが重要です(①)。コンピューターは「他の解釈ができないほど厳密な仕方で」「短く」「抜け漏れなく」命令してもらわないと動きません。この厳密、かつ、抜け漏れのない方法を、日本語で考える。これが慣れていないと非常に難しいのです。

「カレーを作って」だけでは、コンピューターは動きません。「カレー作って」を、厳密に、抜け漏れなく日本語で記述していくと次のようになります。

・まず、冷蔵庫の中を見る。
・冷蔵庫の中の人参の数を数える。
・人参が5本未満なら5本になるまで、人参を買う。
・5本以上なら→そのうち5本を取り出す
・取り出した人参をまな板の上に乗せる
・人参を切る
・5本未満なら→5本になるまで、もしくはすべてのXに行くまで以下を繰り返す
・Xに行く
・XはスーパーA、八百屋B、コンビニCの順とする
・人参が1本300円未満なら→Xで人参を5本になるまで購入する
・人参が1本300円以上なら→次のXに行く

材料を揃える、それも人参だけでこれです。まずはこうして、日本語で、厳密に、抜け漏れなく「自分がしてほしいこと」を考えます。

プログラミング言語に翻訳する

次にこれらを特定のプログラミング言語に翻訳する(②)というステップを踏みます。②の言語には、Rubyだとか、Pythonだとか、無数の言語があります。目的に合わせて、使う言語が変わります。

ちょうど、日本語で(母国語で)言いたいことがあり、同じことをフランス語で言うとどうなるか、英語で言うとどうなるかを考えるのと同じような作業です。フランス語では蝶も蛾も「papillon」です。英語では口ひげは「moustache」、あごひげは「beard」。言語によって、語句も文法もまったく変わります。これがプログラミングです。

「scratchでプログラミングを学ぶ」とは、①の能力を鍛えること、また、それをscratchに翻訳する訓練をする、ということです。

プログラマーになるためには、scratchを学ぶ必要はありません。また、scratchを学んだだけではプログラマーにはなれません。ただ、scratchを学べば、プログラマーになる上で必要な力を、幼いうちから学べることは間違いありません。

大事なことは「日本語で厳密に、抜け漏れなく考えること」

『これからはじめるプログラミングの基礎の基礎』(監修:谷尻豊寿 著:谷尻かおり)という本では、次のように書かれています。

プログラミングはコツさえつかめば、誰でも書けるようになります。そのコツとは、コンピューターにしてほしい仕事を、できるだけ詳しく、正確に書き出すことです。日本人であれば、日本語で考えればよいのです。これができれば、あとは日本語をプログラミング言語に翻訳するだけです。日本語の指示書があれば、他のプログラミング言語に置き換えることも簡単です。日本語の指示書こそが、万能のプログラムだということを覚えておきましょう。(p.25)

「日本語の指示書」を「書く」力を身につける。その上で、scratchはとても有効ですし、その後、興味があれば、様々なプログラミング言語を学習していく役に立つことは間違いありません。

--

--

森哲平
ぜろいちニッティング 徳島の子どもプログラミング教室

1979年兵庫県生まれ。2011年より徳島に移住。2015年から徳島市沖浜町にて私設の図書館や子ども向けプログラミング教室を運営している。