ちょくだいさん、ごめんなさい

ちょくだいさん、ごめんなさい。(ちょくだいさんが中高の後輩で、中学校一年生や中学校二年生の頃の印象からアップデートされていないことも行き違いの原因かと思いますので、この書き方にいたします。) 

nuc.hatenadiary.org

このあいだ書いた上の文章に対して、なぜか、ちょくだいさんに反論されています。

chokudai.hatenablog.com

しかし、ちょくだいさんには、かなり感謝と配慮をした文章を書いたつもりでした。

まず、前の方には、ちょくだいさんのおかげで、りりあんさんは模擬面接を受けることになったよ、ちょくだいさんがいなければ知り合うことすらなかったよ、ということが書いてあって、後ろの方には AtCoder のこのあたりの過去問(4問時代のABCのC問題)を解くといい勉強になるよ、とまで書いてあるわけじゃないですか。宣伝までしたくらいの気持ちでしたよ。

 

というわけで、ちょくだいさんが、先輩に失望したといっているのを見たときは、何を言っているんだろう、と思いました。

AtCoder

それで、しばらく首をひねっていたんですが、実は、まったく理解していなかったところがあったことに気が付きました。それは「競技プログラミング」とは「AtCoder」のことであり、「AtCoder」とは「ちょくだい」のことである、と読む人がいるということです。

競技プログラミングをしている」と言ったら、非常にありがたいことに、殆どの人がAtCoderに取り組んでいると思います。日本における「競技プログラミング」は、「AtCoder」と言い換えても、さほど問題がないかと思います。(競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ)

これは、ちょくだいさんが blog に書いてくれたので気が付きました。なるほど。なるほど。これについては、意図せず失礼なことを書いたとお詫びしたいと思うと同時に少し背景の説明と本来の意図をご説明させてください。

 

当たり前ですけれども、あれくらいの長文を表に出すからには、あらかじめ、それなりの数の関係者に閲覧して感想をもらって修正してから投稿してます。それなりの数の先輩や後輩や同僚や教えた相手などに先に見せてます。もちろん、りりあんさんにも見せてます。

で、この「競技プログラミングを終わらせなければ」における「競技プログラミング」というのは、もともとは、今回の模擬面接をした3人の周りの人たちの間では、競技プログラミング同好会・クラブやその周辺の活動を指すわけです。

 そりゃそうじゃないですか、「競技プログラミングをする」という表現は当時はなくて、「プログラミングコンテストに出る」と言っていたわけです。だから、競技プログラミングといえば、自分たちが大学生の頃の集まりを指すわけです。「学生時代のバンドを終わらせなければ」と置き換えたら意味が通じるでしょうか。つまり、自分たちの大学生・大学院生の頃を反省して、とても大事なことをやり忘れてきたのでやり終わらなければいけない、ということです。

 少々不正確になって誤解されることを恐れずにもうちょっというと「東大理学部情報科学科に2002年から2005年ごろに進学した人々とその周辺のうちでお祭りが好きな人たちのコミュニティー」があったという話です。そして、2007年に競技プログラミングの名前が付きます。つまり「競技プログラミング」が広まり変質したというのは AtCoder ができる2012年より前の話をしています。「前競技プログラミング時代」には Gokuri-Squeeze GNC  kitsune- というような本当にすごい先輩たちがいたんですよ。ただ、競技プログラミングができた少し後あたりで、どこかで歯車を狂わせてしまったように感じております。

 

だから、あらかじめ閲覧していた人たちの中には、「競プロ終わらせるは本当にそう」といった反応をしている人も複数いました。

 

別に「競技プログラミング」という単語を商標登録していたわけでもないですから、その後、誰が使うのも自由です。ただ、さすがに、個人の代名詞や会社の代名詞のようになっていると思っている人がいることには私は気が付かなかったわけです。

それを前提に、元の文章を置き換えて、

「ちょくだい」は、東京大学「ちょくだい」同好会2007年春台湾合宿から始まります。

「ちょくだい」は変質し、その悪影響は看過できない所まで来てしまったと思います。

我々の目的の一つは、我々が始めてしまった「ちょくだい」を我々が終わらせることです。

という風に読んでいると理解すると、なるほどこれは、たしかに「抹殺する」という意味にもなりそうですし、

AtCoder」は、東京大学AtCoder」同好会2007年春台湾合宿から始まります。

AtCoder」は変質し、その悪影響は看過できない所まで来てしまったと思います。

我々の目的の一つは、我々が始めてしまった「AtCoder」を我々が終わらせることです。 

という風に読んでいると理解すると、なるほどこれは、たしかに「破産させてやる」という意味にもなりそうです。というか、それ以前に「お前たちは始めてないよ」といわれそうですよね。

そりゃそういう風にいわれたら怒ります。ごめんなさい。だけど、破産させる気も抹殺する気もありませんでした。というよりも、こう読まれるのにあらかじめ気がつけというのは、正直無理です。

僕たちは、競技プログラミングを娯楽として楽しんでいます。これを、初期にちょっとプログラミングコンテストに取り組んでいた程度で、我が物顔で「我々が競技プログラミングを終わらせる」などというのは、到底容認できるものではありません。競技プログラミングは貴方のものではない。もちろん僕のものでもないので、多様な競技プログラミングのあり方があるべきでしょう。(競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ)

 という部分は

僕たちは、「AtCoder」を娯楽として楽しんでいます。これを、初期にちょっとプログラミングコンテストに取り組んでいた程度で、我が物顔で「我々が「AtCoder」を終わらせる」などというのは、到底容認できるものではありません。「AtCoder」は貴方のものではない。もちろん僕のものでもないので、多様な「AtCoder」のあり方があるべきでしょう。

という意味だとすると、納得がいかない理由はとてもよく分かります。なので、わざわざ、プログラミングコンテスト競技プログラミングを書き分けているということですよね。

しかし、「我々が「AtCoder」を終わらせる」というのは、容認するとかしないとか以前に、具体的に何をすることをイメージしていたんでしょうか。やっぱり、破産させるとかでしょうか。容認できないと判断できる程度には具体的にイメージできていたはずと思います。「AtCoder はあなたのもの」の具体的な意味もよく分かりません。ただ、なるほど、これはなんかとんでもないことをする計画だったっぽいですね。

しかしながら、前の文章でも AtCoder の過去問を解いてみたら、とおすすめしていることからも分かるように、サービスはあって欲しいと思います。

本当にごめんなさい。

 

5歳くらい歳が離れると一部の言葉が通じなくなることがあるのは、少し前に「アンチ」という言葉で強く実感したことがあります。これもそうなのでしょう。

 

ここまでが謝罪です。

質問

ところで、ちょくだいさんの文章、何を言っているかまったく読めないというか、全体として言いたいことはあるみたいなのだけれども、部分部分の整合性がないのではないでしょうか。局所的にころころ意見変わっているように思います。

ちょっとよければ書き直していただけませんか。

たとえば、「競技プログラミングが役に立つかどうかは企業が決めるべき」だと考えているんだったら、問い合わせなり資料を漁るなりしましょう。しかも、競技プログラミングAtCoderのことと置き換えてもいいとかいっているんだったら、AtCoder が役に立つかどうかを問い合わせましょう。

Googleはどっちかというと役立つ企業だと思ってますが……。」みたいな希望を書かれても知らんがなというしかないです。GoogleAtCoder が役に立つか問い合わせるなり、公開されている資料を探すなりすればよいでしょう。

その一方で、「AtCoder社として主張してそのまま通っているもの(注: IT就職における評価)もある」ということで、「AtCoder社が自発的に就職に役に立つと評価している」ことも書いていて、こんな短い文章で自己矛盾しちゃうのは読む方としては厳しいです。

そして、そもそも「Googleに入るのが偉い」という価値観を批判していたわけで、そういう価値観じゃないのだったら、Google 就職で役に立つかなんか、どうでもいいはずで、文章中でだらだらと一番長い章を立て語っているのは何がしたいのか不明です。役に立とうが立つまいがどうでもいい。そうなるでしょう。

 

また、私も、AtCoderGoogle 入社にまったく役に立たないと書いた記憶はなく、教える立場として「4問時代のABCのC問題とかが問題集としていいですよ」というのは生徒に対しても繰り返し言っているところです。この点、ちょくだいさんは、具体的にはどの程度まで役に立つとお考えでしょうか。「あくまで一部の要素でしかない」「勉強時間の2~3割は競技プログラミングに充てても良い」とありますが、具体的にはレーティングでいうといくらでしょうか。あるいは、どの問題を何問くらいでしょうか。

 

(ちょくだいさん向けの文章は、ここまでです。)

競技プログラミング

競技プログラミングの名前が何を指しているかという意味では、競技プログラミングの名前が付く前のプログラミングコンテストの時代で活躍された三廻部さんの以下の発言はとても示唆的だと思います。

「とっくの昔に終わっていたのではないでしょうか」っていうのはそうかもしれません。ただ、名前の付替えがどうとかそういうのはいいので、三廻部さんもお願いなので、「もしも、自分がクラスメイトなどだったら友達になってお茶をするだろうなと思う」ソフトウェアエンジニアになりたいという人を見つけて、授業なり模擬面接なりをしてあげてください。たぶん、私の言いたいことが伝わると思いますので。

Gokuri-Squeeze の川中さん(mayah さん)も同じ問題意識を持っていて、一緒に模擬面接をすることもありますけど、そういう問題意識があるんですよ。

mayah さんは、競技プログラミングのできる前の世界大会クラスのプログラミングコンテスト勢であるだけでなく、Google にもいた CEO かつ CTO で、エンジニアの教育にもボランティアで精を出していますので、ソフトウェアエンジニアになりたいならば今すぐフォローしましょう。

就職に役に立つ

なお、ちょくだいさんが、Google の人も競技プログラミングは就職に役に立つと主張している例として挙げられている下のツイートですが、私は ymatsux とは小学校3年生からの付き合いです。

これを受けて、Twitterで、現役Googleエンジニアかつ現役競技プログラマの方から、以下のような宣伝が行われていることも確認できます。

 このような事実を見ると、 競技プログラミングGoogle就職の役に立つ、というのも、そんなに間違っていない事実なのではないかと思います。(競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ)

ymatsux も合宿のメンバーで、私は公開前にあの文章(2月の頭の時点の草稿)を見せておりました。しばらく話して、バックスラッシュが出力できないことがあることなどいくつかの例を出すと「よく見つけたなあ」などといってくれた一方、「情報系っぽい経歴がないと、レジュメのスクリーニングに通らない。しかし、競技プログラミングの成績があるとスクリーニングに通るようになる場合がある。これはとても重要な側面だが、お前は分かっていない。」という旨のことをいわれまして反省しました。そして、あの文章に書き足すのを忘れました。

状況

さて、たしかに、あの文章は思い込みがあると読めないものなので、いくつか明らかに断絶があるわけですが、これが分かると読みやすくなることを簡単に説明しましょう。

  • ゴールからかなり遠く、面接本番まで2週間しかなかったので、3人の面接官は本当に焦って、りりあんさんにリアルタイムアタックをさせることにしました。
  • コストパフォーマンスを最大にするために、手分けしながら渋谷の大きな本屋で本を探し、どの本の内容ならば常識的な内容を網羅していて、どこの章は読まなくていいかを議論しました。
  • そして、オアシスの見えない夜の砂漠のような場所を2週間走り続けてください、ぎりぎり間に合うかもしれないから、というようなひどいアドバイスをしました。

