プログラミングに「おまじない」として暗記する内容は存在しない
どうもー、ドイツでフリーランスのフルスタック&フロントエンドエンジニアをしています、Arisaです。
つい先日、調べごとをしていまして、久しぶりに見かけたキーワードを紹介します。
それは「おまじない」。
もやっとワード: 「おまじない」
皆さんはプログラミングを学習していて、「おまじない」という言葉を見たり聞いたりしたことはないですか?
私は独学時代によくありました。
「これはおまじないで、そういうものだと思って覚えてしまいましょう」
「この部分のコードはおまじないです」
「説明すると長くなるので、ここはおまじないとして覚えましょう」
独学なので、自分でひたすら調べて教材に取り組んでの繰り返しだったのですが、調べてヒットしたソースにこんなことが書いてあることがあった時、ものすごくもやっとしました。
なぜか?
理由は簡単。
そのおまじないで片付けられてしまっている内容が知りたかった、もしくは知る必要があったからです。
「おまじないってふざけてんのかよ 笑」
と、解決しないエラーと闘っていたときは本気で殺気立つワード🔥...とまでは行きませんが 笑
でも、腑に落ちないですよね。
その時は流行りだったのか、わかりませんが、やたらと
おまじないワードに遭遇 → もや
としたものです。
「おまじないとして覚えましょう」は、教える側の逃げ
調べたソースに「おまじない」で説明を片付けている物を発見したら、そのソースは有益ではない可能性が高いです。
欲しい解決策にヒットしたコードがそこで手に入ったとしても、コピペで動いたのでは、本当に解決とは言えませんし、ロジックを理解して実装したわけではないので、ちょっとしたことで崩れる脆いプログラムとも言えます。
何よりも不具合が出た時に自分で解決できなくなります。
理屈がわからず実装したコピペコードだから。
プログラミングを講師として教えるようになって2年以上ですが、おまじないで片付くことは、プログラミングにはないと私は思っています。
久しぶりに遭遇したおまじないキーワードで、もし受講生におまじないワードを使ったとしたらというシチュエーションを想定してみました。
・受講生から質問
・説明が長くなるので「おまじないとして覚えてください」と回答
・受講生は理解できないままに終わる
・受講生は、プログラミングは難しいと思い続ける
受講生にとってものすごく損な結果になってしまっています。
最悪、プログラミングは楽しくないからやめる、もしくは続かないと言う結果も十分あり得ます。
続いたとしても、「楽しいもの」と言うよりは「お金のために必要だから続けるもの」になってしまいます。
おまじないというワードは、プログラミングを教える人が逃げるためのワードだと私は思います。
上手になぜそうなるのか、わかりやすく説明できないのです。
これは教える側もロジックを理解せず書いているからと言う可能性も、ゼロではないのかもしれません。
エンジニアにもいろんな人がいますが、私はコミュニケーション能力と、説明が簡潔でわかりやすいエンジニアは重宝されると思っています。
コミュニケーション能力は、あまり今回の記事内容に直接関連はないかもしれませんが、説明をするには、少なくともコミュニケーションを取らなければ成り立ちません。
たとえ相手がエンジニアで、プログラミング的思考があって、プログラミング用語で説明しても理解できるとは言え、わかりやすく伝えなければエンジニア間でも話が通じない、なんてことはあります。
これがプログラミング学習者に対してであれば、もっとハードルは上がります。
アルファベットをこれから初めて学ぶ小学生が、「アルファベットって何ですか?」という質問をしたとしましょう。
教えるのが上手な先生は、
「アルファベットは、外国で使われている文字だよ。みんなが使っている日本語はひらがな、カタカナ、漢字があるよね。外国では英語っていう種類の言葉があって、アメリカとかイギリスという国で使われているんだよ。英語という言葉は、アルファベットっていう文字で書かれるんだ。実際にアルファベットのアイウエオを一緒に見てみよう」
と、アルファベットがどんなものか、どこで使われるのか、どんな文字なのかを、きちんと説明し、視覚的にも見せるでしょう。
教えるのが億劫な先生は、
「アルファベットの一覧はこれね。ABCの歌で覚えましょう。(ABCの歌を流して歌わせる)宿題もあるから明日までに提出してね」
これだけで終わるかもしれません。
前者と後者の場合では、同じ様に書けるようになったとしても、習った子どもに違いがあると思います。
前者は、説明は少し長いものの、アルファベットがどういうものなのか、使われる場所や言語を踏まえてアルファベットを書くようになりますが、後者はただ記号としてアルファベットを覚えて、意味はよくわかっていないけれど書くようになる可能性が高いですね。
さらにいうと、このABCの歌がおまじないです。
意味の説明や使う理由は無視して、ただ音楽の音に頼って覚えさせる、まさにおまじないです。
だから「アルファベット嫌い」「楽しくない」というコメントが返ってきます。
学校でその時は成績のために取り組んで使っていても、学校を出た後に使わなくなる、できなくなるのはそこだと思うのです。
教える側が逃げるケースは、実質ゼロではないと思います。
私も受講生から聞かれてわからないことはありますし、力不足だと痛感して、私よりも経歴とスキルのあるエンジニアに頼ったことも、時にはあります。
でもおまじないで片付けるのではなく、私はそういうことも含め、正直に伝えますし、それが学習する側のためにもなると思うのです。
教える側がおまじないワードで逃げることで、学習者の理解しようとする姿勢に壁を立ててしまいますし、学習者も理解が追いつかないまま進めてしまうので、良いことはありません。
それよりは、正直にわからないことは伝えて、調べて正しい回答を伝える方が、「エンジニアでもわからないことはあるけど、調べてトライ&エラーをして解決してるんだ。」と、エンジニアの本来の様子も知ることができますし、「現役エンジニアでも日々勉強の積み重ねなんだ。」と、知ることもできます。
要するに、学習者に「エンジニアはおまじないで片付けないで、わからないことは理解できるまで調べてトライ&エラーしています」という事実を正直に伝えることは、決して恥ずかしいことではなく、もっと学習者に知ってもらうべきなのです。
おまじないを使っている人やソースは、そのことを隠していることになると、私は思います。
まとめ
いかがでしたか?
個人的な意見ももちろん入っていますが、総じておまじないで片付けられることほど、学習者のためにならないことはないと思います。
おまじないは、教える側が教えることから逃げている、もしくは、エンジニアでもわからないことはあって、日々勉強の積み重ねという側面を見せないためのワードである、ということが伝われば幸いです。
教えるエンジニアの人にも、おまじないワードで濁して欲しくないですし、学習者の人にも、おまじないワードは参考にならないことを伝えたかったので、割と強めの主張だったかもしれませんが、プログラミングを教える立場として、この記事を書きました。
少しでも、プログラミング学習が楽しいと思ってくれる人が増えてくれるよう、これからも学習のコツや、事実、参考になる情報を書いていきたいと思います。
では
ちゅーす
この記事が気に入ったらサポートをしてみませんか?