見出し画像

エンタメ読解力とプログラミング

プログラマーというと世間のイメージ的には論理的で数学が得意なタイプというのが相場なのではないだろうか?自分は理系だが数学より国語と英語で点を取れるタイプだったし、数学は得意ではない。このブログを読んでる人も私を論理的なタイプだとは思ってないだろう(笑)。

じゃぁどういうプログラマなのか?

Teaching Assistant

もともとプログラミングが得意なわけでもなかったが、大学生時代にやってよかったのはC言語プログラミング演習のTA(アシスタント)だった。TAと言っても練習問題を作って添削する程度のレベルである。”できる”方々には大層退屈な授業だったろうと思うがTAをやる側には良い経験になった。

やればわかるが、課題はみんな同じなのに(素直にやってくれれば似るはずなのに)30数人全員の答えが少しずつ違う。

- 綺麗に解いてるな〜
- 退屈な課題なんだろな〜
- ぜってー、コンパイルしてねーなこいつ
- GPLつけて来やがった
- (オセロの課題で) X-Window(GUI)つきだと
- (オセロの課題で)最強宣言キタコレ

出来の差は明らかなのでいい加減につけても評価はほとんど変わらないのだが赤ペン先生でもあるので一応全部読む。バグが紛れてるし・・・

ここで重要なのは、やりたいことは皆同じなのに、同じプログラムにならないと言うことだと思う。

作者の意図を想像する

同じ課題を解いているはずなのにその表現は皆異なる。何を考えてプログラムを書いているのかということを感じたり想像したりするようになると添削が面白くなってきた。赤ペンにも力が入る。(最強宣言オセロを倒したらすぐに改良版が飛んできたのは笑った)

ところで、私はエンタメ作品である推理小説やSFを読んだり、アニメを見たり、ゲームをしている時には作り手の意図を推し測りながら楽しむ。「そう来たか〜」とか言ってしまううざい奴である。

国語の問題で「作者の意図」を問う問題が批判されることがあるが、文学作品ではなくエンタメ作品、特にアニメの演出や推理小説、ゲームの演出の場合は「特定の効果」を狙って仕掛けを配置し、作者が受け手に〇〇させたい意図が確かにある。

悪役、敵は左手(下手)から出るとか。何度も同じ演出を重ねて笑いをとる天丼とか。

プログラムの読み方、添削はそれに近い。全ての表現において、書き手には特定の目的を達成したい意図がある。文学作品ではなく、意図を持って演出されるエンタテインメントの見方に近いと思っている。

エンタメの力

結局、たまたま就職活動した先でオープンソースをやっていてそこに参加することになったが、ソースから論理と演出を読むという能力は役に立ったと思う。........自分で書いててあれだが、たぶん役に立ってる。読むのが早いし。

他人の書いたソースを読む場合は論理を丹念に追うのが基本だとして、演出の意図とパターンを読むことでそれは加速されるし、作者とコミュニケーションが可能になる。書き手が黄金パターンを踏んでくれると凄く楽だ。こういうことをしたいのだろな〜というやつである。

よほど特殊でなければお約束にお約束を重ねるベタベタのテンプレものなんだし。テンプレの使い方が甘いとか、違和感を感じるところに注意することになる。

以前、絵を描くプログラマの話をしたが、私は絵も描かないし、論理的ってわけでもない。多分頭の中ではストーリーと演出がベースになってるんだろうなという気がする。オタク力というかエンタメ力的プログラミングである。論理的な人が読んだら「だからオメーのプログラムは読みにくいんだよ」と言うかもしれない。

作者の意図の読みづらい文学作品や名作ばかりじゃなく、演出の意図を見ながらエンタメ全開の作品を見まくり、ゲームを楽しんで「そう来たか〜」と言ってるのはプログラマー業では無駄にはならないだろう。イヤホント。

漫才やコントの構造を理解するのも似たような話かなぁ。

ただ、LispやPrologは意図が読みづらい(苦笑)
それは慣れなのか極度の論理性の高さ故なのか。CやGOは読みやすいんだよなぁ。

あなたが学生ならプログラミングの課題添削のバイトをするとプログラミング力が上がるかもしれない、てことで。でもタイプ次第かなぁ・・・

いいなと思ったら応援しよう!