荒川光のブログ

Hikaru Arakawa's blog

JavaScriptのコールバック関数が理解できない

最近Progate(プロゲート)というサービスを利用してJavaScriptを勉強しています。

プロゲートのことは結構気に入っているのですが、今日はちょっと言わせてもらいますよ。

 

 

 

「コールバック関数」が分からないじゃないか!

 

何度繰り返して説明を読んでも理解できません。

「今まで学習してきたことが十分に理解できていないからではないか?」

そう考えて最初に戻ってじっくりと復習しましたよ。

でも分かるようにはなりません。

「理解できないままでもとりあえず先に進んでいけば、後になって分かるようになるのでは?」

そう考えて先に進んでもみました。

でも分かるようにはなりません。

 

他のジャンルの学習においてはいざ知らず、プログラミング言語の学習では「やっているうちに何となく分かってくる」とか「場数を踏めば理解できるようになる」というようなことは起こらないでしょう。

「分かる」か「分からない」かのどちらかであって、「大体分かる」というような曖昧な理解とは無縁の世界だと思いますよ。

 

私は途方に暮れ、学習は頓挫してしまっております。

 

理解できない原因は何でしょう?

「お前の頭が悪いからだろ」ですって?

その可能性については私自身もよく検討してみました。

えぇ、よーく検討してみましたとも。

 

その上ではっきりと言わせてもらいます。

「それは違う」と。

 

プロゲートの説明が不十分なんですよ。

教え方が不親切なんです。

 

プロゲートは初心者向けのサービスを提供しているくせに、このコールバック関数の説明のおそまつさは何だ?

こんな説明で理解できる頭脳の持ち主なら、NASAにだってメンサにだって入れるだろうよ。

 

それとコールバック関数を使って具体的に何ができるのか例を示してもらいたいですね。

パズルでも解くみたいに記号やアルファベットをひねくりまわして、頭の体操をしてるんじゃないんだぞ。

脳トレのためにやってるんじゃないんだ。

「こういう部分でコールバック関数が使われています」

「こんな場面で役に立っていますよ、外からは見えないけれども」

っていうふうに教えてもらいたいものです。

 

「つべこべ言わずにまずはコールバック関数を覚えろや。どんな風に使うのかはおいおい分かってくるわ」

ってそんな考えですか、プロゲートさん?

 

それにしても、こんなややこしい規則にしたがってコードを書かなければコンピューターに指令を与えることができないんでしょうかね?

できると思いますよ、きっと。

できるでしょ?

もっともこれはプロゲートの責任ではありません。

JavaScriptなんていう未熟で下等な言語を作った人間に対して言ってるんです。

もっとよく考えてプログラミング言語を作りなさいと。

 

それともう一つ気に入らないのが「引数」ってヤツ。

これなんて読むかご存知でしょうか?

「ひきすう」って読むんだそうですよ。

「いんすう」かと思ったら「ひきすう」だって。

なんじゃそれって思っちゃいましたよ。

一ぴき、二ひきってヒキガエルの数を数えてるんじゃないんだぞ。

業界用語っぽく気取っているつもりなのかもしれないけど、盛土のことを「もりど」って読んだり、首長のことを「くびちょう」って言うみたいで、私の繊細な神経では耐えられないのです。

湯桶のことを「ゆとう」と湯桶読みするのはまだ許せるんですけどね。

「ひきすう」なんて名付けたヤツ、翻訳したヤツ出て来いってんだ。

プログラマーっていう人種は算数はおできになるのかもしれないけど、どうやら日本語はそうじゃないみたいですね。

おっとっと、こんな言い方をするとプログラマー差別になっちゃいますかね、失敬失敬。

 

プロゲートはなぜ引数を「ひきすう」と読まなければならないのかの説明をするべきですよ。

「この読み方が滑稽であるという意見には当社も異論はないのですが、もうどこかの誰かがそのように決めてしまったことなので、ここは一つ御了承ください」などの注釈があれば、怒りも多少治まるってもんなんです。

 

 

 

ここで私からプロゲートさんに3つのアドバイスをさしあげましょう。

顧客満足度を高めたいならば改善するべき3点を無料で教えてあげるんですよ。

 

1.コールバック関数をメンサ会員以外の人にも分かるように解説。

2.コールバック関数を使えば何ができるのかの説明。

3.「ひきすう」という下品極まりない読み方についての釈明。

 

プロゲートは今すぐ社内会議を開いてこれらの問題について協議しなさいな。

ただ、こんな内容の会議になっちゃ困りますよ。

 

「ユーザーから苦情がきてるぞ。説明がヘタクソで理解できないって」

「えぇ? この説明で分からない人っているんですか?」

「それがいるんだよ」

「一番理解力の低い層でも理解できるように開発したつもりなんですけどね」

「まだ下がいるんだ。我々の想像力の及ばないほどの下が」

「サルでも分かるように作ったんだけどなぁ」

「サルは結構頭がいいからね」

「タヌキでも分かるようにしなきゃ」

「ほっとけよ、そんなヤツ」

「50のオッサンだとよ」

「幼稚園からやり直してもらうしかないよな」

「ハッハッハッ」

「ヒッヒッヒッ」

「どうせ無料会員のくせに」

「有料会員なんだってさ」

「金返せとか言って騒いでるらしいよ、ブログで」

「そんなクソブログ誰も読んでねえって」

「ハッハッハッ」

「クレーマーだろ」

「ヒッヒッヒッ」

 

悪かったなクソブログで。

とりあえずプロゲートのことは全体的には気に入っている。

だから分からないところはネットで調べたり本屋で参考書を立ち読みしたりして、理解できるようになったらまたプロゲートに戻って来ようと思っている。

 

でも「じゃあそれでOKじゃん」なんて思わないでくださいよ、プロゲートさん。

それじゃああんたたちの負けなんですよ。

自分のところのサービスで全部理解してもらえるようにしようという気概を持ってもらいたいものです。

その上で「さらに深く学習するのであればこういうものもありますよ」と優れた参考書籍やサイトを紹介するくらいになってもらいたい。

今私がやっていることは「さらに深い学習」なんてもんじゃない。初歩の初歩、基礎の基礎をやってるんだ。

その基礎が理解できない。

そんな馬鹿げたことがありますか?

説明が足りないんですよ。

ちゃんと説明しなさいよ。分かるように。

この先プロゲートで新しいことを学ぶたびにネットを漁ったり本屋へ繰り出すなんてことをしなきゃならないようじゃ、おたくの教材を使っている意味ないんですよ。

 

まあ、あまり一方的に相手を責めるのはフェアじゃないとも思う。

オレの方にも勉強方法を見直す余地はある。

たとえば、そうだね、酒を飲みながらじゃなくシラフで勉強することも今後は試してみようかな。

ここは公正を期すために言っておきましょう。飲みながらやっていると。ヒッヒッヒッ。オレは公正な人間だからね。

ただ欲を言えば、オレは飲みながら勉強するのが好きなんだから、酔っ払ってても理解できるようにサービスを進化させてもらいたいですね。

つまり「酔っ払った犬」にでも分かるくらい嚙み砕いて説明してくれと。

プログラミングはハイボールと相性がいいんだから。

 

じゃあ、今日はこれくらいにしておくか。

愚痴ってるヒマは無いんでね。

コールバック関数の勉強をしなきゃ。