【まつもとゆきひろ氏 特別講演】若手エンジニアの生存戦略に行ってきました

【まつもとゆきひろ氏 特別講演】若手エンジニアの生存戦略
https://supporterzcolab.com/event/141/
に行ってきたので、その時のレポート

生き残るには

死なないこと(冗談ではなく)
生き残るのは大変
エンジニアとして成功するのは非常に難しい。

私たちは、戦略を立てて生存していかないといけない。

戦略は、人によっては違う。
成功した人と同じことをやっても、成功できるとは限らない。
成功した人と同じことをやってもダメ、同じ戦略を立ててもだめ。

だが、戦略の建て方などを自分に当てはめて、参考にして考えることはできるかもしれない。
成功した人の例を一段抽象化して考える。

成功者の得意なこと

数学が得意とか英語が得意とかでなくて、
成功者に共通して得意であることが、「パターン認識」をする力。
成功するパターンがわかるという力。

バタフライ・エフェクト
成功した人と同じことをしても同じ結果がでるとは限らない。
違う背景・違う環境・違う時代…で同じことをやっても同じようにはならない。
具体的な内容よりも、パターンを学んで自分に当てはめることが大事。

今回のMatzの講演も、パターンをみつけられるようにしよう。

Matzさんの背景

幼少期

親が買ってきたBasicの実行環境をいじって遊んでいた。

学生の時代

Pascalの本を購入
Basicに比べてPascalはいろんなことができるすばらしい言語だ。
当時はコンパイラは別で20万円ほどで買わないといけないものだった。
お金がなかったので、頭の中でコンパイルして実行していた。

そのとき思ったこと
「世の中には自分の知らないプログラミング言語があるんだ」
「そしてそのプログラミング言語は、何かをデザインしたものなんだ」
「自分でプログラミング言語を作ってみてもいいな。。」

当時は、プログラミング言語を作るための知識を身につけるまでには至らなかった。

大学時代

大学でプログラミングができる学科に進学
プログラミング言語研究室に入る。
これでプログラミング言語づくりができる!!
研究で自分がつくったプログラミング言語の発表を行う。

就職時期

東京で働きたくないと思った。
通勤の苦痛を味わいたくなかった。
本社は東京だが浜松支社がある会社に就職。

バブル期だったので同期は200人
コンピュータサイエンスを学んだことがある人はMatzさん含めてたった6人
200人中6人しかすぐに動けるひとがいなかった。
鶏口牛後である。
そこで、いち早くソフトウェア開発の仕事に就くことができた。

当時は、ソフトウェア開発といえば、
すでに決められたものと形にするだけのような一面があった。
だが、Matzさんのところは、自分たちに裁量権があって、
「どうあるべきか」を決められることができた。

就職先でのある日

その日は大掃除だったのでスーツじゃない服装だった。

いつもは、スーツをきて仕事をしている。
スーツであることは特に規則ではないけど
みんながそうしているからそうしているだけだった。

研究所だし、お客に会うわけでもないのに
なぜスーツを着る必要があるんだろうと疑問に思った。

その次の日からカジュアルな服装で出勤するようになった。

そこで得た教訓は
「”みんながやっているから“は我慢の理由にならない」
ということ

「会社って苦痛が伴うものだから」
という固定観念は考えなおしてみるといいかもしれない。

プログラマ3大美徳

  • 怠惰
  • 短期
  • 傲慢

一般的な美徳そうな言葉

  • 勤勉
  • 寛容

勤勉の悪

我慢して耐えることが美徳のような思想
なんとなくそういうものだと思ってやっていると
自分の意思がない。
我慢の理由にならない我慢になる。

そうではなく、結果を出せば良い。

だが、日本にありがちなものとして、

  • 生産性より忍耐という風潮
  • 社会的圧力
  • 空気を読む
  • 理不尽を拒否せずに我慢する。

というのがある。

理不尽は積極的に拒否しなくてはならない。

苦痛に耐えていると、苦痛に強くなる。
そして、苦痛に対して鈍感になる。
だが、「致死量」は変わらない。
ある日、致死量に達してしまう。

仕事は大事だし、自己実現のためにも耐えることは大事だけど
命よりも大事なのだろうか?

みんながやってないけどやってもいいこと

やってはいけないと書いてないけど、できること。
裏技
少しの労力で楽をする。
我慢しない。
空気を読まない。
目的を明確化する
→ 自分がやりたいことはなんなのか?目的はなんなのかを明確にする
→ そうすると限られた目的の中で競争するので、競争率の波に飲まれることがなくなる。
don’t work hard

どうやって一所懸命働くことを「拒否」するか

自分の意に沿わないことは積極的に拒否をしよう。
拒否してもなんとかなると思って。
上司の言うことを完璧にこなすことで、私たちはvalueを届けているわけではない。
私たちは自分の働きによってvalueを届けている。

あと、拒否したら意外と通ることが多いと思う。
大抵の人は拒否する前に空気を読んでしまうけど。。。

7つの習慣の話

「7つの習慣」という本がある。
そこに書かれていることだが、
私たちが何かと付き合っていくとき、
長続きする付き合いかたは

  • Win-win
  • No-Deal

の2種類。
(場合によっては)逃げてもいいんだ
死ないために。

