今日もエメラルド気分

1990年生まれ文系プログラマーの軌跡(予定)

【まつもとゆきひろ氏 特別講演】若手エンジニアの生存戦略 要約

なぜ参加したか?

このイベントに参加しました。

supporterzcolab.com

ruby kaigi直前なんで、ホットな話題だったため

若手エンジニアの生存戦略

自己紹介

「松本」というありふれた苗字なので、「まつもと」とひらがなで名乗るようになった。

英語圏では「Matz」

Rubyを作ったことで日本で一番有名なプログラマになる。

松江市名誉市民

若手エンジニアの生存戦略

結論

「死なないこと」

戦略を立てて、実行しないと生き残るのは厳しい!!

戦略とは「人によって違う」

他人の成功を真似しても、成功する可能性は低い。

スタートアップ成功者に共通していることは「パターン認識能力」

Matzの来歴

12歳でボードマイコンに遭遇

15歳でポケコン遭遇

pascalを通して、プログラミング言語とは何か目的があって作られていることに気がつく。

人が作ったものではなく、プログラミングを作ってみたいという思いが芽生える。

大学でプログラミング言語研究室に入る。

既存言語のコンパイラの最適化をやる研究室

就職に関して東京で就職したくないと思い始めた。

結果として、浜松に就職

同期200人、CS選考6人

最初の仕事は、社内システムの開発

ここでのよかった経験は「どうあるべきか」決められる。

この頃の一般的なSIerは、クライアントが構成等を決定するため裁量権がなかった。

我慢の価値

「みんながやっている」は我慢の理由にならない。

会社ではスーツを着用していたが、嫌いで仕方なかった。

就業規則には、服装の規定がなかったので、ある日ジーンズで出社した。

そしたら特に何も言われずに、退職までずっとそのスタイルを維持した。

プログラマーの3大美徳」

  • 怠惰
  • 短気
  • 傲慢

3大美徳の優先順位は、上記の通り

怠惰なプログラマーほど良い

逆にプログラマーとして勤勉は危険

我慢して勤勉に務めるのは危険、無意識の価値構造を作る。労働は我慢ではない。

我慢して勤勉が美徳とされる無意識の社会的圧力は、おかしい。

Matz自身、「周囲の子供と同じことができて当たり前」という社会的圧力のせいで辛い幼年経験を送った。

理不尽を要求してくるのは「死の鎖」

我慢に対して耐性がつく === 鈍感になる

しかし、「致死量」は変わらない。 === 我慢の許容の限界は変わらない。

そのため、我慢して、体が限界までいってるのに気がつかず体を壊すこともある。

ルールに書いてないことをやって楽をして、我慢しないことが大切

空気を読まない

目的を明確化する。

Matzの場合は、就職する場所を東京以外にしたいという目標のもと就職活動をした。

どうやって「拒否」するか

転勤を正面切って断った。

その結果、リモートワークのような働き方になった。

社会的圧力を自覚する。

理不尽に声をあげること。

Matzは、職場はリスペクトできる関係を構築できる職場を、選んでいる

リスペクトできる関係を構築する方法は以下の2通り

  • Win - Win
  • No deal

理不尽な取引は行わない。

会社と従業員は、対等な立場である。

生存戦略

■我慢に価値を置かない

前述の通り

■自分を知る

スキル、得意なこと等を棚卸する。

その中で競争率が低い領域を選択する。

Matzはプログラミング言語の作成する能力が高く、プログラミング言語作成に興味がある人が少ないため、そこの領域を選択した。

■継続する

Ruby一筋25年

■勘

社会的圧力を嗅ぎとる勘がよかった。

意識的キャッシュバリデーション

There are olny two hard things in Computer Science:
cache invalidation
and  naming things.
-- Phil Karlton.

キャッシュの扱いは難しい。

昨今は大企業でも潰れることもある。バブル期の大企業信仰は崩れた。

なのに未だに大企業信仰があるところもある。

その思い込み(キャッシュ)を削除する。

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

プログラマーの業務は多岐に渡る。

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

トータルとしての問題解決ことがプログラマーの本質と言える。

コントロール意識

生産性が落ちる原因は「貶す」「叱る」

叱るとエンジニアの生産性が60%低下

強制されると生産性低下

コントロール意識が生産性を高める。

裁量権が大きいと、生産性が高くなる。

プログラミングのメリットは「万能感」

マチュア、初心者でも結構いいセンまでいく。

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

インプットは必要だが、それはエンジニアの差別化には繋がらない。

差別化に繋がるのは、アウトプット

Youtuberなんか「誰でもできる」と思い込む。

これは半分本当

Youtuberの素晴らしいところは、心理的障害を乗り越えているところ

心理的障害 === アウトプットが怖い

人間の可塑性

しょぼいアウトプットでもやっていけば、成功の可能性がある。

やらないとそれがない。

心理的側面に興味をもつ

まとめ

理不尽を拒否

問題解決を極めよう

心理的側面に興味をもつ

思い込みを捨てよう

感想

Matzさんは、こんなに空気を読まない人だとは思いませんでした。

(良い意味で)

一番参考になったのは、自分のスキルを定期的に棚卸をしてブルーオーシャン目指すという戦略

これは真似すべきかなと思っています。