見出し画像

Retro-gaming and so on

BMIと検索能力

僕が教えて!gooをやってたりするのは、別にプログラミングで困ってる人を助けたい、とか思ってやってるわけじゃない。
単に、色んな問題に触れたい、と言う全く利己主義的な動機でやっている。
例えば、自分じゃやろう、とか思った事もないが、最近のトレンドだとどうやら一部の大学でprocessingと言うJVMベースのプログラミング言語を初心者用に導入して教えているらしい。
これなんかは教えて!gooを見てなければ知りようが無かった言語だ。


Processing。IDE付きのプログラミング言語で、グラフィックなどを比較的簡単にプログラム出来るように設計されている。
いわゆる古典的で主流の端末相手のプログラムではなく、プログラミング素人が「想像する」プログラミング像に合わせて作られてる、と言って良いだろう。
文法的にはJavaを簡単にしたようなもの、となっている。
(だから、Javaに比べると相対的には簡単だが、一般的観点で「簡単なプログラミング言語だ」とは言えない・笑)

別に専門的にその言語をやろうとは思っていない。しかし、ある程度のプログラミングの知識を持ってれば、ググりながら見様見真似でその言語でもプログラムを書く事が出来る。
そして、それは単に自己訓練の為、なのだ。
ぶっちゃけ、一つのプログラミング言語を学んだらその知識を用いて「全く知らない」言語での問題を解いてみる、ってのはそこそこ効率が良い学習法だとは思っている。
これも、教えて!gooをやらなきゃ知らんかっただろう。自分で「全く知らない言語」を探して何か書く、なんつーのはかったるいので、「分かりません」質問は他者から投げられた良い練習問題及び自己訓練にはなるのである。
だからその問題を「丸投げ」した質問者が理解してるかどうか、ってのは極端な話興味もないし、単に自分の為だけにコードを書いて回答として投稿してるだけ、である。

(注: 昔はそこそこ丁寧に説明しようとしてた事もあったが、そもそも「宿題丸投げ組」は「理解したい」わけじゃなくって「コピペして宿題を凌ぎたい」だけなんで、「分かりやすい解説を書こう」と言う方がプログラミングをするより手間がかかるので、コスト的には割に合わないのである)

さて。
一番多いのはC言語に関する、しかも初心者向けの問題に対する投稿である。
まぁ、殆どがハナクソをほじってる間に解けるようなモノばっかだ。僕みたいな「C言語嫌い」でも解けるんだから、本質的には大した問題は投稿されない。
んで、見てると、C言語が初心者にやらせるべき言語かどうか、って問題はあるが(当然、僕は「違う」たぁ思ってる)、何だろ、「ちょっとでも授業を受けてる連中に役立つ宿題を」と言う、志がある問題もあるんだよな。
代表的なのがBMIを計算させよう、と言うネタである。

BMIとはBody Mass Indexの略称で、要は身長と体重から「肥満度」を測ろう、と言う指数である。
Wikipediaによると計算式は次のようなモノだ。


これがホントにアテになるのかどうかは知らない。そもそも、世の中に溢れる「指数」と言われるモノが数学的に見てどのくらいの根拠があるか知らんから、である。
しかし、題材的には皆が興味を持たざるを得ない「健康」に関わるモノであるし、計算式も単純だ。
これもハナクソをほじってる間にC言語で書けるスクリプトになるだろう。
別に

こんなモノも書けないなんて情けない

とか言う気もない。
コピペででっち上げても一向に構わんのだ。
問題はもっと別のトコにある。
つまり、僕がこのテの問題を教えて!gooで見たのは1回コッキリ、とかじゃないんだ。何度も見ている。
加えると、多分、最低でも2回以上、このコードを書いてるのだ。C言語で。
言ってる事分かる?

つまり僕に言わせれば頻出問題なんだよ。
飽きた、って言っても良い問題で、僕がそう思う、ってこたぁ世の中ではこれに対する回答、ってのが当然溢れてる、って事を意味してる。

分かるだろうか。
プログラムを作る上で理論性なんざ関係ない。
コピペしても構わない。
しかし、一番重要なのは検索能力であって、そもそもネットにある他人が書いたコードを「探せない」と言うのが問題なのだ。


近所のすごく勉強できて今年からプログラマーになった女の子も「え?ネットで欲しいコード探してコピペしますw 無かったら書くって感じで」

これは100%正しいのだ。
そもそもアタマが良いヤツ、ってのは無駄を嫌う。
そして意外に思うかもしれないけど「自分で考えない」のだ。
いや、最終的には考えるよ?
でも、まずは最初にやるのは「先人の知恵に学ぶ」のだ。
そしてアタマが良い、と言うのは言い換えると要領がイイ、って事なのだ。
だからこそ、まずは最初に「ネットで欲しいコードを探す」のだ。
彼女は100%正しい。

そもそも「アタマの良さ」ってのはレベルがあって、もちろん「最先端」のトコでは新しい技術が必要で、切磋琢磨する「仕事場」もあるだろう。
でもハッキリ言うけど、一般的なプログラミングでは90%くらいは所詮「再発明」なんだ。何一つ新しいモノが生み出されるわけじゃない。
そういう場所でのアタマの良い人は、まずは「ネットで欲しいコードを探す」。
それが正しい行動になるのだ。
まぁ、ライセンスの問題とかはあるけどな。でもそれは別の話だし、宿題レベルの「プログラム」とかクズみてぇなモンなんで、ネットに転がってるモノでほぼ充分だし、ライセンス的にも問題なんざほぼ生じないだろ。

とにかく「検索がまず出来ない」事が問題なんだ。
検索能力がない。
それがプログラミング学習に於いては致命的なんだ。
そして教えて!gooのプログラミングカテゴリには、正直言うと、「検索に難がある」質問者が集まっている。多分全体の9割くらいが検索が不得手な奴らである。

それじゃあダメなんだよ。

プログラミングを勉強する前に、まずは検索の勉強をすべきだな、って思う事が本当に多い。
と言う、一種愚痴である(笑)。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事