なぜデキる人の話はわかりやすいのか? 難しい話を造語で伝える概念リテラシー
礒部正幸氏はソフトウェア会社に就職した際、きれいに階層化されて設計されたプログラムを書く先輩に出会います。その先輩はひとつひとつの部品にいい名前をつけており、普段の生活習慣や仕事の中でコンピューターと関係ないところで出会うような概念をうまく使っていました。礒部氏はそのようにたくさんの概念を使いこなし、仕事や生活に生かすことを「概念リテラシー」と名付けます。彼はものごとをきれいに整理して、人に伝える一番の方法は、名前をつけたり造語を作ることだと語りました。(TEDxTitech2013 より)
- スピーカー
- アドファイブ株式会社 代表取締役CEO 礒部正幸 氏
複数のものごとを把握する概念リテラシー
礒部正幸氏:プレゼンテーションを始める前に、今日高校生のみなさんがいらっしゃってるということなんですが、将来起業したい方っていらっしゃいますか?
(会場挙手)
あ、いらっしゃいました。それから、ソフトウェア開発者になりたい方はいらっしゃいますか? ITはこれからもっともっと伸びるのでソフトウェア開発者はいい仕事だと思います。
起業したり、ソフトウェア開発をしていく上で大事なことは、新しい仕組みを考えた時に人にうまく説明するということと、あと大きなソフトウェアをつくるときには、それなりに組み立てるための考え方というのが必要になります。いまから私はそれをやる上での武器になる習慣をお話したいと思います。
概念リテラシーという話をしたいと思います。概念というのは複数のものごとを把握するという、そういう方法ですね。リテラシーというのは、何かものごとに習熟してそれを使いこなす能力のことを言います。リテラシーは、無意識にそれを使いこなせるようになる、体で覚えるというニュアンスがあります。
私たちが何か新しいことに取り組むとき、例えばスキーとか、車の運転とか、調理とか。そういうときに私たちは、基本をまず習得して、それからお手本から学ぶということをやります。この2つのプロセスはひと言でいうとリテラシーという言葉で置き換えることができます。
例えばスキーのリテラシーというのは、滑り方の基本を覚えてバランス感覚を体に身につける。運転だと、ハンドル・アクセル・ブレーキの操作を覚えたり、方向指示器を出すタイミングや車両感覚を身につける。
調理だと、煮る・焼くという調理器具の使い方、それから調味料の使い方を覚えてレシピを見て実際に作ってみたり、先輩コックさんの料理の仕方を見て学びます。
リテラシーの土台がそうやってできていくと、スキーだったら自由に滑れるようになったり、車の運転なら行きたいところにドライブできるようになったり、調理ならおいしい手作り料理を作ることができるようになります。こうやってやりたいことが実現するわけですね。
車の運転や調理だと、免許というものがあります。運転免許や調理師免許というものです。けれども、ITの世界での起業やソフトウェア開発の世界には、資格はありますが免許というものは特にないです。なので、基本を身につけてお手本から学ぶということはそんなに体系化されていないです。
一番大事なのは概念を自由に操れること
「これはどうしたらいいんだろう?」と私は考えました。いまでは一番大事なことは概念を自在に操れることではないかと考えています。どうしてそういうふうになったかというのを、私の経験を交えてお話したいと思います。
概念のリテラシーを身につけることによって私の人生は変わったんです。小さい頃、私はこのおもちゃでよく遊んでいました。ソフトブロックというおもちゃです。みなさんもよくご存知だと思います。これはすごくて、動物もつくれるし、鉄砲をつくったりビルを建てたり、いろんなことができるんです。
これで遊ぶときは、子どもはまず個々のピースの使い方を覚えます。いきなり何かものをつくるということはしないんですが、ピースの使い方を覚えてひと通りのピースの使い方がわかると、自分の頭のなかでいろんなイメージをして何かをつくる。そういうプロセスを踏みます。
今日私はリテラシーというお話をしていますが、このソフトブロックのおもちゃは、そのリテラシーということを特に意識しなくてもそういったことが自然にできるようにデザインされています。すごくいいおもちゃだと思います。
私はこういう遊びも子どもの頃にしました。これはコーヒーミルです。これを見ていたら、私は鉛筆削りを頭のなかに思い描きまして、小さくなった鉛筆をガラガラガラとやりたくなっちゃいました。それで、実際にそれをやりました。
すごく楽しかったんですが、両親にはものすごく怒られました。もちろん、それっきりそのコーヒーミルは使えなくなってしまったんですが。こういうことはやっちゃだめです。
やっちゃだめなんですけれども、頭のなかでイメージすることは自由なんです。このコーヒーミルも鉛筆削りも私たちはよく知っているものなので、よく知っているものというのは自由に頭のなかでイメージすることができるんです。全然関係ないものでも結びつけることができます。
生活習慣や仕事のなかでコンピューターの概念を使う
高校生になってパソコンに出会いました。パソコンはプログラミング言語、C言語やBASICがありますが、これを使うと自由にソフトウェアをつくれるということを知って私は熱中しました。ゲームをつくったりしました。
楽しかったんですが、小さい頃に遊んだソフトブロックのおもちゃとプログラミングの違い、一番大きな違いは、プログラミングはあらかじめ与えられる部品以上に、自分で部品をつくり出したり、部品と部品を組み合わせて新しい部品をつくったり、階層化したりということが自由にできるんです。
でも、部品の数がどんどんと増えていくと、私はそれを把握できなくなってしまいました。なので、理想的にはたくさんの機能を持った良いソフトウェアをつくりたかったんですけれども、現実はソフトブロックのおもちゃでつくれるような小さなソフトウェアしかつくることができませんでした。
でもこうやって部品と部品を組み合わせて新しいものつくるのが私は好きなので、大学で情報工学を学びました。でも大学でも、大きなソフトウェアをつくるためにたくさんの部品を一度に把握する、そしてさっきの鉛筆削りのように頭のなかで自由に組み合わせる。
そういうことをやる方法については私は見つけることができませんでした。私にとってプログラムは、必要な要素の数がすごく多かったのです。
私は会社に入ってソフトウェア開発の現場に入りました。そこで私の課題の答えを見つけることができたのです。先輩のうちの一人が書くプログラムは、ものすごくきれいに階層化されて、しかも大規模に設計されていました。
どうやったらそういうふうにできるんだろうと考えて、よく吟味しました。その先輩のプログラムは一つひとつの部品にいい名前を付けていました。私たちが普段生活習慣や仕事のなかでコンピューターと関係ないところで出会うような概念をうまく使っていました。
いい名前をつけるということがすごく大事だと私は気付きました。例を挙げると、“isAssignedResponsibility”という関数。関数というのはソフトウェアの部品ですけれども、“Responsibility”というのはコンピューターと離れてもよく使う言葉です。こういうのを名前で使います。
それから、“Notification”。これは例えば私たちの生活では、誰かに何か仕事を頼んだときに「終わったら教えてね」とか「何か変わったことがあったら言ってね」とお願いだけして自分の仕事に戻ったりします。
そういうふうに相手から何かあったら教えてくれるように、ということをコンピューターの世界では“Notification”という言葉をよく使います。
こういう概念をうまく使うということが、要素がたくさんあるときにそれを把握するコツだということに私は気付きました。
概念を使いこなせるともっといいことがあります。例えば、“copyOnlyTasksNeededTxecution”。ちょっと長いですけど。必ず実行しなければ先に進めないタスク・仕事だけをコピーして取ってくるという部品をつくりたいとします。これ長いんですけれども、こういう置き換えることもできます。“extractEssentialTasks”。必要不可欠なタスクだけ抽出する、と。
これ上と下で同じ意味を言ってるんですけれども、“copyOnly”、何かだけをコピーするというのは、「抽出する」という概念を使うとひと言で言い表せます。
それから「必ず実行しなければいけない」というのは「Essential=必要不可欠」という概念で置き換えることができます。こういうふうに、複数の言葉を組み合わせるということをしなくても、概念を使うとシンプルに言えるんです。これがすごく大事です。
上の名前を見たときに、コンピューターの世界の専門用語で説明されている気がするんですけど、下は“extract”とか“Essential”というのは日常生活で私たちがよく使う概念なので身近に感じられるんです。そうすると大きなプログラムになっても私は把握できる。そういうことに気付きました。
造語をつくることで人に伝えやすくなる
「じゃあどうやったら概念をいろいろ見つけられるだろう」と考えたときに、リテラシーという考え方が大事だと思いました。リテラシーというのは体で覚えるということですね。根本の原理を忘れるくらい、体で、無意識で使えるようになりたいと思いました。
私は日々新しい言葉に出会ったら必ず辞書で意味を引いたりWikipediaで調べます。Wikipediaがすごくいいのは、新しい言葉を引いて関連する言葉をどんどんクリックで辿ったりできるところです。
会社に入ると議事録係というのを若手がよくやるんですが、会議でディスカッションされた内容を文章に起こしてみんなにメールする。それも概念を使いこなす訓練になると思ったので積極的にやりました。
そういうふうにして、日々の生活のなかで概念を学んでそれを使うという練習をしました。1、2年して私はようやく階層構造をした大きなプログラムの設計ができるようになりました。めでたく。
(会場拍手)
ありがとうございます(笑)。いまソフトウェア開発の話をしましたが、概念のリテラシーを身につけることはソフトウェア開発以外にも役に立つと思っています。
どういうふうに役に立つかというと、メタファーをくり出すことができるということに役に立ちます。メタファーというのは、一見遠いもの同士をつなげて例えて説明するという。遠いもの同士を自由な発想でつなぎます。
概念を体で覚えていれば、自然にそういうメタファーが出てくるというふうに思います。例えば新しい仕組みを考えた、それを誰かに伝えたいというときに、すごくいろいろな概念を知っていれば、相手のバックグラウンドを推定して相手が知っていそうな概念に置き換えてその仕組みを説明する、と。
ということで、伝わりやすくなります。
今日お話したかったのは、日々の生活で概念を覚えて、それを身につけて使いこなすようになろうということなんですけれども、それを伝えるのに「そうだ、リテラシーという言葉を使おう」と思いました。リテラシーというのもひとつの概念だと思います。
もしリテラシーという概念を私が知らなかったら、こういう形でプレゼンをまとめることはできなかったと思います。でもリテラシーという言葉を使うことによって「概念リテラシー」という造語をつくり出すことができました。概念リテラシーというのが、メタファーの例になります。
こういう造語をつくって新しい仕組みを人に伝えるということがすごく大事だと思います。そのためにもやっぱり概念のリテラシーを身につけるということが大事だと思っているので、概念リテラシーを意識した生活をおすすめします。
みなさんもぜひいかがでしょうか。ご清聴ありがとうございました。