良いプログラマーは実はコミュ力が高すぎて、逆にコミュ力が低く見える説

最近「文系出身なのですが、プログラマーになれますか?」みたいなことを聞かれるのと、飲み会の席で、「numanomanu さんって、プログラマの割にコミュ力高いよね」って謎に言われたりするけど、そもそもプログラミングとコミュ力ってどういう関係があるのかなーと思ったので、自分なりにプログラマーのコミュ力に関して考察してみた。

世間一般の印象と、国語力とプログラミング力の関係

世間一般的に、出来るプログラマーというのは「コミュニケーション力が低い(=話しづらい)」と認知されている。

今までの自分の仮説は、出来るプログラマーというのはコンピュータと触れ合う時間が多すぎて、人と「コミュニケーション(会話する)」する時間が少ないから、話すのが苦手なのでは?というのと、国語よりも数学が得意で、言葉を発したり、会話するのが苦手なんじゃないかと思っていた。

しかし「国語力とプログラミング力の関係」を読んだ結果、仮説が覆された。

国語ができる(=日本語できちんとした文章が書ける)人じゃないとプログラムは書けない

なぜならば、

小さなプログラムを正しい作法で書けるかどうかと、たった1つの短い文を正しく書けるかどうかとは同根の問題と思われる

からである。

文系や理系という二元論的なまとめ方をすれば、国語ができるのは文系で、数学ができるのが理系だと言われているので、世間一般に言われる営業職や体育会系の人たちは、国語ができる組に所属するのではないだろうか。

しかし、文系がプログラマーに向いているかと言われると、正直怪しい。むしろ、自分たちはプログラマーとは対極にいる生き物だと主張するに違いない。

そこで、新しい考えがひらめいた。

実はコミュニケーション能力が高いと一般的に言われる人は、実は「誤解を前提としたコミュニケーション」で会話しているのではないか?

誤解を前提としたコミュニケーション=コミュ力

誤解を前提としたコミュニケーション手法では、最終的に合意形成するまでに、何度もやり取りが必要になってくる傾向がある。

結果として、会話のやり取りが多く発生することで、あの人とはコミュニケーション(お互いが主張したり、聞いたり)をたくさんしたから、コミュニケーションが取りやすいな〜。

と錯覚しているのではないだろうか。

逆に、必要最低限のことしか言わない人とのコミュニケーションでは、双方のやり取りが簡潔で済むため、お互いの発話量が減ってしまう。。。

その結果、誤解を前提としたコミュニケーションを好む人からすると、なんだかこの人話しづらいな、コミュニケーションが取りにくいなと、感じてしまうのかもしれない。

そのため、「コミュニケーション力が低い」のではなく、「コミュニケーション力がめちゃくちゃ高いため、必要最低限しか発話しない」人たちが、結果として国語力が高く、良いプログラマー(出来るプログラマー)であるのではないか と思った。

そして、世間一般に言われるコミュニケーション力というのは国語力ではく、相手とのやり取りを無駄に発生させることで安心感を与える人の力を指すと考えると、コミュ力の正体は国語力などではなく、意思を伝えるのに必要なカロリーの量と取れるかもしれない。

お互いが誤解を前提としてコミュニケーションをした結果、会話という行為はお互いが阿吽の呼吸で相手の気持ちをわかり合う推論ゲームになっていて、「そう、それ!」みたいな推論が当たると楽しくなって打ち解け合うことが出来るのだろう。逆に、誤解を前提としないコミュニケーションに置いては、推論は出来るだけ排除したいので「簡潔に説明して。」という一種の暴力的にも取れるコミュニケーションになるのではなかろうか。そして、プログラムを書くことにおいては KISS(keep it simple stupid) の原則(シンプルにしておけ!この間抜け)が、良いコードや設計につながるのではと思っている。

まとめ

文系とか理系以前に、誤解を前提としたコミュニケーションというのが実はコミュ力の正体で、出来るプログラマーは最低限しか発話しない。最低限しか発話しないゆえに、簡素すぎてコミュ力が低いんじゃないか?と疑われる。という説。

実はあんまり自信ない説だけど、文系とか理系という世間的な区分では、普遍的に存在するプログラマとしての能力を判別できないのでは?とずっと思ってるので言ってみたかっただけ。もちろんこれに当てはまらない人もたくさんいる。

ちなみに自分は数学が嫌い(高専出身だけど)。誤解を前提としたコミュニケーションを好む。なので、出来る(良い)プログラマには当てはまらない。残念。


技術記事は以下 https://qiita.com/numanomanu サポートよりもはてブやスキが欲しい!