ということです。

というように、とにかく3人の面接官は慌てまくっており、あの文章では「りりあんさん」については「リアルタイムアタック」させるための「コストパフォーマンス」の話しかしていないのです。どうも人間関係資本と教養の話をしていると思う方がいるようなのですが、Google の面接に教養も人間関係資本もいりません。

具体的にイメージしやすいように伝えますと、難易度・分量的には、私は「大学受験の物理」くらいと思っていて、一緒に面接官をしている人はそれよりは多くて「大学受験の物理+化学」くらいといいます。センター試験の数学のタイムアタックだけをやりこんできた人に、「残念なお知らせがあります。2週間後に2次試験があって、科目は物理と化学の2科目だけです。聞いたことがない科目かと思いますが、4時間で自然科学の概論を教えるから、その後で知識を詰め込むために本屋行きましょうか。難しい問題はでないからなんとかなると思います。」と告知して間に合わせなくてはいけなくなった。というのが伝わる比喩でしょうか。(聞くところによると、速い人は、数学1Aは8分、2Bは17分前後で解けるらしいですよ。)

 

また、「Google 入社は、えらくもないし、すごくもないし、むずかしくもない」と我々は心から思い、言い続けています。というか「えらくもないし、すごくもないし、むずかしくもない」と思っているから、たとえば、教育制度を整えて国策として大量に人を輸出するべきだといっているんですよ。

私に対して、

とかいっているけれども、どう見ても「「Googleに入るのが偉い」という価値観」を持っているのは、ちょくだいさんのほうですよね。私には「お茶が飲めて偉い、すごい」くらいの違和感があります。

 たとえば、さっき見つけたこのツイート。

「化け物」だとか「注目が集まった」とかいうことですが、偉い、すごい、という価値観がないとでてこない説明です。

私は、このけんちょんさんのために仕方ないと思って記事を書いたのですよ。本当に面倒で書きたくなくて、他に書くものもあり、ツイッターで書こうかなと宣言して自分を鼓舞までしたのに、2ヶ月以上かかりました。

りりあんさんについては、私からすると「やりたいっていうなら手伝ってあげるけど、いくら難しくないからって、さすがに2週間前になってからなんとかなるかっていうの、最後にして欲しいんだけど。でも、2週間走りきったのよく頑張ったね。」というような感覚です。

 

たとえば、こちらの方は私の見え方に近いです。この人も合宿に一緒に行きましたね。

まじめにこれは言い訳しなくてはいけなくて、本当に申し訳ないです。教えるときに古巣の「会社のため」を毀損していないかは考えています。そして、実際に能力が偏っていると「本人のためにもならない」ことがあるのは確かです。

今回は、海外の模擬試験を自分で申し込むようなやる気で、2週間全力疾走をする伸び率が叩き出せるならば、それからも伸びるだろうから「会社の判断が取るならそれでいい」と判断しました。なのでオファーが出た後もなんか色々いいましたよ。

お知らせ

ここで残念なお知らせがあります。とある医学部教授から「読んだよー。文章はいいけど、お前が卒業生をひょいひょい適当にエンジニアにすると教授会で問題になることがあるから、するんだったら出来の悪いのにしてよね。いいね。ほんと頼むよ。特にそこにいる生徒会長みたいなのはだめだから。」ということなので、今後は、あらかじめ「出来が悪いかを問い合わせる」約束をしてきました。

列挙

ここからは、「コミュニティー」からの反応を見た範囲で列挙したものです。

chun さんに、このようなことをお伝えするのは本当にお耳汚しなのですが、散逸は意図的です。私の経験則で「誰にとっても新しい情報」のメッセージを広く伝えたいときには、「詳しい人は同意するが、そうでない人は違和感を感じる内容」を加えるんです。そうすると、人は、「新しい情報の真贋を、周囲の情報から判断しようとする」ので、一部の人に認知負荷がかけられます。こうすることで、根拠と結論が噛み合わない支離滅裂な発言も出てきて広まると認識しています。

この話の内容「かわいそうなことに、りりあんさんは、いかれた3人の模擬面接官が今まで何をやっていたんだと慌てふためいたことにより、2週間のリアルタイムアタックを宣告され、無理やりクリヤーさせられました。コスパがよかったですね。でも、こっちの胃までおかしくなるから真似しないでね。」で終わるのですが、これだけ書いてもぜんぜん広まらなさそうですよね。そこに、フィロソフィーと教育関係の問題意識の話を突っ込むとこうなります。

 我々の世代はこういう考えでしょうね。

 

Spaghetti Source を思い出して懐かしい気持ちになりました。

 

  

 

 

 普段、抑えているところを少しだけ外しました。

 

 ああ、そこは前もって閲覧してもらったときにも複数人がひっかかった箇所です。その前についている「それ以外で、」の部分に相当押し込んでいます。ただ、おそらく、主張が整理しきれていなくて、少しだけ整理し直すと

  • 戦前ならば、単純労働力として南米やカリフォルニアの農園にでも放り込めた。
  • 婚姻などの手段は変わらずあるが、仕事がいるならば、いまではなんらかのジョブ型の仕事をするスキルが必要。
  • だが、なにがスキルとなりうるのか。
  • 社内のスキルを使った社内トランスファー
  • スポーツ・芸術・音楽・料理などは国によってはスキルとなる。
  • 高等教育において徒弟的な教育を受け、理系スキルとしてのエンジニア(ソフトウェアに限らない)があるようだ。
  • 海外で徒弟的な教育を受けても良い。
  • ただ、MBA やローなどの職業訓練で海外の大学院に行っても、現地では働けないようだ。ただ、中国語などができると、そうでもないっぽい。

くらいの気持ちです。ここはコントロールに失敗しています。

元生徒その他

 

すまん、脱線はしないつもりだったが、とあるところが「死に至る病とは、絶望のことである」と構文が同じだったのでしばらく笑っていた。

  

Twitter で医師を拾ってきて Google のソフトウェアエンジニアにするだけの簡単なお仕事

はじめに

【転職エントリ】Googleに入社します|Lillian|note」という、医師から未経験で Google のソフトウェアエンジニアになった記事があります。

note.com

私は、この記事に出てくる「とある元 Google のソフトウェアエンジニア」で、面接の対策を立てました。

記事が出た当初から大反響で、私もそれなりの反応を見まして、いろいろと誤解されているなあ、と思う一方、アドバイザーはあくまでもアドバイザーだから、アドバイザーとして知りえた情報については、口をつぐむべきだと思っていました。

ただ、あまりにも誤解されており、悪影響が大きく、犠牲者も多くなってきたと思ったので、許可を得て簡単に背景を書いておこうかと思います。

これはあくまでもアドバイザー側からどう見えていたかを書いておくものですが、医学部卒だけでも3,4人 GoogleAmazon に入っていったおぼろげな記憶がありますので、他の人の話と混ざっていたらご容赦ください。

 

教えるに至った背景

動機はいろいろ複雑なところがあるのですが、以前から Google の面接対策をしておりました。はじめは履歴書の添削や教科書の紹介くらいだったのですが、授業もするようになり、ある時期から模擬面接をしてもいいことになったので、模擬面接をするようになりました。

もともと教えることは得意で、特に短時間で全体図や戦略を伝えるのが一番効果が出ていた気がします。学生時代、成績が悪くて志望校を変えろといわれたのでどうしたらいいか見てやって欲しいと言われた小学生が2人いたのですが、それぞれ開成中学桜蔭中学に入っていきました。偏差値40や50からでもなんとでもなりますね。ちなみに、筑駒だけは試験問題の内容が毎年ぶれすぎていてかなりが運です。教員がまともに生徒を取る気がないのでしょう。そして、運要素が大きいので偏差値が高くなります。

それはともかく、模擬面接をするようになってからは技術面接はほぼ通過する感じになりました。ほぼ、というのは、模擬面接はしたけれどもやっぱり受けない人や面接が終わったあとにチームが見つからなかったり辞退する人がいるため分母と分子がよく分からないのですが、面接自体は滅多に失敗しないという感覚です。

前年の2018年はインターンを含めて4人全員が技術面接は通り、2019年6月当時は、すでに2,3人見ていたが結果はまだ出ていない段階だったようです。

今年はもう1人くらい見てもいいかなと思っていたところ、ツイッターGoogle を受けると書いている人がいて、競技プログラミングサイトを運営している中高の後輩がなにか作用したので、偶然見つけました。アカウントを見ると DM が送れたので「Google 受けられるんですね。」と聞いてみたところ、6月の末に模擬面接をすることになりました。「日本から西海岸に人を輸出しようとしている」と説明しました。

Google の技術面接

Google の技術面接は、シリコンバレーのなかではそれほど難しい方ではありません。

西海岸の文化では、面接の場では仕事に関係のない能力を評価できません。このため、日本語能力は評価外です。英語能力は問われますが意思疎通が取れればよく、ここ自体が問題になることはあまりありません。仕事をする上では、どうせ英語能力は帰国子女(小学校から高校までの半分未満を英語圏で暮らしたくらい)でもまったく足りないですし働き始めると伸びます。

また、エンジニアについては、性格についての評価をあまりしないため、差別的でないかなどのポリティカル・コレクトネスを除けば、ほぼ純粋に技術的な能力だけを見ています。

そして、システマチックであるために、個人的には非常に評価をゲームしやすいと思っています(game する: manipulate (a situation), typically in a way that is unfair or unscrupulous. Oxford Languages)。正直な話、FAANG+M 内で比べてもとても対策しやすい印象です。

ポリティカル・コレクトネスについては、日本が儒教の影響下にあるため、西海岸文化でやってはいけないことがむしろ好まれていたりするので、かなり釘を差します。たとえば、長幼の序や男尊女卑などは外すのが難しく、禁忌なのでたまに事故が起きます。一番安全で簡単なルールは、相手が明確に出してきた情報以外を使って会話しないことだと思います。たとえば、目の前の人物がXXだと思っても、明確に相手が自分はXXだというまで、そうであるか分からない前提で会話をすることです。

ラッキーだったのは、リクルーターから声がかかっていたので、面接前の足切りであるレジュメスクリーニングで撥ねられることがなかったことです。東大の工学部や理学部は通るのですが、東大医学部卒は社員がリファーしてもとにかくスクリーニングに通りませんでした。

模擬面接当日

少し雨が降っていました。大きな黒板のある部屋を借りて、午後1時に集合しました。

その年からは、大学の同期で元 Google のエンジニアがもう一人講師役を務めるようになっていました。また、この日はもう一人腕の立つエンジニアが講師役で遊びに来ていて、全部で4人でした。

はじめに手続き的な流れをざっと説明してから、実際に問題を解いてもらいます。

模擬面接から受けた印象としては、このままでは通る見込みはなく、間違った方向に努力してきていて、かなり修正しなくてはいけないが、時間があまりにもないので間に合うか本当にぎりぎりというものでした。