みなさんに伝えたいこと

  • 我慢に価値を置かない
  • 自分を知る
    自分のスキルセット、やりたいこと、目的についてもう一度考えてみよう。
    自分の武器になることを見つけられたら、それを伸ばして行こう。
    そしてそれを続けることが大事だ。
    「こっちにいけば幸せになりそう。」という方向に進もう。

プログラマーの仕事は問題解決

  • 問題把握
  • 問題解決
  • ソリューション提案
  • ソリューション実装
  • テスト
  • 改善

プログラマーの仕事の大半は、コードを書くのではなく
問題解決をしている。
これが本質である。

これと同じ原則を人生に適用しよう
人生の問題解決も同じようなプロセスで大体の問題が解決できる。

  • 問題把握
  • 問題解決
  • ソリューション提案
  • ソリューション実装
  • テスト
  • 改善

プログラマは問題解決能力がとても訓練されている
我々は人生の勝ち組になりやすいのかもしれない。

コントロール意識

エンジニアは叱られると生産性が60%低下すると言われたりもする。
強制されると生産性が低下する
逆に言うと、自分をコントロールする意識が生産性を高める。

生産性が高まると良いことが多い

  • 生産性を高めて疲れないようにする
  • 生産性を高めて早く帰れてリフレッシュする

など

万能感

我々がプログラミングしていて楽しいと思えるのは
万能感があるからではないか。
なんでもできそうな感じ。
0から1を生み出す感じ。
アマチュアの人が少し学んでもプロの人と遜色ないレベルまで行きやすい。

コンピュータに仕える奴隷にならない。

私たちは、コンピュータをちゃんと動かすための行動をしている
「コンピュータにちゃんと動いてほしい」という感情が強い。
するとだんだん、コンピュータのほうが自分より立場が上なんじゃないかと感じるようになってしまう。
「コンピュータに仕える自分」という関係になってしまう。
これを、”アルファシンドローム“という。
自分の人生の主人公はコンピュータではなく、自分にならないといけない。
あくまでコンピュータを仕おう。

インプット・アウトプット

インプットは大事
だが、差別化要因になりにくい。

アウトプットは差別化要因になりやすい。
だが、アウトプットはしんどい
面倒・羞恥心

例えば、高収入芸能人だったり、高収入ユーチューバー
「あんなの誰でもできる」という感情は半分本当
彼らのすごいところは、心理的障壁を超えているということ
大抵の人は、「はずかしい」「チャンスがない」ということを理由にやらない。

冷静に考えると
クオリティは棚上げにしてとりあえずやってみるのが大事。
人間の可塑性にかける

立場が変わることによって、人間は考え方が変わったり成長できたりする。
心理の怖さを克服することが大事。
心理的側面に興味をもとう。

我々の仕事に当てはめると、

  • クライアントの心理
  • 自分の心理

など

まとめると

  • 理不尽に打ち勝とう
  • 我慢しなくていいことを我慢しなようにしよう
  • やってもいけないことでないことはやろう
  • 問題解決能力を身につけよう
  • コントロール意識
  • コンピュータを仕う側になろう。
  • 心理的側面に関心を持とう。

質疑応答

Q. 100人レースの1位と10人レースの1位のどっちを目指すのに価値がありますか?
A. 10人レースの1位の方。「1位であること」に価値があることもある。
競争率の少ない10人レースでしっかり1位をとることが大事。

Q. Matzさんのライフチェンジンクになるような名著はありますか?
A. 「達人プログラマー」最近複版したやつ
あと、「バベル17」

Q. 日々の情報収集の仕方を教えてください。
A. あまりたいしたことはしてない。twitterのrssリーダーを上から見て行ったり。
1日の結構な時間をrssリーダをみている。
hacker newsというのをよく見ている。
次代の技術に使われるような内容が得られる。

Q. 大学でコンピュータサイエンスをやってない人が今からでも始めるには?
A. 大学では体系的な勉強をするが、卒業してから体系的な勉強をするのは現実的ではない。
ボトムアップ、自分で勉強しながら分からないことが出てきたら都度調べるというような
芋づる式で調べていくのが良いのではないかと思う。

Q. Matzさんは講演などよく行っているが、自分は自由だと思いますか?
A. やっていることの期限などがもちろんあるが、理不尽な要求を飲まないといけないことなどがないので
そういう意味でいうと自由だと思う。

Q. あるネットの記事をみていると、海外からの日本エンジニアの評価のようなものがあった
ざっくり言うと、日本人は最新技術に疎いという評価だった。
Matzがいるじゃん!という反論をしたが、「Matzは多様な価値観を持っているから」ということだった。
キリスト教の宣教師をやっていたそうだが、多様な価値観が役立ったことはあるか?
A. キリスト教の宣教師の価値観が役立ったことはあまりない。
英語のコミュニケーションに少し役立ったくらい。
ただ、多様な価値観を持っているのは、今日話したようにいろいろなことを考えることができる。

Q. 最後にMatzさんから一言
A. 私たちは組織に属しているが、組織のほうが上の立場であるという固定観念は持たないようにしよう
同じ対等の立場、むしろ自分のほうが立場が上だというくらいの気持ちでいよう。
会社から理不尽な要求をされたら「No-Deal」付き合わない選択肢も考えよう。