プログラミングは難しい?子どもがつまずくのは、具体的にどこなのか

困難にぶつかりつまずいてしまう子どもの様子

「プログラミングって難しそう」
「始めてはみたけれど、うちの子には難しいみたいで」

どちらもよくいただく声です。そしてどちらにも、正直にお答えします。

難しい場面はあります。「そんなことないですよ、簡単です」とは言いません。
実際、子どもたちは何度も止まります。

ただし、大人が想像している難しさとは種類が違います。
そして、つまずく場所はかなりはっきり決まっています。

この記事では、当教室で実際に見ている「子どもが止まる場所」を具体的にお伝えします。
そのうえで、家庭でできること・しないほうがいいことを整理します。

結論:難しい場面はあります。ただし、種類が違う

大人が想像する難しさは、最初は出てこない

「プログラミング=難しい」と聞いたとき、大人が思い浮かべるのはこのあたりだと思います。

  • 英語がずらっと並んでいて読めない
  • 数学の知識が必要そう
  • 専門用語ばかりで意味が分からない

これらは、子どもが最初に触る段階では出てきません。

Scratchはブロックを並べるだけですし、使う言葉も日本語です。数学の知識も要りません。
つまり大人が心配している難しさと、子どもが実際にぶつかる難しさは、別物だということです。

実際に難しいのは「思ったとおりに動かない時間」

では何が難しいのか。
ひとことで言えば、自分の頭の中にあるものを、機械に伝わる形に置き換える作業です。

「キャラクターをジャンプさせたい」という気持ちは、はっきりしている。
でもそれを、どのブロックを、どの順番で並べれば実現できるのかが分からない。
この隔たりが、難しさの正体です。

プロでも「難しい」と言う。難しさには段階がある

もうひとつ、知っておいていただきたいことがあります。

仕事でプログラミングをしている人でも、新しい技術が出てくれば分からないことだらけです。
そこでは当然「難しい」と感じています。

つまり、プログラミングの難しさはその人の段階に応じて、常に存在するものです。
上達したら難しくなくなる、という性質のものではありません。

だとすれば、初めて触る子どもが難しいと感じるのはまったく当たり前のことです。
難しいから向いていない、という判断にはつながりません。

子どもがつまずくのは、この3段階

子どもがプログラミングでつまずく3段階(ブロックが見つからない・どれを使うか分からない・組み合わせると分からなくなる)を示した図

ここからが本題です。
当教室で見ている限り、つまずく場所は大きく3つの段階に分かれます。

お子さんが今どの段階にいるかが分かると、対応が変わります。

第1段階:ブロックが見つからない

最初のつまずきは、意外なほど単純です。
使いたいブロックが、どこにあるか分からない。

Scratchのブロックは種類ごとに分類されていて、色でも区別されています。
動きに関するものは青、繰り返しなどはオレンジ、といった具合です。

Scratchでブロックがカテゴリ分けされていることを表した画像

大人はすぐに「分類を見ればいい」と気づきますが、子どもは一覧を上から順に探し続けることがあります。
目的のブロックにたどり着けないまま、時間だけが過ぎていく状態です。

これは理解の問題ではなく、操作に慣れていないだけです。数回やれば解決します。

第2段階:どのブロックを使えばいいのか分からない

次の段階は、少し性質が変わります。
やりたいことは決まっているのに、それを実現する命令が思いつかない。

「ジャンプさせたい」と思っても、ジャンプという名前のブロックはありません。
上に動いて、下に戻る——という動きの分解が必要になります。

ここが、プログラミングの最初の山です。
やりたいことと命令が、頭の中で結びついていない状態だからです。

そして、この分解ができるようになることが、そのままプログラミングができるようになるということでもあります。
つまずいて当然の場所であり、通過するべき場所でもあります。

第3段階:組み合わせると、分からなくなる

ブロック単体は分かる。順番も何となく分かる。
それでも止まるのが、この段階です。

① 囲うブロックが重なると、混乱する

「ずっと」や「もし〜なら」のように、中に別のブロックを入れるタイプがあります。
これが1つのうちは問題ありません。

