k-takahashi's blog

個人雑記用

教養としてのプログラミング講座

そもそもプログラミングとは、「自分以外のものを、思い通りに動かす方法のこと」(はじめに、より)だとして、それは職業プログラマだけでなく、全ての人に必要な考え方であり、それゆえ最低限のプログラミングの知識は教養として身につけておくべきである、という観点から書かれた一冊。

<プログラミングを学ぶと身につくもの>
■論理的なものごとの考え方
■情報を適切に分類し、活用する方法
■最小の手間で正確な仕事をこなすための思考法
■知らない人と知恵を共有する方法
(No.117)

というところへの野暮なツッコミ(「プログラマーの○○さんとか、そういうのができているとは思えないけど……」とか)はおいておくとして、お薦めできるかという点では微妙な一冊。


趣味でプログラムをいじったことのある人なら、多分、本書の内容は90%以上が既知のものになると思う。一方で、例えば文系の友人から「この本、読んだ方がいい?」と聞かれたときにも返事に困る。ウェブの考え方や方法論を語った本、仕事術についての本、数多のビジネス書、実用という意味でも教養という意味でも、本書よりも先に読んだ方が良さそうな本は幾つも思いつく。


ただ、もしその文系の人が、「プログラミングに興味があるんだけど、やったことがないので、ちょっとこの本を読んでみることにするよ」と言われたら、多分、「おお、頑張れよ。例が載ってるから、自分のパソコンで動かしてみると面白いよ」とは言うと思う。


本書は、講座や授業がベースになっているそうだ。だから、そこから得たフィードバックを反映した内容であって、そういう意味では「コンバットプルーブン」な内容。但し、それは著者の話術・講演術といったフィルターがかかっているので、一般的に成り立つのかどうかは分からない。(Chapter.5「プログラミングの未来」とかは、かなりうまく喋らないと、伝わらなくて引かれると思う。「定理証明支援系言語」とか「全世界プログラミング」とか「シンギュラリティ」とか、文系の人に面白く伝えるのは難儀だろう。)

面白かったところ

とは言え、まったく文系向けに書かれた本というわけではない。

当のプログラマーと呼ばれる人でさえも、プログラミングというのが持つ、本当の価値を知らないのではないか、という疑問も私の中で生まれてきたのが、もう一つの出発点です。
(おわりに、より)

上で書いた「身につくもの」のリストは、プログラマーに向けての「お前の能力を正しく活用しているか?」という檄文でもあるのだろう。


そういう点で一つ面白い言い方だなと思った部分を引用。

ある作業を繰り返す、ということは現実でもよくあること。しかし関数のように、ある作業に新しい意味を与え、そのうえで繰り返し使う、という手順はプログラム以外ではなかなか目にすることはありません。
そしてこれこそがプログラミングテクニックの神髄の一つであり、さまざまな作業を幾つかの関数で整理していくことで、全体の構造をすっきりさせ、能率を格段にあげることができるのです。
(No.826)

ここまで大上段な言い方はしないけれど、そういうものなのかなあ。