昨日の記事でも紹介しましたが、今日以下の本を読了しました。
小飼弾のコードなエッセイ ~我々は本当に世界を理解してコードしているのだろうか? (Software Design plus)


小飼弾氏は以下のような質問に対し

弾さんにとってプログラミングの魅力って何なんですか?

こう答えたそうです。

呪文を唱えたら動く。リアル魔法じゃん


そのことについて、以下のように解説しています。

この魔法はいつでも学ぶことができるし、唱えるのに何の免許も資格も必要としない。ましてやキュウベエと契約する必要はまったくないし、唱え損なって落命することもほとんどない(ゼロではないけど)。ノーリスクハイリターンとはこのことではないか。


この解説の前に、本書では仕事を片付ける方法は以下の3つしかないと書かれています。

1.自分でやる
2.人にやっていただく
3.コンピュータにやらせる


私がそこそこ会社で成果を出すことができたのは、この「コンピュータにやらせる」技術が、他部署の人たちは勿論、他のプログラマーよりも高かったからだと自負しています。この「コンピュータにやらせる」という選択肢を持っていない方から見れば、コンピューターに働かせるのが上手な人間が、さも魔法使いであるかのように見えることでしょう。


たまたま昨日、私もまさにそんな機会に出会いました。現場でのシステム立上げを夜間作業で終え、会社に戻った私を待ち受けるのは、来週から稼働するシステムが動作するための膨大な量のシステムデータ入力でした。丸一日分の仕事として投げられたのですが、私はその仕事を1時間でやり遂げました。


そう、コンピューターにやらせたためです。プログラミングという魔術を使い、システムデータの連続性、入力の法則性を利用して、ほとんどのデータを演算により自動入力できるソフトウェアをその場で作成したのです。夜間作業明けで非番というのに、11時にその仕事を渡され1度は絶望しましたが、魔法を使って昼休みまでに退社することができたのです。日常業務の中で、こういった場面は多々存在します。


「魔法」っていうほど凄いことでもねーじゃん、と思われる方もいらっしゃるでしょう。確かに現実世界に働きかけることは難しいでしょう。しかし、コンピューターの世界では、何だってできるようになることも夢ではないのです。以下の通りです。
Shibu's Diary: これから魔法使い(プログラマー)になる、新卒者のみなさんへ

科学の発展に、錬金術が大きな役割を果たした、という逸話をご存知の方も多いのではないでしょうか?現代に生きていれば、原子(アトム)の存在を知っているため「錬金術なんてありえないよ」と言えるでしょう。実際の現実世界であれば、アトムのルールに縛られますが、人類が20世紀に発明したコンピュータは、これとは違う、ビットの世界を構成しているため、「錬金術は成り立たない」という前提が崩れます。無から有を産みだすことも可能ですし(Windowsとかブラウザもデータ上は単なる01のビット列)、いくらでもコピーが作れます。現実世界ではできなかったことがコンピュータの中では実現できます。


IT業界に入るということは、この魔法(プログラミング)を身につけるということです。注意深く呪文(プログラム)を組み立て、発動させると、波動(バス間を流れる電気信号の波)が生み出され、人間では到底扱えないような桁の計算を間違いなく行ったり、図形が動いたり、大量のデータから欲しい情報を抽出したり、何も無いところからお金が生まれたりします。技術が高まると、実に様々なことができるようになります。ワクワクしませんか?


これから先、プログラミングによってできることは、更に増加を続けることでしょう。良い時代に生まれたものです。ドットインストールの開発者が、「プログラミングは、最も費用対効果の良い学習である」みたいなことを言っていた気がしますが、まさにその通りです。


より強力な魔法使いを目指しましょう。ではでは。