ところが、囲うブロックの中に、さらに囲うブロックが入る場面が出てきます。
ここで多くの子が分からなくなります。

どこからどこまでが繰り返されているのか。この条件はどの範囲にかかっているのか。
構造が入れ子になった瞬間に、頭の中の見取り図が崩れるのです。

Scratchで入れ子構造になっているブロックを表す画像

② 2つのキャラクターを同時に消したい

そして、当教室でいちばん多くの子が引っかかるのがこれです。

たとえばゲームを作っていて、「弾が敵に当たったら、両方消えてほしい」という場面。
やりたいことは単純です。ところが、これが思ったようにいきません。

理由は、Scratchの仕組みにあります。
キャラクター(スプライト)は、基本的に自分自身のことしか操作できません。
あるキャラクターから、別のキャラクターを直接消すことはできないのです。

ではどうするか。
「メッセージ」という仕組みを使って合図を送り、相手に自分で消えてもらう——という発想の切り替えが必要になります。

ここが難しいのは、当然です。
「自分で消す」から「相手に伝えて消してもらう」への転換は、それまでの考え方の延長線上にないからです。

そして、この壁を越えた子は、複数のものが連携して動くという考え方を手に入れます。
つまずきとしては大きいですが、越える価値のある場所です。

つまずいているとき、子どもに何が起きているか

つまずいたときの反応は、子どもによってさまざまです。
手が止まってしまう子もいれば、いらだちが表に出る子などもいます。

ですが、どの子にも共通しているのは「分からない」という状態です。

それぞれ場合によっては、諦めているように見えたり、やる気がないように見えるかもしれません。
ですがこれは違います違います。
やりたいのに進めない、という同じ状態が、表に出るときの形として違っているだけです。

家庭でやるといいこと、しないほうがいいこと

しないほうがいいこと

① 答えを教える

見ていると、どこが違うか分かってしまうことがあります。
それでも、そのまま伝えるのは避けたいところです。

その場は進みますが、次に同じ場面が来たとき、また止まります。
しかも「自分では解けなかった」という記憶だけが残ります。

② 急かす

「まだできないの?」「さっきから同じところじゃない?」

つまずいている時間は、外から見ると停滞に見えます。
ですが本人の中では、試行錯誤が進んでいることが少なくありません。急かすと、その時間ごと終わってしまいます。

③ 難しすぎるからやめよう、とすぐに判断する

前述のとおり、難しさは段階として常にあります。
今つまずいていることは、向いていない証拠にはなりません。

やるといいこと

当教室で、つまずいている子に最初にかけているのは、この2つの質問です。

「どこまでできた?」 「今は何をやろうとしてるところ?」

シンプルですが、この2つはよく効きます。

1つ目は、できていない部分ではなく、できている部分から話を始めるための質問です。
「分からない」と言っている子も、実際にはかなりの部分ができています。
それを本人に言葉にしてもらうと、状況が整理されます。

2つ目は、もっと重要かもしれません。
そもそも何をしようとしていたのかが、本人の中で曖昧になっていることがよくあるからです。

「何をしようとしているか」を説明しようとすると、子どもは自分でそれを言葉にします。
その過程で、説明しているうちに自分で気づくことが珍しくありません。

答えを渡さずに、状況を整理する。
この2つの質問は、ご家庭でもそのまま使えます。

この2つの質問がなぜ効くのかは、 子どもの「考える力」とは何か?育ったかどうかを見分ける3つのサイン で説明しています。
どちらも、答えを渡さずに考える手順を助ける形になっています。

「難しい」と「嫌い」は、分けて考える

最後に、いちばんお伝えしたいことを書きます。

お子さんが「難しい」と言っているとき、それが「難しい」なのか「嫌い」なのかを、分けて考えてみてください。

「嫌い」なら、それは仕方のないことです。
興味が持てないものを続けても、良い結果にはなりません。
他に向いていることを探すほうが健全です。

ですが「興味はあるけれど、難しい」なら、話はまったく別です。

この状態は、むしろ順調です。
興味があるという最も大事な条件が揃っているうえで、目の前の壁につまずいているだけだからです。
そして前述のとおり、難しさは誰にとっても、どの段階でも存在します。