せっかくですので、ここで本人の記述を見てみましょう。

 このタイミングで、とある元Googleのソフトウェアエンジニアの方から声をかけていただき、模擬面接をしていただけることになりました。後から思うとこの機会は私にとって本当に幸運でした。模擬面接では私がコードをすらすら書いてみせたので、ちょっと驚かれました。競技プログラミングで得られるようなアルゴリズムのコーディングスキルは、面接対策にはもう十分過ぎるほど練習済だと思うとの評価でした。

 その反面、情報科学の知識を前提としたディスカッションでは、私の知識量があまりに乏しいことに半ば呆れられました。模擬面接はその時点で終了して、一緒に近場の書店に行って、教科書を買うことになりました。ここで選んでいただいたオススメの教科書は本当に良書ばかりでCPUやOSの仕組み、ウェブの技術など、情報系の学部で学ぶと思われる情報科学の基礎をしっかりと勉強することができました。

実のところ、こちらからみると、コーディングを始めてから15分かからずに知識がほとんどないことに気がつきました。それを前提に、通る確率を最大化するような戦略を立てます。知識はあとから自習で補ってもらうとして、まず、どうやってコーディング中の応答で知識を使うかについて丁寧に説明します。質問をしたあとで、こういうことを知っていたとしたらどう答えますか、と聞き直すのです。

そして、驚いていたのはコードをプリンターのように上から書いていったことです。これは暗算のようなもので、まともなエディターのない環境や速度が本当に大事なときにやりますが、普通はやる理由がありません。ああ、競技プログラミングの価値観に浸かりすぎたなと思いました。

コードの読み書きができることが救いです。とはいえ、パースなどが絡むと迷うのは理論的バックグラウンドが弱いからでしょうか。さて、4時間で軌道修正します。

競技プログラミング

競技プログラミングは、東京大学競技プログラミング同好会2007年春台湾合宿から始まります。それまで、プログラミングコンテストは開催されてきましたが、競技プログラミングの名前が使われたのはこの合宿がはじめてで、このとき一つのジャンルが生み出されたのです。

合宿のメンバーは、プログラミングコンテストにおける世界と日本の差を感じており、世界で戦えるような後進を育てることにしました。そして、競技プログラミングが日本に広まっていくのです。

黎明期の競技プログラミングをしていた人たちは、Google に入る程度のことくらい造作ない人たちで、実際、その合宿のメンバーは12人中9人が Google で一時期働いていました。

私は情報科学を専攻しておらず、Google 本社から受けることを勧められてオファーレターをもらうまでは、国家一種経済職で官僚にでもなるつもりでエンジニアになる気がありませんでした。そして、大学院でふらふらしていたので多くの同期たちから3年遅れで入ったのですが、同期たちに通るとは思わなかったというと、「何言っているんだこいつは馬鹿か」という顔をされたあとに「いや、通らないわけないだろうけれども、まさかこういう仕事をする気になるとは思わなかった」といわれることが2,3度あってからは、なるほど馬鹿げたことを言っているんだという認識を持ちました。また、入ってみると日本(で教育を受けた程度の意味)のエンジニアの10%-20%は知り合いでした。

そして、自分も面接をするようになってから分かったのですが、たしかにこれは友達とお茶をする程度の難易度です。

大学に入ったばかりの頃、プログラミングコンテストで世界大会にも行くことになる先輩に次のように聞いたことがあります。「情報科学の自主ゼミをしている友人からソースコードと出力が同一になるプログラムが存在すると聞きましたがどのようなものなのでしょうか。」先輩は即答しました。「クワイン文ですね。クリーネの再帰定理から存在が導かれます。それくらいは常識です。たぶん、少し考えたら書けると思うので書いてみてください。」この人の専攻は理工系ではありません。
この先輩は他にもとてもいいことを言ってました。研究者ならば、どのような分野であれ、プログラミングコンテストの初級中級くらいの問題は20分位で解けるべきだが、それ以上やりすぎてはいけない。情報系を大学で専攻しないと決めた以上、圧倒的な知識の差ができるが、それでも彼らが常識としていることを常識としなくてはならない。
そういうものかと思っていたら私もまがりなりにもできるようになりました。たぶん、投入した時間は多く見積もっても半年くらいです。

このように、昔は、Google競技プログラミングは当初はとても近いところにあったのです。

今回模擬面接を受けられた方のように、競技プログラミングを熱心にして、Google に入りたいという人に会うことは多々あります。ただ、現在では昔のように造作ないとは行かないようです。

競技プログラミングは変質し、その悪影響は看過できない所まで来てしまったと思います。競技プログラミングを始めた人たちができていたことが、その少し下の世代ではみるみるできなくなっていったと思われます。少なくとも、競技プログラミングの関係者がここまで Google に通らないことはありませんでした。

というのも、競技プログラミングは面白くするために、いろいろなところが捨てられています。

面白くするためには、やはり勝ち負けはきれいな方がいいので、オーダーの正しいアルゴリズムを思いついて正しく実装できることを基準にしてあります。また、打ち込むのがあまりにも大変なアルゴリズムはでません。

一方で、プログラミング言語の選択は影響がないように作られています。このために、1000倍くらいの定数倍は無視します。

実際の現場では、計算量が遅いもののほうが速いことも多々あります。たとえば、場合によってはハッシュ値を計算している間に50くらい線形でなめられるでしょう。メモリーヒエラルキーを意識することも大切です。また、当然、プログラミング言語の選択だって、実際の現場では重要な技術的な決定の要素です。

クイックソートのようなライブラリーが提供するアルゴリズムについても詳細を聞かれません。たとえば、最悪計算量に近いときにスタックオーバーフローを起こすので、短い方から再帰して、長い方は末尾再帰最適化することなど、いくつかの常識があります。

もっと簡単なところでは、バックスラッシュを含む文字列をリテラルで書く方法は不要な知識になっているのか、かなり書けてもできない人をよく見ます。結構ホラーですよ。さらさらとコードを書くのに、どうやってその知識を避けて生きてきたんだと。

こういったものを無視することによって面白くなっているのが競技プログラミングなのです。

昔は、面白くないコンテストというのがたくさんあったのです。

たとえば、線形時間アルゴリズムの最適化のコンテストで、締め切り後にフロッピーディスク内のファイルで計算が行われることが発表され、フロッピーディスクから大きなファイルを読み込むため、非同期処理をして読込み中に計算をした人が2位にダブルスコアで勝つというコンテストがありました。騙された感じはあります。ただ、本当に勉強になりました。

その後、その当時はじめの競技プログラミングをしていた人々は、競技プログラミングの普及から足を洗っていきます。そして、競技プログラミングを広めるのがその下の世代になるにつれて、競技プログラミングは本来の意味を失い、カーゴ・カルト化してしまったのでしょう。

つまり、面白くするために作られたルールだと分かっている人たちがいなくなり、そのルールとそれによる序列が絶対的なものになってしまったということです。競技プログラミングがとてもできるのに落ちたというときに、おそらく起きていることは、バックスラッシュが出力できなかった、ということがたいていでしょう。面接官をすることに慣れている人ならば15分もすれば違和感を感じ始めるものです。まれにすりぬけるんですけどね。

感覚的なものですが、ルールの距離について、新聞記事の編集とクロスワードパズルの解答くらいの距離感と言っていた人がいました。少なくとも、将棋と詰将棋よりは遠い感覚があります。いわゆるフェアリー詰将棋でしょうか。この人も私が教えて未経験から Google でソフトウェアエンジニアをしています。

実際のところ、競技プログラミングは初期はコーディングの読み書きの能力を鍛えますが、かなり初めの方から出題者の気持ちを読む能力を重点的に鍛え始めます。

そして、いまではクリーネの再帰定理すら分からなくなってしまったのです。

今回、模擬面接を受けられた方は、ゲームをゲームと認識しないままやりすぎていたという印象でした。

ところで、ここまで書いてませんでしたが、今回の講師役のうち二人は、競技プログラミングがはじまった2007年春の台湾合宿に参加しておりました。

我々の目的の一つは、我々が始めてしまった競技プログラミングを我々が終わらせることです。

模擬面接

さて、模擬面接に戻りましょう。

面接では難しい問題はまず出ません。ただ知識の不足から知的な問題だったと感じるだけです。そしてたいていの場合、テンポが遅すぎます。よい面接は漫才のように進みます。

LeetCode とかに問題がさらされていますが、あれは、たいてい入り口で倒れているので、本体に到達していないんです。そういった足を踏み入れると深みがあるような問題が好まれます。

解答にひらめきがいるように思われていますが、だいたいの場合は、人類の100年近い情報科学の歴史の中で類題が解かれているので、それを思い出すだけで解ける話ばかりです。そのようにしなくてはいけない制限が随所にあって、それらは、いくらかは合意、いくらかは人類の技術的理由、いくらかはこの宇宙の数学的物理学的制限から来ているものです。

「何をどれくらい知っていなくてはいけないのか」と聞かれたので、ちょっと考えてから、右手を前に突き出しました。手を開いた状態で右手を伸ばしたあとに、「手を握ります」と宣言してからゆっくりと手を握ってみせました。「いま、手を握ろうと思ってから握るまでのあいだに起きたことをできるだけ詳細に説明してください。」
いままで鉄門を何人か教えてきたので、医師にはこれが一番通じると思ったのです。
前頭前野。運動野。頚椎。腕神経叢。ミオシン。アクチン。
「そうですね。H-H方程式やイオンチャンネル、骨や筋肉の名称の話をしてもいいでしょうし、答えが足りなかったら追加で聞いてきます。では、頚椎損傷で今の動きができなくなったとしたら、Cいくつの損傷を考えますか。医師でも結構忘れているので答えられなくてもいいのですが、この答えられなかったときに感じる答えられて当然という感覚を覚えていてください。その番号で人生が大きく変わった人はたくさんいますよね。」
「ヘモクロマトーシスの患者さん、いままでどれくらい見たことありますか。要するにプロというのは、数年に一度見るくらいのことは当然に知っているんです。いままで仕事で書いたダイクストラの数覚えてますか。」
同僚の8,9割が知っていることを8,9割知っていることがどの世界でも求められるのだと思います。

 採用面接は単なるコーディングスキルの試験ではなく、ディスカッションの中でのコミュニケーション(意思疎通)が非常に重要であることを強調されました。チームとして一緒に仕事をする仲間を見極めることが面接の目的であることを考えれば、実践的なコミュニケーションが重要視されるのは合理的だと思いました。

終わったあと、渋谷の本屋に寄り、徹底的に山を張ります。
面接官役3人で協議した結果、できるだけ量を減らして6冊が選ばれました。オペレーティングシステムの本は、どうするのがいいのか少し自信が持てませんでした。3人とも似たような本を読んでいたのがなかなか面白いです。

ただ、これはどの分野でも同じはずです。もっとコモディティー化している、たとえば、生理学の教科書にしても、多く数えてもせいぜい10冊くらいしか選択肢はなく、そのうちの何冊かは読んでおり、いくつかは比較のためにパラパラと見て、少なくとも友人が使ったので評判を知っているという状況になっているので、自然とこうなるのです。

「うーん、たしか、医学部医学科の教育って、これくらいの量の本を読んで、2週間位で試験をするのは普通なのでできますよね。」と聞いたところ「はい」と答えていらっしゃったのですが、あとから、内心、「間に合うのかこれは」と思っていたと聞きました。私の見積もりも間に合う確率50%くらいでした。

結局の所、知っていて当然な知識かどうかの判断をする際には、同僚のエンジニア同士が夕食時などに雑談をして、まあ、そこにいる8-9割方が知っていることならば、出題ミスではないよねとなり、それが常識とされるわけです。その量から比べたら、6冊の本ではあまりにも心もとない、しかし、4時間だけならば被弾せずに耐えきれる可能性があるだろうという読みでした。

