「プログラミング」とは、コンピュータだけに関連して語られるものではない(写真はイメージです) Photo:PIXTA |
もの言わぬ機械とコミュニケーションをとる手段「プログラミング」。「それは誰もが学ぶべき教養となった」というメッセージを掲げたロングセラーが、『教養としてのプログラミング講座』(中公新書ラクレ)だ。刊行から6年を経て増補版が刊行される今年、実際にプログラミングは小中学校で必修化されることとなった。ところでプログラミングとはそもそも何か? 著者の清水亮氏は「実は、私たちの回りにあふれている」と指摘する――。
プログラミングとは何だろう
コンピュータとは関係なく挙げてみよう
ここで改めて、「プログラミング」とは何のことを指すのでしょうか?
単純な言葉の意味としては、当然「プログラムを組む」ということを指しますよね。ではそもそも、ここでいう「プログラム」とは何を指すのでしょうか?
実は、このことを一言で定義するのは非常に難しいのです。
身近な例で考えてみましょう。まず、コンピュータに関係しない「プログラム」と呼ばれるものを、皆さんはいくつ挙げることができるでしょうか。
全く思いつかない? いやいや、よく探せばあなたの周りにも結構あるはず。
▪運動会のプログラム
▪入学式・卒業式のプログラム
▪発表会のプログラム
▪結婚式の式次第
▪電車やバスの時刻表
▪教育に関する計画(教育プログラム)
▪テレビ番組(英語で「TV program」)
▪壮大な計画(アポロ計画を英語でいうと「Apollo program」)
どうでしょう。そういわれれば、「プログラム」という表現に合うものが、日常生活のあちらこちらに点在していることに改めて気付かされるのではないでしょうか。
目覚まし時計にも見える
プログラムに共通する特徴
では、こういったプログラムに共通する特徴を考えてみると……。
▪順序立てられている
▪予め作られている
▪何らかのタイミングでとるべき行動が決められている
すぐに気が付くのはこういった点でしょうか。ここに、プログラムを定義するための秘密が隠されていそうですね。
そこで実際にあなたがプログラムを組むところを想像し、分析してみましょう。
誰しも毎日行うプログラム、そう、たとえば「目覚まし時計」の設定なんかがちょうどいいかもしれません。
多くの方は「果たして、そんなことがプログラミングと呼べるの?」と思われることでしょう。しかし、携帯電話などに搭載されている、日本語予測変換システムの開発に携った慶應義塾大学の増井俊之教授も、「これこそが分かりやすいプログラミングの好例」だといっています。
では明日、朝6時に起きなければならないとして目覚まし時計を設定する手順を想像し、実際に書き起こしてみてください。
プログラム的に書くならば、「表01」のようになるかもしれません。
起きる時間を設定し、鳴る音について設定し、止め方を設定する。たったそれだけのことですが、わざわざ書き起こすと、何となく難しく感じられますよね。
しかし、目覚まし時計の設定がプログラミングだとしたら、その定義とはいったい何なのか?
ファストフード店にもあるプログラム
どういう場面でどう対応するか
今度はファストフード店のレジを想定して、接客マニュアルをプログラミングしてみましょう。
レジ業務の一部を抜き出して、プログラム的に書くと、きっと「表02」のようになるのではないでしょうか。本当のマニュアルなら、お辞儀の角度からトラブル時の対応まで、さらに具体的に細かく、想定される状況に応じた手順が書かれているとは思いますが、おおよそはこのようなニュアンスで定められているはずです。
こうしたマニュアル、これこそが実はプログラムそのもの。そしてこのように、「どういったシチュエーションで、どう対応するかを書き記す」ことこそがプログラミングなのです。
レジ接客マニュアルは各手順での指示に具体性があるぶん、運動会のプログラムよりもさらにコンピュータのプログラムに近いかもしれません。
そしてそういった手順やルールをプログラムと呼ぶのであれば、私たちは想像しているよりずっと多くのプログラムに囲まれて、普段から暮らしているといえるのではないでしょうか。
ですので、もし「プログラムとは何か」と尋ねられ、一言で答えなければならないならば、まずは「手順を正確に記した文章」とでも返すのがふさわしいのかもしれませんね。
古代ギリシャは崇高な行為
プログラミングの起源とは
ところで、プログラムという言葉の由来をご存じでしょうか。本職のプログラマーであっても、さすがにそこまでは知らないと思います。
実はプログラムという言葉の語源、これはギリシャ語であるといわれています。「プログランマ」と発音し、「公に書かれたもの」というのがその意味。
多くの方が誤解しているのですが、近しい間柄にあるように感じるプログラムとコンピュータ、これらはもともと、完全に切り離された概念でした。法令や宗教的儀式、哲学、その他、人々をコントロールするためのルールこそが、かつては「プログラム」と呼ばれていたのです。
古代ギリシャでプログラムを定めることができたのは、ルールを決定する側に立つ人々。当然、法律や宗教を規定できる特権階級者であり、おそらくプログラムを作るということ自体、非常に崇高な行為と見なされていたのではないでしょうか。
そして時代が進み、現在の私たちはコンピュータという機械を手に入れました。
コンピュータは、人間の何億倍ものスピードで情報処理をしてくれる、優秀なパートナー。そうしたパートナーを操るということと、多数の人間を集めた組織を運営することは本質的には同じことなのです。
そのため、意外なように思われるかもしれませんが、プログラミングとは、いろいろな能力を持った人たちが知恵と力を合わせる、最も簡単かつ強力な方法ともいえます。そしてプログラミングを学ぶということは、力を合わせる方法、チームワークを高める方法を学ぶことだと言い換えることができます。
たとえば、素晴らしいアイデアを思いつく能力と巨大組織を作り上げる能力。普通に考えれば、これらは全く別のものに思えます。映画監督の宮崎駿さんが、卓越したクリエイターであることは疑う余地のないことですが、スタジオジブリの商業面を支えているのはプロデューサーで取締役の鈴木敏夫さんです。そしてこうした関係性は、多くの分野で不変でした。
ところがプログラマーだけは、職人的な能力を持った人がそのまま成長し、巨大な組織を動かして、社会に大きな影響を与えることができます。実際、21世紀になって大きな社会的変革を成し遂げた Facebook のマーク・ザッカーバーグ、Apple のスティーブ・ジョブズ、そして Amazon のジェフ・ベゾスらはみなプログラマー出身でした。
組織や仕事の課題を見直すツールに
プログラミングは「人類の叡智」である
最近までプログラミングはそれだけで専門的に研究されることはなく、さまざまな人々がさまざまな言葉で、たとえば組織論、経営論、経済学、マーケティング論、戦略論、戦争論といった理論のもとで、バラバラに論じられていました。
しかし、コンピュータの利用が一般家庭にまで広がり、同時にプログラミングという作業も普及し、進化・発達してくると、これまでとは反対の様相を呈することになります。
プログラミングの価値が認識され、多くの領域でその考え方が応用できることが分かったため、組織や仕事に関するさまざまな問題を、プログラミング的な視点で捉え直すことが求められるようになってきたのです。
今やプログラミングを理解するということは、「世の中の仕組み」を理解することだと言い換えてもいいかもしれません。
先ほど「プログラムとは何か」という質問に、「手順を正確に記した文章」だと答え、プログラミングは「それを書き記すこと」だと定義しました。ただし、筆者は本書において、プログラミングをこうも定義したいと思います。
プログラミングとは「人類の叡智」である、と。
※本稿は、清水亮『増補版 教養としてのプログラミング講座』(中公新書ラクレ)の一部を再編集したものです
※本記事はダイヤモンド・オンラインからの転載です。転載元はこちら
"ヒント" - Google ニュース
May 25, 2020 at 04:00AM
https://ift.tt/3gcoxOC
身の回りにヒントがいっぱい!仕事を劇的に変える「プログラミング思考」 - ASCII.jp
"ヒント" - Google ニュース
https://ift.tt/373bABn
Shoes Man Tutorial
Pos News Update
Meme Update
Korean Entertainment News
Japan News Update
No comments:
Post a Comment