FLAGS

MENU

NOTICE

2006年6月27日火曜日

何故プログラマの言う事はわけがわからないのか (mixi05-u459989-200606271913)

ミクシ内で書かれた旧おかあつ日記を紹介します。
何故プログラマの言う事はわけがわからないのか
2006年06月27日19:13
何故プログラマの言う事はわけがわからないのか。


プログラマの言う事は訳がわからないとよく言われます。 事実、私もよく言われてしまいます。 自分がやっている事をわかりやすくすることに、かなり努力しているほうだと思うのですが...。 それでもよく言われてしまいます。

勿論、私も、人に説明する時に相手が知らないことをいきなり話してしまうのは失礼な事だと考えています。 何の断りもなく専門用語を持ち出すというのは絶対に避けます。 専門性に踏み込まないように、どうしても理解する必要のある部分だけを、できるだけわかりやすく、具体例やたとえ話を使いながら、順を追ってひとつひとつ説明していきます。

しかし、この様にわかりやすさを重視した説明をすると、「説明が長い。 もうちょっとかいつまんで要点を教えてくれないか。」という反応が返ってくる事があります。

ところが、要点をかいつまんで説明してしまうと、残念ながら、ほとんどの場合、理解を得る事ができず失敗に終わります。 要点をかいつまんだ短い説明では、どうしてもまだ説明の終わっていない専門用語が増えてしまうからです。


プログラマは、説明が下手なのでしょうか。 確かにそれもあります。 私も、プログラマは、もともと、コミュニケーションが上手な人種ではないと思っています。

しかし、私は、それだけが説明がうまくいかない理由ではないのだ、という事をここで強調したいと思います。

このような技術に関する説明は、もともと、丁寧に説明しても、手短に説明しても結局理解されないという要素「ダブルバインド(二重拘束)」を持っているからではないかと、私は考えています。

そして、その要素の発端は人々の習慣と関連しているのではないかと、私は考えています。

─────────────────────────────

習慣とはどういうことでしょうか。 例として、プログラマの一つの習慣をここで取り上げてみたいと思います。

プログラマは往々にして、2の累乗をかなりの桁数まで暗記している事があります。

2・4・8・16・32・64・128・256・512・1024・2048・4096・8192・16384・32768・65536 ...

普通の生活を送っている人であれば、こんなものを暗記する機会など絶対にありません。 ところが、殆どのプログラマは、この数列を暗記しています。 プログラマによっては、 2の累乗同士の足し算の答えや、各項から定数を引いた数まで 暗記している人もいます。

これは、プログラマがコンピューター上で扱うときに計算しやすい16進数を使って数を数える事を好むことと関連しています。16進数の世界では 10,100,1000といった切りのよい数字 が2の乗数上に現れる性質があるため、プログラマは必要に迫られてこの数列と、それに対応する10進数と16進数の変換表を暗記します。

16進数を使って物事を数えているということは、実に奇特な事では無いでしょうか。 地球上のどの文明でも、10進数以外を使って物事を数える文明はありません。 その点、プログラミングという文明に生きる人は、非常に奇特な人種だといえると思います。

日常生活を送る上で、「あ、ねぇコンビに行くなら缶コーヒー 2Fh個買ってきてくれない?」 とか「今年のお歳暮は詰め合わせ1Ah個セットがいいかなぁ」とかいうような会話をする人というのは早々出会う事はありません。

もちろん、プログラマが日常的にこんな会話をしているわけではありません。 しかし、試みに冗談でこういうことを話したとすると、冗談半分でも通じてしまうのではないかと思います。

私は、物の数え方が違うという一見何気ない習慣の違いだけであっても、外国語を話しているということに迫るギャップを生み出しているのではないかと思う事があります。

─────────────────────────────

私たち日本人は、海に囲まれた日本列島に住んでいます。 海で囲まれた国では、陸続きの国と違って、目に見える陸上の国境がありません。 これは、他の国からみるととても特殊な事です。

陸続きの国では、 外国人は飛行機にのってくるのではなく、歩いてやってきます。 そういう環境では、日常的に生活習慣文化言語の異なる人と付き合っていかなければなりません。

しかし、そういわれても、よくイメージできないものです。 具体的にいって、これはどういうことなのでしょうか。

たとえば、学校のクラスに当たり前のように外国人がいたりするということです。 それどころか、場合によっては、クラスメートの半分以上が外国人だったりすることもあるということです。 学校を卒業すれば、社長が外国人だったり、ビジネスの取引先が外国人だったり、仕事仲間が外国人だったりするという意味です。

生活文化が違う人と生活をするというのは、大変な事です。

どのように大変なのでしょうか。

例えば、学校で「一緒にトイレ行かない?」と誘ったら、露骨に「あなたバカじゃないの?」と言い切ってしまうような人と付き合っていくことです。

例えば、一緒にレストランに行ったとき、みんなの食事がそろわないのに、さっさと自分だけ食べ始めてしまう人たちと、一緒に仕事をするという意味です。

例えば、 「おはようございます」も「お疲れ様でした」も何もなく、ぶらりと会社に来て、ぶらりと会社から帰る人と一緒に仕事をするという意味です。

例えば、上司として、挨拶がない事をとがめると即逆ギレする人たちと一緒に仕事をするという意味です。

例えば、我慢しないで、ちょっとでも嫌な事があるとすぐ怒鳴って大騒ぎするくせに、落ち着くとケロッとしてあやまってばかりいる人たちと一緒に仕事をするという意味です。