そのあとで、面接官の1人は帰ったのですが、残りの3人でメキシコ料理を食べに行きました。

そして、勉強が終わったら応用情報技術者試験がちょうどいいと思います。応用情報技術者試験の勉強をするとクイズのようになるのでよくないですが、勉強した結果、応用情報程度の問題が明らかに感じるようになるとちょうどいいと思います、とお伝えしました。

東大理学部は、研究者による研究者養成なので、半分前後が博士課程まで進学し、そこの教育は仲間なり後継者なりの育成としてなされます。数学科の差しゼミとか顕著ですよね。教授が大学四年生を一対一で詰め続けると数学が分かるとは何かがようやく分かるようになるのです。それまでは、東大理学部数学科でもだいたい学年の半分しか分かっていないと京大の准教授がいっておりました。これでもとても高くて他の旧帝だと普通は1割と聞きますね。
そして、一廉の人物が自分の仲間になるかもしれないと思って教育をするとき、そこには莫大な常識が流れます。その常識を横から掠め取るだけでも相当なものです。医学部だって、そうでしょう。多くの教授たちは、自分が授業をしている相手がいつか、自分の部下となり同僚となり、自らが挫折したところを踏み越えていくと思って育ててたんじゃないんですかね。少なくとも、研修医が終わって医局に配属されたあたりからは、本気の教育がはじまりますよね。そして、その結果、医師同士の能力差は信じがたいほど大きい。
私は、時々、自分を育ててくれた人たちと、その人たちをどれくらい裏切ってきたかを思って、一人嗚咽することがありますよ。あなたもきっとそうでしょう。

動機

さて、このような模擬面接をしている動機についていくつか書いておきましょう。

まず、ある程度は遊びです。数時間の介入で見違えるようになり、人生が大きく変わるのですから。今回は、勉強の仕方を教わらなければ絶対に得られなかった内定だと本人にも思ってもらえているようです。ああ、まあ、分かっている人を教えることも多いんですがね。70%通るだろうという感じの人が95%通るだろうに変わるのはそれはそれで達成感があり楽しいものです。

次に、エンジニアは天然物しかいない、という信念を打破したい、と考えています。エンジニアは養殖できることを立証したいということです。
エンジニアの出身学科で一番多いのは東大理情なのですが、次が東大理物でした。理物では、情報科学教育はほとんど行われていません。ただ、出身者が多く、教育をしようがしまいが現れる、生まれつき、天性のもので、天然物しかいないという信念に繋がります。
あと学科ではありませんが多いのは京大マイコンクラブ(KMC)です。つまり、理情とKMCのようにそもそも天然物が集まる場所と、一切、教育がなされていない場所で、天然のエンジニアが発生するという考え方です。
さらに、現在は若いうちからやらないとよいエンジニアにならないという信仰もあるようです。ただ、大学教育は圧倒的なのでスタートの差が誤差になることが多いでしょう。
この信念を示す目的で行っています。

それから、中国やインドとの国力差です。Google では、およそ中華系インド系がそれぞれ全エンジニアの2割ずつを占めているというのがラフな計算です。一方で、日本の人(中学から大学までの教育の半分以上を日本で受けた程度の意味)はとても少なく、それより2桁小さいと思われます。人口が1桁少ないことを勘案しても、あまりにも少ないです。
いろいろな試算がなされたのですが、仮に日本で教育を受けた人全員がこの面接を受けても、通るのは日本で2000人くらいだろうと思われています。これはどちら方向にも3倍は間違っていないと思われます。

そして、特に Google では、ソフトウェアエンジニアを含むエンジニア職が、企画調査研究開発から設計製造流通までを握り込んでいます。しかも、日本でよくある本社が決めた内容を支社が実行する関係ではなく、全世界のエンジニアのチームがある意味で対等に近い関係である一方、エンジニアの部署とそれ以外の部署の間の情報隔壁は高いです。
実際にやっていることは、戦略を立て、データを解析し、マーケットを分析し、コードを書く仕事です。
そして、少人数で圧倒的なインパクトが出せます。インパクトといってもお金に限らず、人々にどれくらい影響を与えるかです。10兆円を売り上げる何かを触るとそれなりのものがでてきます。

現在、米国の成長を牽引している企業、たとえば FAANG+M の企業文化を知ることのできる人物があまりいないことはストレートに国益を害するでしょう。
端的に言えば、これが日本の情報科学教育の質です。特に研究者や大学教員でもあまり通らないのは問題です。

この人数を中国やインドに比する割合まであげなくてはいけません。

Google の特殊事情を差し置いても育成はエンジニアにせざるをえません。というのも、基本的に、日本人が海外で自発的に生活する手段というのはほぼないからです。たしかに他人の都合に依存して滞在する方法はあります。まず、「紐付き」で企業や官庁などがスポンサーをしてくれて海外にいるように命じている場合。次に、「結婚」で配偶者に養われている場合。芸術やスポーツなどのプロ。ほか、事実上の通訳。そういう現地の人とは異なる手段での滞在の方法はありますが、それ以外で、海外で生活している人は、大学等の研究者かエンジニアの二択です。(金融系や建築系でモデルを書くなどの広い意味で数学的工学的技能を使う人はエンジニアに含めておきます。)

私の知人では例外は、カリフォルニアで幼稚園の先生をしている人、それと、フランスでパンを焼いている人の二人です。

たしかに、アメリカなどで弁護士資格を取ってくる人いますが、ほぼ間違いなくアメリカでは働けていないはずです。日本の帰国子女程度の語学力では、弁護士資格を取ることはできても、向こうで働くことは困難なのです。まあ、いちおう、インターナショナルスクールで教育を受けてアメリカで大学とロースクールに行った知人で、アメリカで弁護士ができている知人が一人いますので、この人も例外に入れておきましょうか。ただ、中学から大学までの大半を英語で教育を受けており、さらに日本人の多い都市で働いているという留保をつけてです。

不思議なことに、日本語が第一言語でない場合は働けている人がそこそこいます。ただ、いずれにしても、日本語が第一言語の場合は、中学から大学までの半分以上を英語圏で教育を受けなければ、とても英語だけで仕事ができる能力にはならないでしょうが、エンジニアと研究者だけはなんとかなります。

つまり、日本の将来の競争力に対して、エンジニア教育はクリティカルに効くはずです。

そして、教育の格差を埋めることです。その原因のかなりが家庭と大学における教育の欠如と人間関係にあります。

まず、大学における教育の話です。

東大では、入学時から学問をするとは何かが見えている人はあまりいません。そもそも、入学当初の数学の授業についていけるのがそもそも10%程度で、基礎学力すらおぼつかない状況です。そして、そこに対して、仲間を育てる水準の教育をしようという人があまりいないため、教育を受けられる学生はそれほど多くないです。

筑駒の同期たちは、5%がアラサーのうちに准教授相当になり、1割が助教相当になりました。たしかに、学者になることを考えていそうなのにならなかった人がある程度はいますので、それぞれ学年の1割2割を占める法曹や医師がほぼ挫折していないことに比べれば難しく、運の要素もあるのだろうという感じはしますが、それでも、これはおそらく学者になることが中学受験に比べて簡単になってしまっていることを意味しています。

日本のアカデミアは多くの場所で競争がないということです。組織の大きなところ、たとえば医学部はそれでもまだ活気があります。
ただ、実際に、信頼できる友人たちは特に人文社会系の教員は3割くらいは会話が成立しないと嘆きます。
この原因はなんとなく分かります。数学科では学部のうちに教授と1対1で毎週詰めるという話をしましたが、人文社会系の多くの学科では、教員あたりの学生数が多く、それほど博士進学率が高くないために、そこまでのコストが払えません。このため、教育が大学院からはじまるのですが、指導教員にはっきりとつくために、運が悪いと教育をなされないまま、博士を取り教員になっていくことになります。

そして、懸念に拍車をかけるのが大学における人間関係が薄いことです。
囲碁や将棋には田舎初段という言葉があって、正規の訓練を受けた人からは相手にされるほど強くないが、素人になら無双できるレベルというのがあるんです。レベル5くらい、と私は時々表現します。人間関係が薄いとこれに簡単になります。

多くの能力について、初級のときに身につけるスキルとその後にずれがあります。たとえば、数学をするにしてもはじめは九九の暗唱をします。それが得意であれば、レベル5くらいまでにはなります。それをよしとするかあしとするかはともかく、大学受験までは芸大でもなければ、田舎初段で通ってしまうというのが日本の水準です。東大でも数学が得意だと名乗って証明と称するグロテスクな画像をネットにあげている人いますよね。受験数学は好きだったが数学者とカジュアルにお話をしない法学部文学部医学部あたりではよく見ますし、理学部でさえもたまにいますね。レベル5で周りから賢い人と思われるまでになったとしても、そのあとに国家試験などでふるい落としがある場合は、やり方を変える必要に気が付かないと苦しむんですが。

田舎初段になるのは、別に学問だけじゃないです。たとえば、事務でも同じことが起きます。新型コロナウイルス感染症が日本に来た頃に「マスクを医療従事者に」というクラウドファンディングを立ち上げまして、1.5億円集めて500以上の病院にマスクを寄付しました。トップページの文章はだいたい口述筆記してもらったもので、また輸入元と配布先の選定を主にやっていました。あの頃は英語や中国語が読めたら明らかにおかしいと分かるような書類や品物が飛び交っていて、かなり立場がある人や法人等でも漫然と事務をしていると偽造された書類をさっくり踏むんですよね。京都大学が苦しんでいたので身投げする気分で突っ込んだんですが、結果的には、関税局とのやり取りが面白かったので「緊急事態における手続き変更・解釈変更――マスク・手指消毒薬不足に対しての財務省の応答――」というペーパーを税法学者と書けて、自分の中では辻褄が合いました。が、それはともかく、日本の資料読解力に危機感を持ったのは確かです。専門職でジョブ型の雇用されていると事務や執行のあたりがまったく見えなくなる方は多く、その点、日本の雇用制度の定期人事異動システムはよくできていますね。

話を少し戻すと、Google の入社試験は、そういう意味では田舎初段では難しい、ただ、レベルが10あれば通る可能性がでてきて、レベルが30くらいあれば余裕というのが私の感覚です。これの恐ろしいところは、なにかの分野では一廉でも別分野では田舎初段に容易になるということです。

学者とかでも、他分野に友人が十分にいれば、そう踏み間違えないが、孤独ならばどんどんおかしなことを言い始めます。よく分かっていないことに対して一定数が陰謀論を取るのは進化論的に正しいことだと思っていて、たとえば、新しい食べ物が手に入ったら、群れの1,2割はホールドバックエクスペリメントに割り当てて、食べないようにしないと、運悪く遅効性の毒だったら群れが全滅するでしょう。でも一部が残っていれば、それがまた繁殖して増えればいいのです。だから親子兄弟ほど仲違いをし、保険がかかるようになっているのではないでしょうか。このために、人は思い込んだら説得が効かないようにできているのだと私は思ってます。

これを止められるのは、かなり簡単に狂うことを意識していることと分野を超えた人間関係があることが揃っている場合くらいでしょう。

たとえばですが、最近、ひやっとしたことがありました。とある大企業の創業者会長と散歩しながらビッグバン元素合成の話をしていました。散歩しながら自然科学の話をするのはだいたいコーディング面接と頭の使い方が同じです。そこで、陽子と中性子の存在比がおよそ7:1になる理由を口にしようとしたところで違和感を感じ、あとで京都大学の准教授に聞いたところ、宇宙の膨張率と反応率の兼ね合いで、現在の人類の理解では必然ではないことが分かりました。

