思い通りのプログラムが組めないワケとは?




cup_hippo

こんにちは、プロクラスの野間です。

思い通りのプログラムが組めない方が結構いると思います。

私がお話ししたい事と、ちょっとニュアンスが違いますね、

「思った通りに動く」プログラムが組めない。

が正しい表現かもしれません。
皆さんは自在にプログラムが組めますか?

一言でプログラムが組めない理由と言っても、理由はいくつもあるでしょう。
そもそもプログラム(言語)を知らないとか
変数とか関数とか色々知らないとか・・・プログラムでは特有の概念が沢山あります。
ですが、これらの知識があっても組めない方が居られるようです。

今回はこの点について少し考えてみます。

話に入る前にチョット練習


「横スクロールシューティングで右から敵が出てきて玉を打つ」
先にこれをイメージしてから読み進めてください。

●出来ると思っていることは意外に難しい

TVのクイズで出演者が描いた絵が何を描いた絵かを当てるものがあります。
例えば、「カバの絵を描く」と出題されて書かれた絵は視聴者が笑ってしまうものが多いですよね。
ところで、あなたは書けますか?
何も見ずに一度描いてみてください。

よ〜いドン(笑)

描きなれている人でなければ意外に描けないと思います。
でも、描く前は上手に描けると思っていませんでしたか?
いや、描いた後でも、目を閉じると今でもその動物は思い描けますよね?
でも、また描いても恐らくダメだと思います・・・

上手に描ける方は別のものが良いですね、スピーチとか?
逆にしてみましょう。いつも使っている茶碗の図柄を他の人に説明する文章を書いてみてください。

この現象はなぜ起こるのでしょうか?
ちょっと想像してみましょう。

●「思った通り」がポイント

例を変えましょう、簡単なものに変えます
「コップ」

恐らく頭の中に絵が思い浮かぶと思います。
が、先の実験でわかる通り、実は絵でも覚えていないのかもしれません。
これも少し表現が違いますかね、「具体的な絵ではない」のだと思います。
おかしな話ですが、具体的(詳細)な絵ではないから、色々なコップが合致するのです。

皆さんにとって、どうなっていたらコップでしょうか?
「液体を入れられて、飲料用に使う器」ならコップですよね?
ぶっちゃけ、水を溜められたら後は大きさ程度が問題でしょうか・・・
このような「おおざっぱ」な覚え方をしているので、初めて見るものでもコップと判断が出来るのです。
つまり、実のところ絵としての具体的なものはあまり覚えていない(正しくは引き出せない?)のでしょう。

人生で多くの「コップ」が必要な場合、絵が描けるほど詳細な情報は必要ではなく、
コップである事が重要で、そして、それだけで十分だったりします。
だってそうでしょう?描けるほど詳細に覚えていなくても今まで何の問題もありませんでしたよね?
これは全ての事柄について同じことが言えます。
脳は要点を覚えていて、詳細は遠いところにしまってある感じです。
遠いところにあるので、持ってくるのに時間がかかります(時間をかければ持ってこれるでしょう)。
だから、実際に慣れない何かをする時、詳細が必要な事は脳がムニャムニャムニャ・・・となるのです。

ここからわかる事は、普段私たちが思っていることは何一つとして「具体的ではない」点です。
具体的ではないのに「思った通り」とはおかしな話だと思いませんか?
それは、そもそも「思ってない」ジャンって事です。

●プログラムを組むのに必要な「思った通り」

ここまでの事から、言語や書き方を知っていてもプログラムが組めない大きな理由が
「具体性が足りない」ためだとお話ししました。

shooting

例えば、横スクロールシューティング


「右から敵が出てきて・・・」たったこれだけでも
・敵が出てくる高さは?
・いつ出てくるのか?
・一度出たら終わり?
・二つ目はどのタイミングで出てくる?
・アニメーションはするのか?
・移動速度は?
・左に一直線か?

移動に至っては、パラパラアニメを作る感覚で、アニメの1コマ単位で座標がどう変わるかを考えないといけません。
如何ですか?最初に「思っていた」ものと情報量に「差」がありませんか?

「うわぁ大変だな・・・」と思いますか?
否定はしませんが、恐らくどのような作業(職業?)でも同じ事です。
単に、自分にとって新しい事は「慣れていない」だけです。

だから、「思った通りにプログラムが組めないなぁ」と思っている方は、
組む前に、もっともっと具体的に頭の中でイメージを強く持ってください。
はじまり〜終わりまで。

実はとても簡単なコツがあるのですが、それはまた機会があれば(笑)

私たちプロのプログラマはプログラムを組む時には、先にそのゲームを「頭の中で遊び」ます。
それこそ、そのゲームに飽きるほど・・・
それほどイメージをカッチリ固めるから「思い通り」に組めるのです。

結論としては
思った通りのプログラムが組めない理由は「情報不足(イメージが足りていない)」となります。

では、また!