「共通言語」がないときのコミュニケーション能力が欲しい

インターン生が結構な頻度で来ていて,俺も教える機会が増えてきた.
そんな中で,なんでコミュニケーション能力を求めるのか,なんとなくわかるなぁーという実感があったので,そろそろ書いておく.

初めに言っておくが,題材にしているコミュニケーション能力というのは,マニュアル化されるようなタイプのものではない.
相手と仲良くなるとか,円滑に話を進める,というような類いのものとは違う.
コミュニケーション能力とはなんであろうか,という話は以下の記事が非常に勉強になる.
http://blog.tatsuru.com/2013/12/29_1149.php

聞いて欲しいけど,聞いてほしくない

教えるという行為は,一方的に話しかける形になりがちではあるのだけれど,できるだけこれは避けたいと思っている.
なぜなら,俺がつまんないなぁーと思う授業そのものだったから.
一方的に話をしてくる場合,相当興味のある話か,もしくは話者が相当な腕前でなければ面白く聞くことができない.


昔,国語の授業で(理系なのが好きな俺は当然あまり興味はない),A4の紙ペラ一枚配って30分間面白い話ができる先生に会ったことがある.
国語の授業にはそれほど興味はないのだが,あまりも話が面白いので寝たことは一度もない.

で,そんな経験を考えても,俺はそんなに話は上手くないし,面白い話もできない.
だからこういう無茶なことは初めから仕掛けるべきではない.

せめてA4の紙一枚で40人を笑わせ続けるだけの話ができるようになってから挑戦する領域だ.




そうすると,やっぱり自分でやってもらって,そこから無理やり広げていくしかない.
入り口はなんでもいいのだけれど,とりあえず自分でやって,無理やり内側に入れるしかない.


となると,やはり質問というのが重要になってくる.
だけど,なんでもかんでも聞かれても,それはそれで俺としては困ることも多々ある.
何も聞かれないで,何も進まないのは大変よろしくないのだけれど,すべてを聞いてもらっても,決してすべては解決しない.


そもそも話は通じないのが前提

自分がプログラマだからというのは大きくて,もちろん言語を扱う人間なので,こいつを他人に教えるというのが,なかなかに大変なのは理解している.

ただ,それに限らず,学ぶというのは基本的に未知であるものを知る喜び,その欲求に従うものである.
だから,当然のことながら学ぶ前の段階では,一切話が通じないのが当たり前なのだ.
すべてはこの「話が通じない相手」というところからスタートする.



プログラムというのは,コンピュータに対して何をさせるかという命令でしかない.
だけれど,そこには文法もあるし,多数の言語が存在する.
さらに,そこで運用環境や個々の開発環境が重なり合ってくる.

そんな上で,どちらでも上手く動くようなものを作り上げるというのが,どれだけ困難なことなのか……という闇を知りたい方は,StackOverflowの記事を片っ端から読んでみるといいと思う.


重要なことは,コンピュータというのは何ができて,それをどのように組み合わせれば,己がイメージしている処理をやってくれるのか,というのを頭の中で妄想できるようになることである.

それさえわかってしまえば,あとは各言語ごとの文法や,その言語がどの程度細かい指定をすることができるのか,という「仕様」だけ理解すれば良い(それも果てしなく膨大なのだが).

だけど,これを日本語にして頭から尻尾まで説明するには,それこそ大学4年間分くらいの授業をして然るべき量になる.



相手の懐にうまく斬り込む

効率よく,とか手っ取り早くというのは,最初から無茶な話なのだ.
「話が通じない相手」と「頭から理解するには膨大すぎる量」の事柄を,無理やり学ぶのだ.

先の内田樹の話ではないが,それこそ「通じないもの」を「無理にでも通じさせる」くらいのネゴをしないと始まらない.

ただ,前述したようにすべてを聞きにいくのは不可能であろう.
だから,「こうなんじゃなかろうか」とか「ここはどうなっているのか」,「なぜこれではだめなのか」というように,自分から斬りかからないといけない.

「できないので教えて欲しい」では,ただのコミュニケーションの不調か,「頭から全部説明するから4年間よこせ」という話にしかならない.
ましてや「エラーが出たんですけど」に至っては,ただの報告である.
「ああそうか」で済ませてもいいかなって,俺は思っているよ.


