プログラミング言語の類は忍耐力の試されれる勉強だ。機械の命令して作業をしてもらうという単純なことがとても難しい。
それは言葉の通じない国で、異常なほど文法に細かい無愛想な子供に、その国の言葉と文法を覚えながら、身振り手振りは行わず言葉だけで物事を頼むようなものだ。
例えば「赤いリンゴをかごに入れて、そのかごをテーブルに乗せてほしい」とする。そうすると大体下記のように伝えるだろう。
- あそこにある赤いリンゴ、かごに入れてテーブルに乗せて~
- テーブルにかごを乗せて、そのなかに赤いリンゴ入れて~
- テーブルの上に、赤いリンゴを入れたかごを乗せて~
これは言葉の順序は違えど、結果は一緒。どちらも意味としては通じる。
しかしJavaScriptなどのプログラミング言語は、正しい文法で伝えないと無反応、動いてくれない。
しかも間違ってる個所は教えてくれない。正解は知ってるのにこちらに対してノーヒント。
これを例えるには正に「言葉の通じない国で、異常なほど文法に細かい無愛想な子供に、その国の言葉と文法を覚えながら、身振り手振りは行わず言葉だけで物事を頼む」というのがとても適切な気がする。
自分「 赤いリンゴをかごに入れてそのかごをテーブルに、乗せてほしい」
異国の子供「え、わかんない」
自分「 だから、あそこにある赤いリンゴ、あるでしょ。それをかごに入れてテーブルに乗せるんだよ 」
異国の子供「わかんない」
自分「あれ、わかんないか。どこらへんがわかんない?」
異国の子供「どこがわかんないか、わかんない。」
自分「なんじゃそりゃ…んじゃ、見てて。こうやってリンゴをもって…」
異国の子供「わからない。言葉で教えて」
自分「えぇ~…伝え方間違ってるかな。せめて間違ってる部分がわかれば助かるんだけど」
異国の子供「わかんない」
自分「赤いリンゴをかごに入れてそのかごを、テーブルに乗せてほしい」
異国の子供「わかんない」
自分「赤いリンゴを、かごにいれてそのかごをテーブルに乗せてほしい」
異国の子供「わかんない」
自分「赤いリンゴをかごにいれて、そのかごをテーブルに乗せてほしい」
異国の子供「わかったー」
自分「え、何でわかったの…あ、まさか読点の場所が違っただけ?」
みたいなことになる。しかもこれを異国の言葉と文法を覚えながらやるのだ。やる気が削がれない訳がない。
プログラム言語で挫折する原因の一つはマジでこれだと思う。
幸い今のところ楽しく勉強させてもらっているが、なるべく早く言葉と文法を習得したいものだ。