人の脳にはある種の傾向が見られます。
そしてそれは、携わっている仕事や職場など、環境によって1つの方向に固まってしまうものです。
よりフレキシブルな思考をするためにも、他者の考え方を知ることが大切です。
以下では理系的な考え方を持ったプログラマーの脳を紹介しています。
プログラマーの考え方において「自動化」というワードは外せません。彼らが普段の業務で作っている「プログラム」とは、用途こそ違えど、さまざまな作業を自動で行ってくれるものだという点で共通しているからです。
そして、「自動化」という目的にたいして使われるアプローチが「システム化」です。たとえば、「朝食はどうやって準備していますか?」という問いにたいして、プログラマーはとても詳細に答えられます。
「まず台所に立ったら、ヤカンを取り出して水を入れて火に掛ける。その後はパンにバターを塗ってオーブンに入れる。その間に卵を取り出して」など。
彼らの頭の中には、「この手順で作業するのがもっとも効率が良い」というマニュアルのようなものが作られています。これが「システム」です。
このようなシステムを作ること、もしくはそれをプログラムに書き出して自動化することは、けっして簡単なことではありません。しかし、1度作ってしまえば、その後の作業は格段に楽。まさに「楽をするために苦労する」ものです。
上記の食事の例にもあるとおり、プログラマーの思考は日常のあらゆる物事に応用されています。たとえば、「ページがバラバラになった書類をどのように並び替えるか?」という問題があります。
もっとも直感的な方法は、「上にある2枚のページを見比べて並び替え。次に上3枚を見比べて並び替え」というもの。実は、これはアルゴルズムの世界では「挿入ソート」と呼ばれており、簡単な反面効率がそこまで良くないという特長があります。
彼らは十数個にもなるソート法の中から、最適なものを選択して活用します。「クイックソート」「ヒープソート」「マージソート」など。これらは理系でなくてもだいたいの動きは理解できるため、調べてみると面白いかもしれません。
とにかくプログラマーはこのようなノウハウを日常でも応用しています。彼らの本棚やデスクトップは、美しさを感じるほど整頓されていることもあります。
たとえばドラマを見ているだけでも、「今主人公が乗っていた車は」「この人物がパソコンに表示させていたソフトは」など細かなところに目が行くなど、とにかく技術に目がありません。
人によっては「職業病なだけ」「感性がズレてる」などと言いますが、このような強い興味関心があるからこそ、常に新鮮な知識を取り入れて高い技術力をキープできているわけです。
プログラマーはあらゆる物事をシステマチックに考えており、技術にたいする関心も相当なものです。そのため、ただのルーチンワークでも徹底的に効率化されており、高いパフォーマンスを発揮していることが多く見られます。