こういうことがあるので、ビッグバン元素合成の話をするときには信頼できる人にちょっと見てもらうわけです。このブレーキが壊れると簡単におかしくなります。

ちなみに、ネットで有名になるためには、田舎初段であることはかなりプラスに働きます。専門性があるとある種のためらいがありますが、仲間がいないとそれがなくなります。そして、ためらいがないほうが、一般に知的に見えるんですよね。

普段から様々な分野の学者と話し合っていると、およそまともではない専門家の意見がネットで飛び交っているのがよく分かります。特に、ネット上で声の大きい医師や弁護士の意見は、医学者や法学者の集まりでは評判が悪いです。
別に学者ならば問題がない人たちであるわけではなく、ネットによく書き込んでいる大学教授がクイズの定期便扱いされていて、どう勘違いしたらこういい出しちゃうのかというクイズが解かれているのはよく見ますね。

要は、教育を受けた人たちでさえ、仲間とお茶をしていないのです。そしてそれを見抜くのはとても簡単です。

もう一つは、家庭の話です。

エンジニアの人数で男女差がないのが中国でほぼ半々ですが、日本は2%という感覚でした。
まあ、そもそも総数もとても少ないのですが、それはともかく、男女比が問題となりました。米国では、人種によるエンジニア比率も人口比と大きくずれ、エンジニアの女性率は2,3割です。

ある日、私は東大の二年生の方に話を聞きました。すると「Google が私達なんかに興味を持つのか」と聞くのです。私は意味がよく分かりませんでした。そして、しばらくして、なぜ進振りで情報系を女性は選ばないのか聞いたところ、いろいろな理由を挙がったあとに、最後に「理学部は大学院がほぼ必須なので」といわれました。
まさか戦後生まれで大学院に行くことが人生の選択肢にないことがあるとは思わなかったので、私は本当にショックでした。30を過ぎるまでこれにまったく気が付かなかった自分自身への怒りで、視界がおかしくなっていました。浅くなった呼吸を整えて、「この程度の情報科学を学び、計算とは何かについて考え、学問がもたらす景色を見ることができると思えないことは、尊厳の……尊厳の問題だと思います。」とだけいいました。

昔、母方の祖母のところに FAX が毎晩届いていました。祖母の同級生で、第二次世界大戦とその後のごたごたで高校に行けなかった人が、一念発起をして高校受験をすることにしたので、英語を見て欲しいといって、英作文を FAX で送りつけて祖母に採点してもらっていたのです。私も二三回英作文の微妙な表現などで祖母の相談にのりました。そして、干支が一周くらい下の人たちと高校を卒業し、その後大学を受験して大学も卒業していました。

少し落ち着いた後に、私は、そういった話をいくつか思い出し、なるほど、と気がつきました。これは、私にとって、être を直接触られる話なのです。そして、最後に、新約外典のペテロ行伝に、ペテロがローマに戻ろうとしているキリストの幻を見て、自らがローマに戻り十字架に架けられることを理解する話があったことを思い出しました。

小銭のために大学に行くのも悪いとは思いませんが、私は、人として生まれたからにはこの世界について知りたいと思うのは自然であると思うのです。

ただ、男女問わず、どうしても家庭の期待がエリートになることであると、家庭の考えるエリートになるために必要な修行をさせようとします。

冒頭の方で少し言及した中学受験のアドバイザーをして御三家に入れる話でも、はじめに手を入れるのは親子関係です。まずは、親を制圧します。親が抑えきれなければ、子供を精神的に切り離して影響を受けないようにします。
だいたいの場合は、親が不安を子供にぶつけているのが悪いのでそこを止めるために、どうしても親子関係に手を入れるのが必要になります。なおさら悪いのが、親が学問をしたことがない場合で子供が苦痛を感じていないと安心しない場合です。親が高学歴のエリートでも教育を受けていない場合は多く、そうなっていることがあります。
そして、わるくて無意味、よくてもレベル5のための訓練を延々と強制されるおぞましい環境が現れるのです。

このように、家庭内の人間関係と大学内の人間関係、そして教育が問題です。常識が何かを教えてくれる人がいるだけでいいのに、家庭内どころか大学内でさえもそれが見つけられないのです。

それから、私はね、教育というのは、いつか、この人は自分を踏み越えていくと思って教えなくてはいけないと思っています。同僚たちでもそうではない教え方をする人いますが、私はこんなしょうもない内容で下々の者を調教するという態度が取れるのはちょっと理解し難いですね。

いや、正直、Google はそういうのを排除しようとしていますが、それでも儒教的な価値観が言動の端々に見られることがありますからね。実感として、北米の人々も人種差別から抜けられない人がそこそこいますね。としても、少なくとも排除しようという努力をしているだけましでしょうかね。少し前に、Google で James Damore というエンジニアが、"Google's Ideological Echo Chamber" という文章を書いて首になってましたね。当時一緒に仕事をしていました。こういう内容について話すことはなかったのですが、きっとしていたら、私は教育がどれほど後天的に人を変えられるかについて話したでしょう。私の父母世代とそれから下の世代の親戚の女性は大半が理系です。そこまでは普通にそうなるものです。(参考までに Google 元幹部の応答を私が訳したものもつけておきます。: さて、グーグル社員の書いた例の文章(声明)についてだ。 - 白のカピバラの逆極限 S.144-3)

最後に、京都帝国大学の学生たちが南方で血を流したからですが、その話はまたいつか。いや、周辺のエピソードの部分だけしてしまいましょう。

昔、神学博士に会ったことがあります。数学から経済学まで話題も広く、圧倒的な視野だなと思っているとあとで祖父がこう説明をしてくれました。あの人は京都帝国大学の経済学部で学んでいて学徒動員に取られ、南方で多くの級友たちを失ったと。それで帰ってきてから、なぜ自らが生き残ったかに悩み、卒業後に神学の道を選んで、イェールで博士を取ったと。祖父は最後に余計なことを言いました。残念なことに神学も(leider auch Theologie)博士の疑問に答えたかは分からないと。

これもまた、第二次世界大戦の末期の話です。法学部の助教授が徴兵されて広島で被爆し、数日後に京都の私の祖母宅までたどり着きました。そして、そこで、歴史上類を見ないことが起きた、近代国家が近代国家の市民を明白に標的にしたと述べたというのです。私はそこに救いを見出していて、どれほど取り返しのつかない惨めな目に(im unwiederbringlichen Elend)遭おうとも、それを理解できるならば、そこに救済があると思うのです。

そして最後に。高校時代から語学に堪能な人がいました。8カ国語を操り、在学中に旧司法試験に合格し、大学教員をしていました。私はその人の授業を受けていたのですが、他大学の教員にその話をすると、あの人が本当に知的だったときのことを君は知らないだろうといわれました。ある日、ちょっとした事件があってそれ以来キレを一切失ったのだと。
ときどき、授業中にまったく関係のない話を突然する人で、ある時、授業を受けていると、とある経済史の論文を読んだ者がいるか尋ねました。たしか、明治時代の製糸業の M&Aミクロ経済学的に扱ったものでなかなか面白かったと答えると、どこで読んだのか、と聞くのです。ああ、先学期にその先生による学生二人だけの授業を受けていて、そこで取り上げられたので読みました、というと、君は本当に幸せだな、君は本当に幸せだな、といわれました。
また、ある時、先生は「ところで君は司法試験を受けるのかね。」と聞きました。いや、受ける気はないというと、「受けてみなさい。受かるから。」と言いました。その時の表情。ええ。そう言いたくなった気持ちを私は分かるように思います。
この話を法学者の友人にして、救われている(ist gerettet)のだと、私が主張すると、その学者は私をたしなめました。

最後に

この面接が、最も胃が痛かったですね。模擬面接が終わった後のフォローアップを最もしたのもこのときでした。

今回間に合ったのは、競技プログラミングをやり込んでいたのを止めたからです。本人の努力と真摯さはもちろんですが、見ず知らずの人に常識を叩きこもうとする私の狂気も貢献していました。そして、そもそも別分野で一度教育を受けたことがあったということも大きな要素です。あれは友達とお茶をする程度のものだからです。ただ、その友達は常識人でないといけないのですが。

たしかに、Google の面接も、情報技術全体からしたら一部しか切り取っていないものです。そうであるからこそ、容易に対策することができるのです。
とはいえ、技術的に最低限のことが分かっていることになるので、社内で明らかな間違いに基づく決定がほとんどないです。私が経験した明らかに不可解な結論が出た議論は、セキュリティに関すること、統計に関すること、法律に関すること、くらいで、そのときは説明しても理解してもらえずおかしな結論になったのですが、結局すべて1週間程度で修正されていました。
つまり、基礎的な土台としては十分であり、そこから社内の大量の独自フレームワークを見て、エンジニアリングとは事物や環境の構築を通じて価値を届けることだということを習い、同僚たちと雑談をし、すぐに大きなインパクトを社会に与えるのでしょう。

せっかくなので、本を紹介したときに何を話したかと、もう少し時間があったら紹介していたであろう本を追加しておきます。

どの分野であれ、ここからここまでは常識という範囲があり、特にある程度体系化された学問はそれがはっきりしています。たとえば、ACMIEEE-CS は Computing Curricula を出しているので、それを参考にするのでもいいですし、関係する学科のカリキュラムを参考にして、その授業でどのような書籍が参考に挙げられているかを見るのもいいでしょう。

情報科学は、「作ってみた」「現実はこう」「理論的制限」の本を読むとよいと思います。たとえば、交通ルールを考えてみましょう。標識の形が各国違うように、その標識の形自体はただの約束として作られたもので、さまざまな歴史的な経緯の集積の末にできあがったものです。ただ、まったく無作為に作られるものではなく、たとえば、左側通行と右側通行が同じ道で混在すると問題を起こすことであったり、見通しが悪ければ一旦停止が必要であることであったり、速すぎる速度でカーブに突入すれば曲がりきれないから速度制限がいることであったり、さまざまな数学的物理的技術的制限がかかってきて、それ自体も知る価値があります。そして、それらを分かっている人が無人島を借り切って箱庭で交通システムを作ってみることがあり、その記録を読むと、何が起きているかとてもよく分かります。作ってみた系は意外と現実についても最低限の言及がありますね。

CPUの創りかた
「作ってみた」系の本として、CPU やメモリーの構造が分かりますので、このレイヤーを俯瞰するのによいでしょう。

・32ビットコンピュータをやさしく語る はじめて読む486
古い本ですが、このあたりで現在のマルチタスク OS をサポートする CPU が完成しますので、アーキテクチャについて、知っているべきことについてだいたいカバーしていると思います。欠けているものがあるとすれば、高速化や仮想化のための技法くらいでしょうか。興味があれば「プロセッサを支える技術」あたりがそれを埋めるでしょう。

・マスタリング TCP/IP 入門編
3ウェイハンドシェイクと輻輳制御が書かれているとなると、ほとんど選択肢がありませんでした。逆に、Tier 1 network とかは知らなくていいんじゃないでしょうか。

・岩波講座 ソフトウェア科学 オペレーティングシステム
オペレーティングシステムについての本はこれでよかったかはまだ迷いがあります。

