プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

プログラムは文系の分野だろ常識的に考えて

昨日私が5時ぐらいにうとうとしていたら、突然携帯という名の固定電話が鳴り出した。
T「必須単位一個落としました( ´Д⊂ヽ」
私「やったね!(`・ω・´)」
T「ひどっ!もうさ〜。教授から何か直接言われてマジ凹んだわ。」
私「何落としたんね。相変わらずバァカだね〜。じゃ、切るよ?」
T「いやいや、切らないでよ。これ以上必須単位落とすとマジでやばいからさ、JAVAのプログラム教えてくんない?」
私「墜ちろ。だいたい、先週3時間ほど見てやっただろ?ついでに、俺に何のメリットあるの?つーか、俺お前と学部違うじゃん」
T「お願いです。助けて下さいよ〜( ´Д⊂ヽ」

ただアルゴリズムを教えろだとか、JAVAの文法を教えろ、というのなら比較的簡単に教える事ができるが、プログラムをどう書けばいいのか、と聞かれると非常に教えにくい。
私が今までちょろっと教えた人たちは「何から手を付けたらいいのか分からない」と口をそろえて言う。

さて、これが一番やっかいだ。
それが、「どういったアルゴリズムでプログラムを組んでいけばいいのか分からない」というニュアンスなら、私が分かる範囲なら何とかしようもある。一方、並び替えのアルゴリズム自体は言っている事は分かるけど何をどう組めばいいのか分からない、となると私では正直すまないが手のつけようがない。

プログラムを組むのに必要な能力って何だろうか。
数学?うん、最先端の技術を開発しているなら重要なスキルだ。なかったら話にならない。例えば公開暗号方式のアイディアを思いついた人は、それを実現するための数学能力が無かったので完成させる事が出来なかった。

だが、今私たちがしている程度の事で数学的な能力なんていらない。算数が出来れば十分だ。
高速フーリエ変換だろうが何だろうが、確立した技術はそのまま使えば良いだけだからね。本当に算数だけで十分だ。


本当に必要なのは実は国語力。竹内郁雄氏も言っている様に国語力が非常に重要だと私も思う。(竹内郁雄は東大の教授です)え?私のブログを読む限り国語力があるようには思えないって?えぇ、確かに私は語彙力や表現力が非常に薄いですよ。後、よく話が別のお題に飛びますよ。ちなみに、これでも私は現代文は非常に得意で現文だけなら学年トップだったことありますが何か?

別段語彙力だとか、難しい言い回しや、面白い文を作る事が出来る必要はない。自分がしたい事、やりたい事を文章として順を追って並べる事が出来ればそれで言い。図を使っても構わない。本当にそれだけで十分だ。
Aをして、Bをして、もしCだったらもう一回Bをして……
という様に日本語で表現できたなら、後はそれをプログラムに書き直すだけだ。それは日本語を英語に翻訳するのともうほとんど変わらない。


日本語でぐらい出来るさ、プログラムが出来ないんだ。って?
うん。Tも私にそう反論してきた。出来るなら文句言わずに紙に書いて私によこせと。

で、結局出来ませんでした。
「流れは分かるんだけど、どう言葉にすればいいのか分からないんだよ」とか、何か言い訳していましたが、結局どう言葉にすればいいのか分からないのがプログラムが出来ない原因です。言葉に出来ない、説明できないという事は整理ができてないという事です。
別段私やTは初心者なんで綺麗なプログラムや華麗な処理をする必要なんて無い。汚い処理でも良いから目的の動作をする事、その為の処理を日本語で表現できる事が何よりも大切。


プログラムがどこから手を付けたらいいのか分からない、何を書けば良いの分からない、という人はまずPCに向かうんじゃなく、日本語で書き表すところからは始めましょう。