ここから本文です

「料理の段取り」がプログラミングに役立つ理由

5月23日(木)5時50分配信 東洋経済オンライン

アルゴリズムやプログラミングと聞くと難しそうに感じますが、皆、意識・無意識のうちに使っているのです(写真:Fast&Slow/PIXTA)
拡大写真
アルゴリズムやプログラミングと聞くと難しそうに感じますが、皆、意識・無意識のうちに使っているのです(写真:Fast&Slow/PIXTA)
2020年にプログラミング教育が小学校で必修化され、ビジネスの世界でも、プログラミングが一大ブームである。コンピューター・プログラムを動かす原理は、「一連の処理手順=アルゴリズム」である。
そんななか、マサチューセッツ工科大学、アップルなど、ITの最前線で活躍してきた若きエンジニアが、文科系でもわかるよう、アルゴリズムの考え方を日々の身近な事例を用いて平易に解説するというユニークな本を刊行し、話題となっている。この春、日本で『爆速! アルゴリズム』というタイトルで翻訳出版された。
今回は、社会人の初心者向けにプログラミング教室を運営し、『爆速! アルゴリズム』を監訳・解説した高橋与志氏に、同書とは異なる角度からアルゴリズムの初歩を解説してもらった。アルゴリズムは、私たちの生活や仕事にも役立つ思考法であることがおわかりいただけるだろう。

■プログラミングが気になる

 「これからは小学生だってプログラミングを学校で勉強するらしい。ビジネスマンたる自分もプログラミングをやらないといけないのでは?  よくわからないけれど……」
 こんなふうに軽い「プログラミング強迫観念」に駆られている人も最近増えているような気がします。それもそのはず、毎日テレビではAIを取り上げた番組をやっているし、新聞や雑誌にブロックチェーンやIoTに関する記事が載らない日はありません。

 加えて、子ども向けのプログラミング教室が人気ですよね。皆さんもお子さんの将来のために、「とりあえずやっておきなさい!」みたいなノリで通わせていらっしゃる方や、検討されている方も多いのではないでしょうか。
 そうなると、親としても、プログラミングを少しくらいかじっておいたほうが良いような気もしてくるわけで、会社でも最近機械学習の仕組みで顧客情報を分析したりするとか言っていたし。でも、……。

 「自分が今からプログラミングやって、何になるの?」

 そうなのです!  そのことについて、今日は皆さんと一緒に考えてみたいと思います。

 もともとプログラミングとは、本来は人間がやるべき仕事を、なんとかして楽にできないか、という人間本性の怠け心が出発点である、と超・面倒くさがり屋の私は勝手に思っています。
 人間は皆、実は仕事が嫌いで、やらなくて済むならもう本当にやりたくない。スキあらば怠けたい、ラクして暮らしたいという動物なのだ、という説を私は信じています(休日に書いているこの原稿も、いっそAIが書いてくれたら、自分はネットフリックス三昧できるのに……)。

・繰り返し同じことをやるなんて、耐えられない! 
・どうせやるなら短い時間で終わらせたい! 
・次の仕事にもこのやり方を適用できるようにしたい! 
 こんな怠け者たちの「ラクしたい!」という強い欲求が、プログラミングを発展させたというのは、おそらく嘘ではないだろうと思います。
■コストコに買い物に行く

 このような気質や動機は、皆さんのようなビジネスパーソンも主婦の方々も持っていらっしゃるんですよね。ちょっと小話をしましょう。

 あなたは週末に家にゲストを招いて、ちょっとしたホームパーティーを開いて、ローストビーフを振る舞うことになりました。その準備のため奥さんとともに、ちょっと遠出して巨大スーパーのコストコまで買い物に出かける予定です。

 あなたは、たまに奥さんに連れられてこの巨大スーパーに行くのですが、毎回広いフロアをあっちへ行ったり、こっちへ行ったりして、調味料やパンなどを探すのにいつも苦労しています。それも、大きくて重いカートを器用に押しながらです。ただでさえ疲れている週末に足を棒にして買い物というか、食材探しに付き合わされて、辟易していました。
 そこで今回、一計を案じ、奥さんにこのように高らかに宣言します。

 「今日の買い物はオレが仕切るよ!  今までの半分以下の時間で済ませよう。このリストを埋めてくれさえすればいいから」

 奥さんに以下のリストを渡して、埋めるように言いました。

 奥さんが埋めたこのリストを手に、あなたは、コストコに到着。まず入口でフロアマップを受け取り、どのように売り場を回ったら最短距離で済むか(できるだけ一筆書きのように、同じ通路を2回通らないように)事前にシミュレーションしたうえで、カートを手にして買い物を始めたのです。
 何を、どこで、何個買うか、どの順番で回るかがわかっていたので、当然かかった時間も短く、楽な気持ちで買い物できました。足も疲れずに済んだだけでなく、奥さんからは「あなた、すごいわ!」と久々に見直されたのでした。