オペレーティングシステム―設計と理論およびMINIXによる実装
一緒にタネンバウムも紹介していました。

・Webを支える技術
REST にこだわりが強い本ですが、そこは軽く流すようにと伝えました。

・ふつうのコンパイラをつくろう
コンパイラの大まかな原理は聞かれることがあるかと思います。言語に特有のことは出てこないので、そこは別で補ってください。

・Modern Compiler Implementation in ML
高速化の技法の部分は過剰かもしれません。

・30日でできる! OS自作入門
この本はたしか本屋では名前が挙がっていました。OS を作ってみようという本なのですが、周辺の技術、たとえば、ハードディスクのフォーマットである FAT16 の仕様が載っているのがいいですね。

プログラミングコンテストチャレンジブック
アルゴリズムが苦手だったら入れていたでしょう。最近の模擬面接ではコードがおぼつかない感じだと思うと、なんでもいいんですが、AtCoder の ABC 4問時代の C 問題くらいを埋めることをおすすめしています。あと、コードは書けたら終わりではなくて、どの行をどう変えたらどうなるのか、どういう場合に動かなくなるのか、どう書いたらより洗練されるのか、を考えるといいと思います。

・Introduction To Functional Programming
C++ Templates: The Complete Guide
・Purely Functional Data Structures
この辺は私の趣味ですが、関数型言語はなにか触っておいたほうがいいと思いますし、C++ テンプレートはやらかしでチューリング完全なので一回目を合わせておくべきですし、純粋関数型データ構造は見ておいて、いいんじゃないでしょうか。

・エキスパートCプログラミング―知られざるCの深層
・Modern C++ Design
・Effective C++
・Exceptional C++
競技プログラミングの始祖のあたりの人たちは、C++ 使うならばこのあたり読んでいた気がします。最近の C++ はちょっと違うものですが、大切なのは、見慣れていて使役しているものが本性はおぞましいという感覚じゃないでしょうか。

言語は何でもいいと思うのです。たとえば、従妹にはじめてプログラミングを教えたときは C++ でしたが、妹には Perl + SQLite という構成で教えました。Perl は、たとえばレキシカルスコープとダイナミックスコープが両方あるなど、とても教育的にいい言語です。ただ、とにかく表層的にしか理解していない人や本であふれていて、社会的なノイズのせいできちんと理解するのが大変です。私は、大学の同期を問い詰めるまで、振る舞いが分かりませんでした。なお、その人も合宿のメンバーで Google の同僚になりました。

・入門 コンピュータ科学 ITを支える技術と理論の基礎知識
これは、最近見つけたんですが、広く書かれていて、とりあえず、これもいいんじゃないでしょうか。


必要な能力は「椅子に座れること」「四則演算ができること」「本が読めること」だと思います。

そしてできるだけ多くの人と話をしてください。


なにかあれば、Twitter の DM 開放してますのでどうぞ。

twitter.com

 

エリート二世

桜蔭、東大から弁護士資格を取って中央官庁で働いている友人がインタビューを受けていました。

