プログラムを勉強しようとしてつまづいた話 〜その1〜


大きく脱線するまえがき


昔、忍者になるために行う修行という子供向けの本があり、次のような訓練方法が書いてありました

・木の苗を植え、毎日その上を飛び越えていれば、家の屋根へ軽々とジャンプできるようになる

・沈むより早く足を上げれば、水の上を走れるようになる

これらには大きな欠点があり実現不能です

ひどいのは2番めの例で物理の法則を無視しています どんなに早く足を動かしても、足の裏が水面を蹴る力が重力加速度に対抗できません 同じような例に「手に羽を装着して早く動かせば空を飛べる」論があります うちわであおげば風を起こすことはできますが、身体を浮遊させるほどの推力を得ることはできません

木の苗を飛び越える例は、一見、努力すればどんなことでも叶えることができるという風に解釈することもできるが、それも数十cmが限度で、ある地点からふかのうになる 仮に屋根より高い木を軽く飛び越えられるなら、忍者になどならずにオリンピックに出たほうがいろいろな意味でいいと思います

プログラム入門などのガイド本には残念ながらこのような内容が多いのです

作者がプログラムを理解していない稀有な場合も含め、一般的にプログラムができない人がなぜできないのか理解していないことが多いので、最初だけは簡単な内容で期待が膨らみますが、序盤のある地点で急激に難易度が上がり、またたく間にとんでもない高いハードルが出現して、なにがなんだかさっぱりわからないと投げ出してしまうことが多いような気がします

そして、初心者によくある疑問に答えている本は少ない、というか、見たことありません


プログラマーに向いていないかも

突然ですが、宇宙戦艦ヤマトの第一回目はこんな話です 「地球は汚染されて人類は生きていけなくなった、そこへイスカンダル星から希望の光が指し、イスカンダルまでくればコスモクリーナーという放射能を除去する装置を差し上げましょうと伝えられる そして、ヤマトの諸君は宇宙戦艦ヤマトを建造することになった」

「イスカンダルに行けば地球は救われる」結構この手のぶっ飛んだ発想が多く

「コンピュータ・プログラムなら、通常ではできないことも可能になる」

この点だけが強調されてしまい 目標と手段が空転し始めます ただし、このぶっ飛んだ発想は大切なもので、一見不可能なことでも常識にとらわれずもう一度考えてみることは重要です

仮にイスカンダル星に行くことができるとしても、星間旅行をするには現在の科学の水準を大幅に飛躍させる必要があり・・・ 「ならば、宇宙戦艦ヤマトを作ればいいじゃないか」このような人は、天才にはなれるかもしれませんが普通の生活生活においては苦労が多いことと思います

この話を聞いて、ヤマトを作らなくても放射能除去装置を開発すればいいのでは・・・と思った人、あなたは才能あるプログラマーになれるでしょう この場面において一番現実的で実用可能な目標を選択し、かつ計画の規模が比較的経済的です

とはいえ、やはり、向き不向きはあるようです 宇宙戦艦ヤマトや忍者とは違って、達成可能な目標ではありますが・・・


---

注) 私はプログラマーになれたわけではありません、しかし、プログラマーの友人たちは比較的、空想家よりは現実主義の方が多く、忍耐強くもなく夢想家の私としてはプログラムを書こうという目標自体が最適な選択とは言い難いです

Comments

Popular posts from this blog