このあたりに,相手の機嫌を損ねない言葉遣いで(普通の日本語で良いんだけど),うまく斬り込んでくる人を見ると「こいつ教わるの上手いな」と実感させられる.


ちなみに,斬り掛かるという表現をあえてしたのは,そのくらいの鋭さを持っていた方がいい,ということだ.
できるだけ具体的に,もはや斬れるレベルで鋭く聴いた方が,クリティカルな答えを引き出しやすい.
この辺,ぬるい聞き方をしている限り,答える側もぬるい答えしかできない.


やり方を覚えるのではなく,考え方を体得してほしい

あえて,このように相手に質問させたいのも,基本的には応用の効かないスキルを身につけるのは最小限にするべきだと,俺が思っているからである.

個々の,例えばRubyでのeachの書き方だとか,if文の書き方だとか,そういったものや,「キャッシュの処理の仕方」みたいなものは,経験しておくのは非常にいいことなのだが,やり方を覚えても特に意味はない.

やり方というのは,つまり手続きのことだ.
そんなものは,ぐぐれば出てくる.
知ったその日に,自分のブログに書いておけばそれで十二分に機能する.


そうではなくて,if文というのは,そもそも何をしているもので,なんでイコールが一つじゃダメなのか,ということを考えて欲しいのだ.

なんで文字列という型が存在するのか.
そしてその文字列は,なぜクォーテーションを付けなければならないのか.


こういう考え方は,言語が何であれ必要になってくる.
そして,ここを理解しておけば,基本的にどんな言語になっても,仕様を見るだけで合わせられる.



こういう考え方をしている時点で,その人は我々との共通言語を持つことができる.
共通言語を持つだけで,世界は驚くほど変わって見える.

たとえ日常生活であっても,「この映像はどういった処理でもってレンダリングされているのか」,「アイサイトとはどのような画像処理をしているのか」,「どういった処理をかませればOculusでミクと添い寝できるのか」,ということを気にかけて,「こんな感じなんじゃないだろうかー」と妄想していくだけで,世界は驚くほどいろんな構成をしているもので満ちあふれている.



たったひとつ,我々と共通言語を持つような考え方をするだけで,見えるものは変わる.
いや,おそらくこれは俺の専門以外でも,すべてにおいてそういうものなのだ.
だからこそ,大学というのは教養も教えれば専門も教える.
成熟した公民を育てるためには,とりあえずそういったことをしていく以外にいい方法が思いついていないのが,今の高等教育というものなのだ.



自分の変質を実感する


学びとは,すべてにおいてこのような変質を遂げるようなものである.

学ぶという行為は,そもそも主体を変質させることが本質に含まれている.
そのため,「役に立つ」とか「損」だとか「得」だとかいう問いかけは,すべて無意味である.

損得勘定とは,損失を被ったり得を得たりする主体が変質しないことを前提にしている.

たとえば,明日から無期限で無人島に一人置き去りにされることがわかっている人間が,今この段階で日本円をどれだけ手に入れたとしても,まぁ缶詰を死ぬほど買いあさることくらいしかできなく,明日以降のことを考えればたいした利益をもたらさない.

だから,「これを学ぶことにより自分は得をする」という勘定ができるようなことは,そもそも学びではないのだ.
そこに己が変質しないことが,前提として含まれてしまっている.
学びというのは,それによって自分自身が変質し,上の例で言うなら無人島で一人で生きて行ける人間になるようなものである.

それは,学び始める前には,予測できない己の変質をなし得ている.
そういうものが学びであり,この楽しさを体感することによって,ちょっとは人生マシになるじゃないかな,というのが高等教育だ.


くれぐれも,知識的に豊富になるとか,情報量的に豊かになるというだけの話ではない.
それは,あくまで頭で理解する情報であり,学びというのは最終的には運動と同じ部類のもので,自ら体験し,脳が体感する以外に体得する方法はない.







長くなってしまった.
せっかく「知らないことを学びたい」とか「新しいことをやってみたい」というような人たちが来きてくれるのだから,そんなことを(頭で理解するのではなく)体感してくれたらうれしいなぁー,と思いながらインターン生を見守っています.


って,こんなことを言ってる時点で,俺があまりにも社会人っぽくないし,あまりにもビジネスライクではないのがバレバレなので,どうかとも思うのですが.