■料理の段取りもアルゴリズム

 今度は、奥さんが負けじと料理の段取りに張り切ります。

 「さあ、ホームパーティーの準備に取りかかるわよ!  あなたに対抗して料理の工程と分担表を作ってみたわ」

 「なんと、これはすごい!」と驚くあなたに、奥さんはにっこり微笑みながら、「優先順位の最も高い作業は、待ち時間の長いプロセス。2番目は次の工程にリンクしているプロセス、3番目は作業時間自体が長いプロセス。そして最も優先順位が低い、つまり、お客様がいらっしゃる直前にすべき作業は、時間が経つと味が大きく落ちるメニューのプロセス」としたり顔で言うのでした。
 そして、ホームパーティー当日は、余裕を持って楽しみながら行うことができたので、ゲストも大満足。そして、あなたと奥さんの夫婦仲も円満に! ……なったかどうかはさて置き、 この買い物と料理の例から、日常生活や家事においても、

・早く効率良く終わらせたい
・次回にも役立つ手法を作りたい
 という気持ちが働いていることをご理解いただけましたでしょうか。

 こういった気持ちから作られた「処理の手順」のことを「アルゴリズム」と呼びます。そして、プログラミングの世界では、どのような場合でも適用できるよう、このアルゴリズムをもっと数学的に突き詰めて、一般化していくのです(『爆速!  アルゴリズム』第12章の「スーパーマーケットを効率良く回る」では、多次元配列とヒープという概念を使って考え方を説明しています)。
 数学的にどこまで処理の手順(アルゴリズム)を突き詰めていくかは別として、やっていることとしては、プログラマーもあなたも、「早く、効率のよい手順」、つまり、アルゴリズムを作ったという点において全く同じである、といってよいでしょう。

 そしてこのことは、家事だけでなく、会社での仕事の進め方から出勤時の通り道、仕事の段取りに至るまで、生活全般、いや人生全般において当てはまるといっても過言ではありません。これらすべてにおいてアルゴリズム(プログラミング的思考)を皆、意識・無意識のうちに使っているわけです。
 次に、アルゴリズムと判断基準についてお話します。 先のコストコでの買い物の例で、「自分はもっとゆっくり、いろいろなものを見て楽しみながら買い物したい派だ」と思った方も多いはず。先ほどは「早さ・効率の良さ」を基準にアルゴリズムを考えたわけですが、「楽しさ」や「多くの商品を見る」という別の基準で考えてもいいでしょう。他にも、

・値段の安さ
・新しいことを体験できる(自分のスキルアップになる)
・親切な店員さんがいる
 など、さまざまな基準が考えられます。 それらの中から特定の基準を選んで、処理の手順(アルゴリズム)を作っていくことができるのです。

 自分の中に何らかの基準を持ってロジカルな判断をしている人は、プログラミング的思考を持った、一本芯が通っている大人、と見られるように思います。

■日常生活とITの世界のアルゴリズムを行き来する

 アルゴリズムというと難しく感じますが(実際、アルゴリズムについて調べると、ソートや探索など、聞き慣れない言葉のオンパレードです)、今まで見てきたように、日常生活やビジネス上の判断基準をいかに作るか、ということと同じです。
 ビジネスの世界でアルゴリズムに通じるということは、さまざまなジャッジをする基準を持っている、ということになります。たとえば、投資会社が投資先からの撤退基準をどのように作るか、を考えるとよいでしょう。また、基準を持っている経営者のほうが、よりドライで効果的に意志決定ができます。

 コンピューターの世界のアルゴリズムの基準の多くは、実行速度やメモリの消費容量ですが、日常生活の基準は実に多様です。

 日常生活のアルゴリズムとコンピューターの世界のアルゴリズムを相互に行き来して、お互いのアルゴリズムに落とし込むことができるようになることが重要です。処理の基準(アルゴリズム)がしっかりあるものは自動化できるので、あなたは、それ以外の「人間にしかできない仕事」に集中すべきです。
 これからの時代、プログラミング自体はできなくても、プログラミングの考え方を学ぶことで、IT社会に参加したり、価値を提供することができるようになります。これがプログラミングやアルゴリズムを学ぶ目的の1つでもあり、皆さんの貴重な過去のスキルや経験を、一般化した形に変えて社会に提供し続けていくための方法ではないでしょうか。
高橋 与志 :「中高年のためのプログラミング教室」TechGardenSchool代表

最終更新:5月23日(木)5時50分

東洋経済オンライン

 

【あわせて読みたい】

【PR】Yahoo!ファイナンスからのお知らせ

Yahoo!ファイナンスの特集

平均年収ランキング

ヘッドライン