そして、SNS にインタビューを受けた旨を書いて、記事へのリンク(https://blogos.com/article/164974/)を貼っておりました。以下の文章は、その SNS のコメント欄に投げ込まれたコメントです。

 

-----

 

これ、すごい「エリート二世」らしい文章だと思うのよね。

 

田中裕子さんは、日本のエリートと呼ばれるような人たちと同質のつもりだったようだが、もともと同質でなかった、というのが僕の読んだ感想。

 

沖縄で1年過ごして世界観が変わる話は、要するに、それまで田舎に行ったことがなかったってことだよね。観光で上っ面を舐める以外。

普通は家族や親戚がいて、それなりに田舎の生活というのを知っているんだ。

東大でも、半分は地方出身。東京出身でも、その親はおそらく高度経済成長期における集団就職などで出てきていて、当時、大学進学率は2割程度。都会に出てきていても多くは別にエリートではない。

 

なんで、日本のエリートと呼ばれるような人たちが経歴の自慢をするかといえば、それが本人の周囲から突出していると自分で思っているからだよ。例えば家族とかから。裕子さんは、これが分からないからそれが鼻につく。「なに東大入った程度で、エリート気取りなの?」「なぜ大学院行った程度で、エリート気取りなの?」「どうして弁護士になった程度で、エリート気取りなの?」

それが期待なのは仕方ないじゃないか。彼らには、子孫のための足場を中央に作るという人生をかけた大きな仕事があって、それが無事にできそうなのだから、それ以上余計なことをしてはいけない。

 

その上、親の世代は、多くが教育の仕方が分からなくて、多くは苦痛を与えることが教育だと思っているときている。

さらに、職業選択もかたよる。資格業を好むよね。中国の田舎の子供たちが小学校教師と郵便局員になりたがると聞いたことはないか。それくらいしか知っている職業がないんだ。

こうやって、大学をでてもまだ優等生でいらっしゃる方ができあがる。

 

でも、裕子さんにはその水準がしょうもないものに見える。

 

なんで、この水準が当然になる路線が既定路線だったのか。親でしょう。

もちろん、この路線は自分で選んだと思っているかもしれないけれども、反対を受けないという時点で刷り込まれてたのさ。

なぜ二世が親世代から「既定路線の刷り込み」がくるかといえば、そりゃもちろん、親世代は田舎の生活を知っているからで、親世代が比較して判断する能力があるからだね。親がエリート一世だから。

 

で、沖縄に行って、漁業をしてもいいと理解した割には漁業をしてなくて、中央省庁で官僚をしている。ようするに、沖縄の経験によって、下々の者の暮らしが、思い込んでいたようなひどいものではないと分かり、そして、その上で、成り上りの「日本のエリートと呼ばれるような人」と共にいることを耐えてでも、エリートとして生きることを選んだ、という話だね。

 

全体像までもう少しだ。成り上がりは、もともと下々の者から這い上がってきたという自負があるのだ。それが、「エリートと呼ばれるような人々」がどうして鼻につく連中かの理由だろう?

 

だから、これは半歩先んじた話じゃないんだ。一周先んじていた人が、ようやく相対的な半周遅れを理解した話なんだ。もう少しで一周遅れの「エリートと呼ばれる人々」も理解できるようになるよ。

困難を乗り越えて、中央の足場として死のうとしている。本当に立派じゃないか。

たまには、両足で踏んでいるものをみてよ。

組織犯罪規制法によりタバコ会社に下った命令

アメリカのタバコ会社4社が、タバコの健康への影響について広告を出さなくてはいけなくなった。6年間の裁判の末、4社は組織犯罪規制法に違反したと認められ、テレビ及び新聞で広告をすることを命じられていたのだが、その広告がとうとう出る

広告は5種類あるのだが、その内容がどれもなかなかに凄まじいので翻訳して紹介する。

タバコの健康への悪影響

連邦裁判所は、アルトリア、R.J.レイノルズ・タバコ、ロリラード、フィリップモリスUSAに対して、タバコの健康への影響について次のように広告することを命ずる

  • タバコは人を殺す。だいたい平均1200人、一日で。
  • タバコによる死者の数は多い。殺人、AIDS、自殺、薬物、自動車事故とアルコールによる死者を合わせたよりも。
  • タバコは、心臓病、肺気腫急性骨髄性白血病に加え、口腔、食道、喉頭、肺、胃、腎臓、膀胱、膵臓の癌を引き起こす。
  • それから、タバコは、生殖能力の低下、新生児の体重減少、子宮頸がんを引き起こす。

タバコとニコチンの中毒性

連邦裁判所は、アルトリア、R.J.レイノルズ・タバコ、ロリラード、フィリップモリスUSAに対して、タバコとニコチンの中毒性について次のように広告することを命ずる

  • タバコは、とても中毒性がある。ニコチンは、タバコに含まれる中毒性のある薬物だ。
  • タバコ会社は、わざとニコチンの量を調整して、タバコによってニコチン中毒になり中毒であり続けるようにしている。
  • やめらんないよ。
  • タバコを吸うと、ニコチンが脳みそを変える。だからやめるのはめちゃくちゃ大変。

低タール、ライト、ウルトラライト、マイルド、天然などのタバコが、健康に対して大差ないことについて

連邦裁判所は、アルトリア、R.J.レイノルズ・タバコ、ロリラード、フィリップモリスUSAに対して、ライトタバコが普通のタバコと同じくらい害があることについて次のように広告することを命ずる

  • かなりの喫煙者がタバコをやめずに低タールやライトタバコに切り替えているのは、低タールやライトタバコの方が害が少ないと思っているから。それ、勘違い。
  • 低タール、ライトタバコを吸っても、基本的に同じ量のタールとニコチンを吸うことになるんだ。
  • どんなタバコでも、癌、肺の疾患、心臓発作、早死を引き起こす。低タールでも、ライトでも、ウルトラライトでも、マイルドでも、天然でも。安全なタバコなんてない。

ニコチンの吸収が最大になるようなタバコの開発と合成

連邦裁判所は、アルトリア、R.J.レイノルズ・タバコ、ロリラード、フィリップモリスUSAに対して、ニコチンの暴露量を増やすようにタバコを設計してきたことについて次のように広告することを命ずる

  • アルトリア、R.J.レイノルズ・タバコ、ロリラード、フィリップモリスUSAは、わざと中毒になりやすいようなタバコを設計してきた。
  • タバコ会社は、いろいろな方法で、ニコチンをできるだけ摂取させて効かせるようにしてきた。たとえば、フィルターの形状だとか、ニコチンができるだけ摂取されるように巻紙を選んだりだとか、アンモニアを混ぜて味を柔らかくしたりだとか、物理的にも化学的にも配合をいじったりだとかしてきた。
  • タバコを吸うと、ニコチンが脳みそを変える。だからやめるのはめちゃくちゃ大変。

受動喫煙健康被害

連邦裁判所は、アルトリア、R.J.レイノルズ・タバコ、ロリラード、フィリップモリスUSAに対して、受動喫煙の健康への影響について次のように広告することを命ずる

  • 受動喫煙は、毎年38,000人以上のアメリカ人を殺している。
  • 受動喫煙によって、タバコを吸わない大人が、肺癌および冠状動脈性心疾患になる。
  • 副流煙にさらされた子供は、乳幼児突然死症候群、急性呼吸器感染症、耳疾患、重症喘息、肺機能の低下などになりやすくなる。
  • 副流煙は、どんなに微量でも安全にはならない。

裁判所による命令の原文: https://ecf.dcd.uscourts.gov/cgi-bin/show_public_doc?1999cv2496-6227

なお、タバコの危険性についての広告は、2017年11月26日日曜日よりアメリカ全土で行われる。テレビコマーシャルは、52週間に渡って週5回、平日(月曜から木曜)のゴールデンタイムに45秒枠で3大テレビネットワークに流れる。新聞広告は、43社以上の日曜版に全面広告を14週間で5回出すことになっている。スペイン語版も作り、ネットでも Flash または Javascript を用いた動画広告を出す必要がある。

もちろん、費用はすべてタバコ会社持ちである。

さすがアメリカ。やることがえげつない。

さて、グーグル社員の書いた例の文章(声明)についてだ。

Google の社員が、社内で「社員の多様性を重視するのはよくない、男女は生物学的に違う」という内容の文章を公開し、それが社外にリークされたために、世界中で問題となっている。また、その社員は2017/08/07の月曜日に解雇されたらしい。

ところで、ヨナタン・ザンガーは、素粒子理論物理学出身のグーグル元幹部(主席技術者)で、おりしも、例の文章が問題になる直前に辞めたので自由にいいたいことが書けると下の文章を公開して話題になっている。ヨナタンに連絡して、翻訳と公開の許可を求めたところ、快諾していただけたので翻訳した。なお、原文が書かれたのは2017/08/06の日曜日であり、解雇の前である。

翻訳: http://d.hatena.ne.jp/nuc/20170809/p2

原文: https://medium.com/@yonatanzunger/so-about-this-googlers-manifesto-1e3773ed1788

きっと、もうグーグル社員(偉いやつではない)が社内で公開した文書のことは聞いたと思う。女性と男性は本質的に違って、女性がエンジニアになれるようにする努力はやめるべきだ、だって努力に見合わないんだもの。そういう文章だ。

先週までなら、ぼくはこれについて表立って発言することはなかっただろう。(かなり偉いグーグル社員として、)内部でこれに対して対処しなきゃいけないことになっていただろうし、秘密保持の規則があるから外で大々的にコメントすることは難しかっただろうね。

まあ、でも、たまたま、(さすがに、こんな形で発表することになるとは思っていなかったんだけど、)実をいうと、最近グーグル辞めたんだ、あ、別に上の話は全く関係ないし、どっちかというと、めっちゃいいことがあって辞めたんだ。詳しく知りたかったらここで読めるけどね。そんなわけで、これが起きたあと、ぼくはもうみんなと同じように部外者になってしまって、単にギズモードにリークされてたからこんな文章を書いたやつがいたっていうのを知ったっていうわけなんだ。

それに、ぼくはもう部外者で、これについて知っている機密情報は何も持ってないから、もしも社内にいたら社内で公開しただろう文章をここで書こうと思う。これはグーグルだけの問題じゃなくて、技術畑にいるすべての人間に関係があることだからね。

さて、だれかさんが、内部文章でジェンダーとぼくたちの「イデオロギーのエコーチェンバー(観念形態の残響室)*1」について書いたほうがいいと思ったらしい。だから、ぼくはここでいくつかはっきりさせないといけないことがあると思う。

(1) とても権威的に書いてるけど、この著者はジェンダーについて何も知らないようだね。
(2) もっと面白いかもしれないことに、この著者はエンジニアリングというのを分かってなさそうだ。
(3) そして、もっとも真面目な話として、この著者は、これを書いたら何が起きるか、彼自身や周りに何が起きるか、見えていなかったようだ。

1.

あんまり(1)について時間をかける気はない。もしも、だれかが、この文章のジェンダーに関するひとつひとつの意見が、どれくらい盛大に間違っていて*2、ここ何十年もなされてきた研究に対して真っ向勝負を挑んでいることかについて、つぶさに挙げたいというならまかせるよ。ぼくは生物学者でも心理学者でも社会学者でもないから、他の人に譲るね。

2.

ぼくはエンジニアだから、この仕事がどういうものかについてのこんな基本的なことについて何も分かってないのにここまでやってこれたっていうことに正直びっくりしたね。あの文章には、「ペア・プログラミングや協力を増やすことで、もっと人間指向の人向けの方法でソフトウェアを作ろう」とかあるんだけど、それは「人間指向の人向けの役割とグーグルはどうなれるか」っていう根本的な限定がついているし、なにがもっと驚いたって、「共感を重視しないこと」という題の章があって、解決策としてこれを提案しちゃってるんだ。

エンジニアリングをしたことがない人、あるいは、基本的なことしかしたことがない人は、こういうふうに思っているかもしれない。エンジニアリングというものは、コンピュータの前で座って、内部のループをめちゃくちゃ最適化したり、クラスの API をきれいにすることだ、と。たしかにね、みんなそういうことはするし、(ぼくもだけど)だいたいみんなそういうことするの物凄い好きだよね。それに、エンジニアリングの初心者のあいだにする仕事のほとんどはこういう感じだ。正しいか間違っているかはっきりしていて、淡々とあるところまでこなせばよくて、基本的な技術を磨ける。

でもね、グーグルの職務階級があるところから、等級の番号から言葉になるのは偶然じゃない。そこがちょうどある意味で一番初めの訓練期間が終了するところなんだ。誰かにじっくり見てもらわなくても一人で仕事ができるようになる。そこからようやく、本当のエンジニアリングがはじまるんだ。

エンジニアリングっていうのは、装置を作る技のことじゃない。問題を解決する技のことだ。装置は手段でしかない。目的じゃないんだ。問題を解決するっていうのは、まず、問題を理解することである。そして、ぼくたちがしていることのまさに目的が、外の世界の問題を解決することである以上、人々を理解すること、そして、つくったシステムと人々がどうやって関わっていくかを理解することが、システムを作るひとつひとつの過程において本質的だ、ということなんだ。(これは本当に大事で、だからいろいろな職務階級がある。PM の階級、UX の階級、とかいう、ある種の問題に特化したやつだね。でもね、スペシャリストがいるからといって、エンジニアはそれから関係がないってわけじゃない。真逆だ。エンジニアリングのリーダーは作るもののことを深く知らなきゃいけないに決まっている。それこそが仕事において最も大事なことだ。)

そして、一度作るシステムを理解して、なにが作られるべきかきちんと決まったら、引きこもってコードを書き始めるとでもいうのかい? まあ、趣味でやってんならそうだね。でも、プロ、それも「地球規模」とか「通信事業者クラス」とかいう言葉が少しも大げさじゃないようなシステムの仕事をしていたら、連携して協力することこそが仕事のほとんどだとすぐに気がつくはずだ。二十のばらばらのシステムじゃなくて、ちゃんと一つのシステムを作っているかどうかをはっきりさせることだ。依存関係やリスクがきちんと管理されているかはっきりさせることだ。将来の変更や発展が容易になるように、どこまでが一つの部品かを正しく設計することだ。あらかじめいろいろな種類の危険を、SRE(サイトの信頼性)、セキュリティ、プライバシー、不正使用といった各種の専門家チームとともに、プロジェクトが瓦礫の山となる前に押さえ込むことだ。

本質的に、エンジニアリングというのは、きみの同僚やお客さんと、協力して、協調して、共感することがすべてだ。もしも、だれかが、きみに、エンジニアリングというのは人々や感情の相手をせずに済む分野だ、といったならば、残念ながらきみは騙されているといわなければならない。一人でできる仕事は、かなり初心者のときにしかない。それも、だいたいは上司だろうけど、だれか上級者が、長い時間をかけてチームの中に、コードを書くのに集中できる組織構造を作ってくれたからだ。

例の文章の中で、「女性」の特徴として挙げられていたどれもが、エンジニアリングにおいて成功するために一番大事な特徴だということが分かるだろう。だれでもコードを書くくらいできる。そりゃ、L7 階級くらいまで昇進するまでに、技術を基本的に完全に習得していることくらいは求められている。でも、この仕事で本当に難しいのは、そもそもどういうコードを書くのか、どの目的をどの順番で達成するかのはっきりとした計画を練ること、そして、実際にそうなるのに必要な合意を得ることだ。

ここまでの話はぜんぶ、例の文章の結論が全部逆さまな理由になっている。女性の方が、社会環境の影響で、人々の感情的な欲求に気づくのが得意なのはそうだね。でも、これは、いいエンジニアになる理由であって、逆じゃない。ぼくは、はじめはこういうことができなかった。何年も何年もかけて、へとへとになりながら、学びつづけなくてはいけなかったことだ。(あと、付け加えておけば、ぼくはめちゃくちゃ内向的だ。20年前に、毎日複雑な人間関係の問題に取り組むのに向いているか聞かれたら、気でも狂ったかと聞き返しただろうね。)でも、これが、この仕事でいちばん重要なところだから学んだんだ。これが、いちばん途方もない挑戦や実りある結果を生むところだと分かったから学んだんだ。

3.

ってことはだ。(3)が一番深刻なところだということだ。いつも以上に無遠慮にいうよ。ほら、いま人事部の決めた迷路みたいな規則から自由でさ、いつもだったらものすごい機密指定がかかっている場所でしかいえないことを自由にいえるんだ。それと、ここの部分は、特に例の文章の著者に向けたものだ。

きみがしたことは、信じられないくらい馬鹿で有害だ。きみは、きみの同僚のかなりの部分が根本的にこの仕事に向いていない、政治的な理由でこの仕事をさせてもらっているだけだ、と主張する文章を会社の中で公開した。しかも、それを考えたり、内輪で言ってみるだけではなくて、企業全体でそれを正統化しようとする方法で表にした。だから、他の人たちは立ち上がって「おい、待てよ、それでいいのか?」と言う羽目になった。

ぼくはこのことはとてもはっきりさせておかないといけない。きみが書いたことがほとんど間違っているというだけじゃない。きみがしたことは、その会社にいる人々にひどい被害を与えた。そして、その会社の機能全体を無茶苦茶にした。そして、そうなることに気がつくことも、きみの仕事の一部だ。実際、それは他の仕事であってもまさにそうだろう。ぼくはもうその会社にはいさえしないというのに、ここ一日の半分は、いろいろな人と話して、きみが引き起こした無茶苦茶を掃除しなきゃならなかった。評判に与えた被害はいうまでもないけど、どれだけの時間と感情を動かす努力がこれにつぎ込まれたか、ぼくには想像もつかない。

そして、これのきみへの影響だ。ぼくがきみと一緒に働くように誰かを配属するとき、良心が痛むことをきみは分かってくれただろうか。女性を配属して、この状況に対処させるようなことはとてもじゃないけどできない。きみと働かなきゃいけなくなったけっこうな人は、きみの顔面に向けて殴り掛かるだろう。たとえ、似たような考えの人たちを集めてチームを作れたとしても、そのチームと協調してくれる人なんていないだろう。きみは教科書にあるような敵意に満ちた仕事環境っていうのを作り出したんだ。

もしも、例の文章を書いてなかったとしたら、もしかしたら、きみが順風満帆の経歴を歩むためにはどういうことができなきゃいけないか、きみとぼくは話し合ったかもしれない。それこそがまさにきみが「女性の技能」と類型化したことだ。でも、いまとなってはまったく違う話をしなくちゃならない。きみがどんなにコードを書くのが上手だとしても、そんなことができるひとは掃いて捨てるほどいる。きみの行動によって、きみが同僚たちに与えた悪い影響は、そんなことよりも遥かに重大だ。

考えを議論することの重要性について書いてたね。「ぼくたちは Go 言語を主に使うべきだ、とぼくは思うんだ。」と「ぼくの同僚の1/3は、生物学的にこの仕事が向いてないか、そうじゃなかったとしても、向いているとおのおのすべての人が心から納得するまでは、向いてないとして扱うべきだ、とぼくは思うんだ。」の違いを学ばなきゃならない。すべての考えは同じじゃない。ある種の考えについての会話は、最低限の正統性すらない。

もしも、このことで疎外されたと感じるなら、もしも、きみの物の見方が技術畑で基本的に歓迎されないもので口に出せないようなことだと感じるなら、まあ、その通りとしかいいようがないね。この見方は、発症した組織を根源的に腐らせ、人々を追い出すものだ。こういう見方をする人を受け入れて、こういう見方に特化していないような組織はぼくにはちょっと思いつかない。もうしわけないけど、長い将来に渡って、これはきみにとって深刻な問題として残るだろう。でも、ぼくたちの会社は、すべての人にとっていい環境を提供しようと全力を尽くしている。もしも、だれかがそれを妨害していることが分かったなら、解決策はかなりはっきりしているね。*3

ここにこんなことを書いたのは、ぼくがもうあの会社に所属していないから、どんなことでもおおっぴらに言えるからなんだ。でも、これは、絶対にはっきりさせておきたい。もしも、きみがぼくの指揮系統に入っていたら、(3)のすべての内容は「これは容認できない」という一文に書き換えられる。もしかしたら、一つ上の段落の中身はつけるかもしれないけどね。(3)の内容は、きみ、きみの上司、人事部と法務部のだれかが出席する会議で聞かされることになる。建物から警備員によって連れ出され、私物は後ほど郵送すると告げられるだろう。あと、それから、きみは、これは「自由な公開討論の名のもとになされている」と思っていて、上に書いたような重大な結果にはなにひとつ気がついていない。このことは、なおわるいことだ。せめてましなことじゃない。

*1:訳者注: 残響室は、外の音が入ってこなくて、中の音が漏れずに延々と反射し続けるように作られた、音響実験や録音をするための部屋のこと。外側のイデオロギーが遮断されていて、内側ではイデオロギーが延々と聞こえ続ける様子をエコーチェンバーに喩えて、単一イデオロギーに染まりきった場所、という意味。

*2:だいたいだけど、すべてではない。例の文章の中にあるとても大事な本当のことは、男性の性的役割はとても柔軟性にかけ、これは特徴ではなく、バグだということだ。実をいうと、これこそが、この文章にあるその他すべてのことを書かせた核心部のバグなんじゃないかとすら疑っている。でも、例の文章の残りの部分は、基本的に、このバグがあることを最適にするにはどうしたらいいかについてだ。バグを最適化しちゃ駄目。直しましょう。

*3:「寛容のパラドックス」について考える読者は、詳しくはこのエッセイを読むといい。

背景

Google の社員が、社内で「社員の多様性を重視するのはよくない、男女は生物学的に違う」という内容の文章を公開し、それが社外にリークされたために、世界中で問題となっている。また、その社員は2017/08/07の月曜日に解雇されたらしい。

ところで、ヨナタン・ザンガーは、素粒子理論物理学出身のグーグル元幹部(主席技術者)で、おりしも、例の文章が問題になる直前に辞めたので自由にいいたいことが書けると下の文章を公開して話題になっている。ヨナタンに連絡して、翻訳と公開の許可を求めたところ、快諾していただけたので翻訳した。なお、原文が書かれたのは2017/08/06の日曜日であり、解雇の前である。

翻訳: http://d.hatena.ne.jp/nuc/20170809/p2

原文: https://medium.com/@yonatanzunger/so-about-this-googlers-manifesto-1e3773ed1788

小保方論文の本当の憂鬱

小保方晴子さんが iPS 細胞を超える STAP 細胞という大発見をしたとして、2014年1月にマスメディアの寵児となった。しかし、翌月には、論文に怪しい箇所があると雲行きが怪しくなり、そろそろ論文撤回*1が決まりそうだ。
その論文の疑惑については、小保方晴子のSTAP細胞論文の疑惑 というページが詳しい。ただ、図や文章がコピーというようなところは誰でも分かるように書かれているが、致命的な箇所は専門家と思しき人の掲示板への書き込み*2の引用しかない。だから、誰にでも分かるように解説してみたい。


まず、生物は細胞からできている。細胞の材料はかなりがタンパク質だ。タンパク質の設計図が、遺伝子。人間の遺伝子は3万くらいしかない。

一つの遺伝子から作られるタンパク質はだいたい一つに決まっているのだけれども、大きな例外が免疫システム。免疫システムでは、外来からのいろいろ侵入物を認識するために、いろんなタンパク質に結合できる様々な形の"抗体"を作るんだ。抗体ももちろんタンパク質でできている。
この多様な抗体を作る原理を説明したのが、利根川進ノーベル賞に選ばれた業績、V(D)J遺伝子再構成(遺伝子再編成)というやつだ。

遺伝子再構成っていうのは、要するに、本来必要なよりもずっと長い遺伝子を用意しておいて、無駄なところを後で捨てると、捨て方によって、色々な種類ができるということ。
例えば、英文で {I You He She We} {ate drank killed} {books chairs tables trees}. というのを考えると、これだけでも5*3*4=60通り作れる。

これが、免疫細胞ができる(分化する)ときに遺伝子に起きているというのが遺伝子再構成で、それまでの常識を覆すものだった。1976年の話ね。
つまり、免疫細胞になる時に、ある遺伝子は、その大部分を捨て去ることで抗体のタンパク質を生み出せるようになり、その捨て方によって色々な抗体を持った免疫細胞ができるという話だ。

さらに、遺伝子再構成以外にも免疫細胞の種類を増やす方法があって、諸々合わせて、最終的に作られるタンパク質は10^18通り以上とかあるらしい。1キロ=10^3、1ギガ=10^6、1メガ=10^9、1テラ=10^12、1ペタ=10^15、1エクサ=10^18だね。


小保方さんの Nature の論文は、さらに衝撃的で、遺伝子再構成されたものが、元に戻る万能細胞になる*3って言っているんだ。酸につけるだけで。
これ、食いかけのゆで卵をお酢につけたら、生卵まるまる一個に戻ったみたいなものだよ。だって、遺伝子の大半は捨て去られてるんだもん。「過去何百年の細胞生物学の歴史を愚弄するものだ」ろ?
「誰も信じてくれなかったことが何よりも大変だった」というか、信じないよね。これが本当だったとすると、元の遺伝子がどこかに隠してあって、元に戻せるようになっていたこれだけ複雑な変化をしたものが、簡単に戻るように作られていた*4ということだから。

というわけで、実は、Nature 論文が出た直後から話題になっていたけれども、医者みたいな生命科学のユーザーは大絶賛して夢が広がりんぐしていたけれども、近い分野の研究者は追試がなされるまでは信じないと言っていた人のほうが多そうだった。そりゃ、マスコミにマイク向けられたら、そんなこといわないけどね。「誠に驚くべき内容で、続報に期待する」とかいうでしょう。揉めたくないもん。

Nature は今でこそ権威があるけども、商業誌でもともとはゴシップ誌に近い。とある助教は、Nature に出たということは嘘だと冗談めかして言っていた。別にいいんですよ。論文っていうのは、研究者同士のコミニケーション手段だから、別に論文がでたところでどうということはない。あと、査読だけど、一流研究室だと、論文を出していいという教授の許可のほうが大変で、そこを通れば査読にはまず落ちない。まあ、だから、Nature に出た程度で信じない、ってことね。


ここまでが前提で、その捏造が疑われている箇所というのが、STAP ができている直接のSTAP 細胞が免疫細胞由来である証拠とされているんだけれども、よく考えると、とんでもなく不思議。

簡単にいうと、「細胞の中の特定の遺伝子だけ選んで、その長さの分布を測る」ことができる技術があるの。それを使うと、
{I You He She We} {ate drank killed} {books chairs tables trees}. <- 長い
She killed tables. <- 短い
と、細胞内にどういう長さの遺伝子があるかが分かる。

論文によるとね、遺伝子再構成の前(ES 細胞)の遺伝子の長さをはかると、長い。遺伝子再構成後(免疫細胞)の遺伝子の長さをはかると、短い。そして、それを酸で処理した STAP 細胞は一部だが長い短いものと長いものがある。だから、これは、STAP 細胞が一部万能細胞に戻った免疫細胞由来である証拠だ、っていうんだ。ところが、実はこの時点で何かがおかしい。

というのもね、遺伝子のセットは両親から一組ずつ受け取る。だから、同じ遺伝子が二つずつあるんだ。これを対立遺伝子とかいう。対立遺伝子の組の挙動は、さまざまだ。たとえば、優性・劣性というのは、中学でやるね。つまり、優性な方の形質がでる場合がある。血液型のB型とO型の遺伝子を持っていると、B型が優性なのでB型になる。これが、A型とB型だと、両方の形質が出てAB型になる。
でも、抗体の場合はそうはならないんだ。対立する片方の遺伝子が発生の途中で使えなくなる(不活化する)んだ。同じ現象は、たとえば、三毛猫の毛の色でもみられる。「茶色で上書きする」遺伝子と「何もしない」遺伝子というのが対立遺伝子なんだ。他の遺伝子が、「黒地に白ぶち」なネコにしようとしているときに、「茶色で上書き」と「何もしない」が一つずつあると、一方が細胞ごとにランダムに使えなくなる。だから、「黒地に白斑」と「茶」の部分が体中にできる。これが三毛猫。遺伝子が使えなくなるといっても、捨てられるというよりは、鍵がかかる感じだ。オッドアイも同じ原理だ。

つまり、話を戻すと、「免疫細胞の遺伝子の長さをはかると、短い」っていうこと自体がおかしいんだ。対立遺伝子の一方は不活化しているから再構成されず、元の長さのまま、もう一方は抗体を作るために遺伝子再構成をうけて短くなる。だから遺伝子再構成後の免疫細胞の遺伝子の長さは「半分は短く、半分は長い」という結果が出るはずなんだ。このことは、免疫細胞の遺伝子再構成を知っている人なら、当然のことなんだ。ところが論文では長い方の存在がないんだ。


それでね、ここのところ、みんな悩んでるの。これ捏造だとしても、杜撰すぎる。なんで消しちゃったの??
しかも、同じ論文の別の figure では、免疫細胞の結果は、「半分は短く、半分は長い」になっていて、消されていないの。
一番素直に解釈すると、免疫細胞が全部短い遺伝子で、STAP 細胞に長い遺伝子が含まれていると、STAP 細胞の遺伝子の長さが元に戻ったという解釈になるから、そのように解釈できる余地を残すために消したということになるのだけれども、さすがに大変が捨てられた遺伝子が元に戻るというのは荒唐無稽だ。確かに、「半分は短く、半分は長い」免疫細胞が「半分は短く、半分は長い」STAP 細胞になっても、STAP 細胞が万能細胞になった証拠ではない。でも、そんな常識的なところを捏造してもバレるに決まってるよ。


でも、ここから、少なくとも一つのことが分かるんだ。
小保方さんだけじゃなくて、あの論文の共著者8人は全員「免疫細胞の遺伝子再構成」で対立遺伝子排除が働いていることを知らないってことだ。恐らく、問題があったのは小保方さんだけじゃない。

*1:撤回されそうな論文: Nature 505, 641–647 (30 January 2014) doi:10.1038/nature12968 Stimulus-triggered fate conversion of somatic cells into pluripotency | Nature

*2:問題の箇所はここである。「免疫で遺伝子やってるやつならわかる。TCRのDNA解析でレーン3のGLにバンドがない件は全然おかしい。……著者は意図的にGLがバンドがないように見せることによって、分化後のT細胞を用いたことを示そうと細工したようだ。しかし、TCRbetaでは対立遺伝子排除が働くので片方の相同染色体ではGL型の配列をもつはず(よってJEM論文のようにGLにバンドが出るはず)。それを知らずに馬脚を現した。」

*3:元に戻るとしたのは、推測が混じっていました。この推測は、画像の捏造のされ方や後出しのプロトコルと整合的に解釈したものですが、そこまでは書かれていませんでした。議論をしている最中に混同したようです。

*4:同上