興味があって難しいなら、誰でも成長できます。
簡単なところから始めて、慣れていけばいいだけです。

見分け方は難しくありません。
うまくいかないと言いながら、また開いているかどうか。
それが答えです。

なお、プログラミングに限らず、習い事全般について「やめたい」と言われた場合の考え方は
子どもが習い事をやめたいと言ったら?「やめたい」の中身を分けて考える で整理しています。
「難しい」と「嫌い」以外にも、理由はいくつかに分かれます。

失敗との向き合い方については 子どもが失敗を怖がるのはなぜ?「失敗を楽しめる子」に変わる関わり方 でも詳しくお話ししています。

よくある質問

Q. うちの子には難しすぎるようです。やめたほうがいいですか?

「難しい」と「嫌いになった」を分けて考えてみてください。
難しいと言いながらまた触っているなら、続けて問題ありません。
難易度は下げられますが、興味は取り戻しにくいので、そちらを基準にするのが確実です。

Q. 何度も同じところでつまずきます

同じ場所で止まるのは、そこが理解の分かれ目だからです。
特に上で挙げた第3段階は、繰り返しつまずくのが普通です。
回数ではなく、少しずつ自分で進める範囲が広がっているかを見てみてください。

なお、この「つまずいて、直して、また試す」という過程は、記録に残すと自由研究になります。
うまくいかなかった経緯そのものが、研究の材料になるためです。
詳しくは プログラミングで自由研究|提出物のつくり方と、研究として成立させるコツ で解説しています。

Q. 親が教えられないのですが、大丈夫でしょうか?

問題ありません。
むしろ教えられないほうが、上に挙げた2つの質問に集中できます。
内容を理解していなくても、「どこまでできた?」は聞けます。

Q. どのくらいで慣れますか?

第1段階(ブロックが見つからない)は数回で解消します。
第2段階以降は、作りたいものが増えるたびに繰り返し出てきます。
なくなるものではなく、扱えるようになっていくものとお考えください。

Q. 数学が苦手でも大丈夫ですか?

最初の段階では、数学の知識はほとんど使いません。
使うとしても「10歩動かす」といった数字の入力程度です。
苦手であることが障害になる場面は、当分ありません。

まとめ

プログラミングには、難しい場面が確かにあります。
ただし、大人が想像する「英語」「数学」といった難しさとは種類が違います。

子どもがつまずくのは、おおむねこの3段階です。

  1. ブロックが見つからない … 操作に慣れれば解決する
  2. どのブロックを使えばいいか分からない … やりたいことを分解する段階。最初の山
  3. 組み合わせると分からなくなる … 入れ子構造や、複数キャラクターの連携。ここが最も多い

そして家庭でできることは、この2つの質問だけです。

「どこまでできた?」 「今は何をやろうとしてるところ?」

答えを渡さずに、状況を整理する。それだけで進むことがよくあります。

最後にもう一度。
「難しい」と「嫌い」は別のものです。
興味があって難しいなら、それは順調な状態です。簡単なところから、慣れていけば大丈夫です。

オンラインプログラミング教室「ぽてぽーと」で一週間無料体験!

つまずいたときにすぐ聞ける相手がいるかどうかが、続くかどうかを分けます。

プログラミング教室『ぽてぽーと』は、小中学生を対象にしたオンライン教室です。
いつ入室しても、いつ退室してもOKの自習室型2Dメタバースで、生徒がいつ来ても、先生がいます。

  • 困ったときは、いつでもすぐ相談できる — 先生はいつも同じ場所にいます
  • 答えではなく、状況を整理するところから — 「どこまでできた?」から始めます
  • 教材は初級から段階的に難しくなる設計 — 常に「がんばれば届く」位置に次の一歩があります

「難しそうで続くか分からない」 「家で教えられる自信がない」

そんな段階の方こそ、一度体験してみてください。
まずは一週間、無料でお試しいただけます。

無料体験のお申し込み・ご相談は、公式LINEから受け付けています。

line友だちボタン
プログラミング教室ぽてぽーとのバナー広告