読者です 読者をやめる 読者になる 読者になる

のあろぐ

「もぐらゲームス」・「Mogura VR」を立ち上げて運営している、のあPことNoahの個人ブログ。

プログラミングを例える本 - 「教養としてのプログラミング講座」


 早速読みました。てか、Amazon品切れになってる!

教養としてのプログラミング講座 (中公新書ラクレ)
 

この本を一言で言うならば、「プログラミングを例える本」だ。

だいたいのものは、「たとえ話」を使うとかなり浸透しやすくなると思っていて、特に新しい概念に見えて、実は馴染み深い概念を説明する時にはこういったたとえ話がとても有効に作用する。

本書でも、プログラミングの考え方自体を「杏花ちゃんへのお使いを頼むとき」「答案用紙を選り分けるとき」「思い出横丁のやきとんの名店、『ささもと』が計算をラクにするとき」長篠の戦いなどの事例を用いながら説明していく。
これを読んでいると、いかにプログラミングが実は生活に浸透しているものかということがなんとなく理解できるかもしれない。


本書では「目覚まし時計」が一番端的にわかりやすいプログラミングの例として出てくる。

  1. 朝6時になったら音を鳴らせ(時刻の設定)
  2. 音量は中くらいにして、水滴の音にする(音の設定)
  3. 最初は小さく、だんだん音を大きくする(スヌーズの設定)
  4. ボタンを押されたら音を鳴らすのをやめる(停止条件の設定)

こうした手順を通じて、徐々に目覚まし時計というものの機能が形をなしていく。日本語予測変換システム(「か」って入力するだけで候補を表示してくれるやつ)の開発に携わった慶應大の増井俊之教授も目覚まし時計をプログラミングの好例として取り上げているらしい。

著者の清水亮氏はenchant.jsなどでも知られているが、ゲーム制作者としても有名であり、本書でも「鬼ごっこをプログラミングとして分解する」「占いはどうか」「さいころゲームはどうか」など、ゲーム性の高いものについてルールを分解する試みをおこなっていて、これもまたなるほど、言われてみるとそうだなーと思いながら読んでいった。

という感じで、基礎的なプログラミング概念を比喩によって説明して、実生活にプログラミング思考って溢れているでしょ?ということを問いかけてくる本書は、なかなか電車の中とかでさらっと読むにはとても読みやすい本だと思う。惜しいのはKindleで出てないことか・・・早く出そう(提案)

※追記(4月12日)
Kindle版出てました。やったぜ。 

(と言うか、本記事を中央新書ラクレさんに取り上げていただきまして、電子版の要望も早めに受け付けていただけました。ありがとうございます!)

社会人にお勧めの4冊 / ついでに「教養としてのプログラミング講座」Kindle版がリリースされました - UEI shi3zの日記

 

余談だが、コラムに出てくるアラン・チューリングの話は面白い。チューリングは第二次大戦中のイギリスの若き天才数学者だった。当時イギリスはドイツの潜水艦である「Uボート」の攻撃に悩まされていた。ドイツは機械式暗号機「エニグマ」による暗号文を用いており、それを解かない限り潜水艦がどこに出現するのかがわからない。しかも、「エニグマ」の暗号は毎秒100通り調べたとして30億年かかるほどの複雑度であり、暗号の解読は不可能に思われた。

そこでチューリングは「人力に頼らず機械で自動的に解析する」ための「Bombe」というシステムを開発、暗号解読解析の糸口をつかむのであった。

ところがこのチューリング、戦後に投獄され、自ら死を選んでしまう。戦時下の業績は機密扱いになっており、活躍を知るものはごく少数であった。

2009年になって、有志による名誉回復運動がおき、時のブラウン首相は政府として公式な謝罪を行うことになる。今ではイギリスのあちこちの大学にその業績を称える胸像や施設があり、アメリカ計算機学会で授与されるコンピュータ界でも栄誉ある賞の名前は「チューリング賞」というそうだ。なかなか非業の人生であるが、コンピュータの礎をつくった人物として、後世で評価された人物である。

チューリング

チューリング