ビジネスや経営に役立つプログラマーの思考法

清水(2014)は、経営における企画、組織、事業計画などはすべて「プログラミング」の応用として捉えることができるという。ここでいう「プログラミング」は、一言でいえば「自分以外のものを、思い通りに動かす方法」のことだと説明している。企画者の意図どおりにユーザーの気持ちを動かす、組織全体をリーダーの意図どおりに動かす、こういう仕事をしている人たちは、本人が意図していようがしていまいが、すべて「プログラマー」なのであり、「こうすればこうなる」というプログラミングの知識を持っていることで、より広い視野で、より深く考えることができるという。


さらに、プログラミングを理解するということは「世の中の仕組み」を理解することだと言い換えてもよいとも清水はいう。「プログラム」は「手順を正確に記した文書」であり、「プログラミング」は「それを書き記すこと」だといえるが、突き詰めれば、「プログラミングとは人類の叡智」だというのである。実際、プログラマーとして熟練すればするほど、生み出すプログラムがシンプルになると同様に、思考も効率化され、洗練されていくという。この洗練こそが、プログラミングを他の仕事に活かすヒントとなるというわけである。


では、プログラミングを理解するにはどうすればよいか。清水は、プログラミングの基本ルールとして、4つの鉄則を上げる。1つ目は「伝え漏らすべからず」である。期待している事象があるのならそれを伝え洩らさずプログラムに加えるということである。プログラミングした対象が期待通りの動きをしなければ、それはすべて命令を下したプログラマーの責任だということである。2つ目は「プログラミングはコミュニケーションの一形態」である。「コンピュータはプログラミングされたとおりに動く」ことを前提とすれば、伝えることに曖昧性があってはいけないということである。3つ目は「フールプルーフを活用する」である。「例外処理」を付け加えることによって、想定外の事態に対応できるようにしておくことである。4つ目は「インデントやカラーリングでメリハリをつける」である。期待通りの結果を期待すればするほど、指示が長くなり、論理構造も複雑になる。よって、インデントやカラーリングを施すことによって分かりやすくすることが重要だということである。


また清水は、プログラマーの思考法のテクニック部分についても説明している。第一に、効率的な作業手順を形にする「アルゴリズム」である。ある問題を解くための手順を、誰でも確実にこなせるよう、一つの「形」に整理したものである。第二に、プログラムの基礎パーツとしての「処理、分岐、ループ」である。処理は作業そのものであり、分岐はある条件を満たした場合に処理の流れを変えることであり、ループは繰り返しのことである。第三に、決まりきった作業を指す「ルーチン」や、引数を用いてサブルーチンに若干異なる動きをさせる「関数」である。さまざまな作業をいくつかの関数で整理していくことで全体の構造をすっきりさせ、能率を格段に上げることができるという。そして、サブルーチンや関数などをひとまとめにしたものを「ライブラリー」と呼ぶと説明する。


第四として、別の情報にワープする「ハイパーリンク」である。「アンカー」と「ジャンプ先」という2つの要素で構成され、あるアンカーが選ばれたら、指定のジャンプ先に飛ぶという処理である。第五として、情報を探す手間を削減する「ハッシュ+テーブル」である。ハッシュとは、あるデータが持つ特徴を示す別のデータのことであり、テーブルは、表のことである。一連のデータからハッシュを生み出す操作を「ハッシュ関数」という。第六に、考える手間と時間を劇的に短縮する「計算テーブル」である。あらかじめ、ある計算の結果を表にしておくのである。