彼らは全く悪気があるわけではないのです。 それが彼らの習慣だからです。 こういう人たちと付き合っていくためには、本当にいろいろな事を考えさせられるものです。

しかし、彼ら外国人からみれば、日本人という物は、いちいち、逐一鬱陶しく挨拶をするし、しなければ、挨拶をしろと口うるさく注意する、思っている事をはっきり言わず、怒ってもはっきり感情を表さず、怒っていないのかと油断しているといきなり感情が爆発する、食事に行けば、食事がきているのに何が不服なのか食べ始めない、よくわからない人種なのではないでしょうか。

彼ら外国人は、日本人と一緒にいるときは、無礼が無い様、得体の知れない不可視な価値観にあわせようと必死になっています。そして、数年後疲れ果ててしまいます。


私たち日本人は、海に囲まれた国境の無い日本列島に住んでいるため、そんな心労や気苦労とは全く無縁な人種です。 そういう意味で、日本という国は全く事情の異なる特殊な国なのではないでしょうか。

日本人は自分の生活習慣を越えて相手の生活習慣を知る、また逆に、自分の生活習慣を知らない相手に自分の生活習慣を説明する、ということに、まったく不慣れな特殊な国民性を持っているといえないでしょうか。

─────────────────────────────

プログラマという人種は、文化的に奇特な習慣を持っているという意味で、通常の日本人と一線を画してしまっているのではないでしょうか。

特に、日本のプログラマは、そういう理解力の乏しい社会の中で、深刻な社会的孤立と向き合っていると、私は感じます。

しかし、私は、前出の理由により、プログラマに限らず、 創造力を発揮する必要のある専門性の高い職種についている方は、多かれ少なかれ、このダブルバインドの中に閉じ込められているのではないか、と考えています。



積極的に自分のアイデンティティを相手に伝え、自分が理解できる事と理解できない事を伝え、持続的に相手のアイデンティティを理解する努力を続けるという、国際的な考え方なくしては、これからの日本の発展はないのではないか、と私は感じます。

そして、この考え方こそが、思想・文化の多様性をはぐくむ土壌となり、創造力溢れるユニークな本当の日本を作っていくのではないか、と考えます。
コメント一覧
つっきー   2006年06月27日 20:49
細かい話だけど「2の乗数」ではなく「2の累乗」あるいは
「2の冪(べき)」というのが正しいと思う。たしかに「乗数」って言う言葉もあるけど、何のことなのかぼくは知らない。
つっきー   2006年06月27日 20:53
65536くらいまで暗記してるとはすごいなあ。64くらいまでは、九九の範囲内なのですぐでてくるけど、3桁いこうになると計算しないとだめだ、、、(ToT)

問題:2の123456789乗は(10進法で)何桁か?
おかあつ   2006年06月27日 22:08
>「2の累乗」
ありがとう。 僕もおかしいと思ってたんだけど、正しくはなんというのか知らなかったのでそのままにしてしまいました。直します。

>65536くらいまで
僕ももう1個2個ぐらい覚えてるかな...。

4294967296
2147483648

これも結構ちょくちょく見かける数字で、32桁の2進数で表せる最高の数なんだよね。桁数が多いので暗記とまでは行かないけど...。
kikuyan   2006年06月28日 09:05
会社で、今年のプライベートな目標で体重を65536g以下にすると宣言したとき、すごいな1g単位で管理しているんだと突っ込まれたときは、ずっこけた。

だから単にきりが良い数値なんだってば(笑)
おかあつ   2006年06月28日 19:47
とはいえ、kikuyan氏って、意外と体重低いんだよね。

---

電気屋さんで売っている増設メモリのサイズとか、USBメモリのサイズとかも、128メガバイトとか512メガバイトとか中途半端な数字に見えるけど、みんな、2の累乗なんだよね。

ところで、10進数で1キロといえば1000のことで、1メガといえば1000*1000=百万のことです。

ところが、16進数で1キロというのは1000Hのではなく十進数の1024を使うんだよね。 基数の三乗毎に単位を振るのが正しいように思えるんだけど、そうじゃないんだよね。

ところで、メーカー製のメモリのサイズを良くみてみると、まちがえて1キロを10進の1000で計算していることが結構あります。

そうすると、16進数でみても全然切りがいい数字にならないので、がんばって256とか1024とかにする意味全然無いんだよね。

もちろん実用上の意味も全く無いよね。

僕は、「意味は良くしらないけど、慣わしでそうなっているからそうする」 っていうのは、すごい無駄を生んだりするものなのかな、ってたまに思います。
つっきー   2006年06月28日 20:50
>USBメモリのサイズとかも、128メガバイトとか512メガバイトとか

ぜんぜん知らなかった。2進表示でキリ番なんだね。僕の手元にあるのは256MBだ。たしかに2のlog256/log2=8乗だ。
 
出展 2006年06月27日19:13 『何故プログラマの言う事はわけがわからないのか』

著者オカアツシについて


小学生の頃からプログラミングが趣味。都内でジャズギタリストからプログラマに転身。プログラマをやめて、ラオス国境周辺で語学武者修行。12年に渡る辺境での放浪生活から生還し、都内でジャズギタリストとしてリベンジ中 ─── そういう僕が気付いた『言語と音楽』の不思議な関係についてご紹介します。

特技は、即興演奏・作曲家・エッセイスト・言語研究者・コンピュータープログラマ・話せる言語・ラオ語・タイ語(東北イサーン方言)・中国語・英語/使えるシステム/PostgreSQL 15 / React.js / Node.js 等々




おかあつ日記メニューバーをリセット


©2022 オカアツシ ALL RIGHT RESERVED