まつもとゆきひろ氏の講演「若手エンジニアの生存戦略」を聴講した

2018-06-23 まつもとゆきひろ氏 特別講演 聴講メモ

Rubyの親として知られる まつもとゆきひろ 氏 の講演をWeb配信で聴講した。
粗くて読みづらいメモだけど、共有のために公開したいと思います。

運営サイドによるオープニング

  • サポーターズ広報 @satoazu_sp ぜひフォローして
  • "#エンジニア生存戦略" のタグで質問できる
  • 今日の目的
    • Matz のご尊顔を拝む
    • エンジニアとしての生き方を考える
    • 何かを始めるきっかけにする

Introduction

  • インターネット上でのあだ名→若いうちに
  • エンジニアの働き方
    • エンジニア:比較的、給料が高い職業
    • 一方で、大変な働き方をしている人も多い。
    • たくさん働くのが当たり前?みたいな環境が多いのも事実
    • 働き方は、人によって違う
  • 成功者が共通して得意なこと
    • パターン認識能力が高い人」が成功することが多い
    • メタ戦略、メタ思考
  • パターン認識≒抽象化
    • 具体的なものほど寿命が短い→抽象化することで寿命が伸びる
      • 例えば、アルゴリズムの本は、アプリ開発の本よりも寿命が長い
      • アプリ→言語→OS
      • レイヤが下になればなるほど、普遍的なものになり、寿命が長くなる
    • しかし、抽象化は万能ではない!
      • アーキテクチャ宇宙飛行士
        • 抽象化しすぎて誰もついていけなくなる
      • 抽象化の漏れ
  • ロールモデル
    • 他人と同じことはできない
    • 例えば、Matz氏が若手エンジニアとして生き抜いた時代は、今とは違う
    • バタフライ・エフェクト
  • 今日の課題:Matz氏のお話から、パターン認識を引き出す

「若手エンジニア」だった頃のMatz氏

  • 高校時代
    • Lisp, Logo, Smalltalk がお気に入り
    • 昔(インターネット時代の前)なので、調べるのが大変だった
  • 大学時代
  • 卒業後
    • 東京で働きたくない(∵通勤の苦痛)
    • 浜松に就職
      • 職住近接
      • バブル時代→同期200人、CS専攻6人
      • 結構優遇!?される
    • 社内システムの開発に従事
      • 「どうあるべきか」を決められる裁量の大きさ
      • 勝手にスーツやめて、Tシャツにジーンズで行った
  • Matz氏的なパターン認識と抽出
    • 鶏口牛後
      • 大きなところで引っ張られるよりも、小さなところで先頭にたつ
    • 「我慢」の価値
      • 「頑張って」という言葉って、実は英語に訳すのが難しい。
      • 壁にぶら下がって、落ちないように耐えているイメージ
      • つまり、頑張って=我慢して→社会的な圧力
    • 目的のある我慢 と 目的のない我慢 がある。

プログラマとして生きていくには

  • プログラマ3大美徳
    • 怠惰
      • 楽するために、いいプログラムを書く
    • 短気
      • コンピュータが怠惰な時に感じる怒り
    • 傲慢
      • 人様に対して恥ずかしくないプログラムを書く
  • 労働は我慢ではない
    • 報酬は、価値の対価
    • 理不尽は拒否しなければならない(∵死の鎖)
    • ポジティブ思考
      • 世の中には、「みんながやらないやってもよいこと」がある
      • ゲームでいう裏技
      • ポイント(鍵)
        • 空気を持たない
        • 目的を明確化する
        • 成果を上げる
      • Don't work hard, Work smart
  • どうやって理不尽な要求を「拒否」するか
    • 価値観にアプローチ
      • 我慢:上に立っている人の自尊心を満たすためだけのもの
    • 理不尽に対して声を上げる
      • 「私が働くのは、あなたの奴隷になるためではありません」という意識
      • これは、決してマイナスにはならない。
    • 勝ち負けの組み合わせ
  • 自覚的:脳内プログラムのアップデートを意識的に行う
    • これは結構めんどくさい
  • Phil Karlton: コンピュータサイエンスにおける2つの難しいこと
    • キャッシュの無効化
      • 意図的にキャッシュのインバリデーションを行うのが大切
    • 名前をつけること
      • 概念に名前をつけている
  • プログラマの仕事は、問題解決
    • 問題把握
    • 問題分析
    • 提案
    • 実装
    • テスト
    • 改善
  • 失敗したことに対して叱ると、生産性が低下する
  • コントロール意識:アルファシンドローム と 逆アルファシンドローム
    • 「上司からの支配」と同じものを「コンピュータ様」に対して感じている
      • 例えば、バグ取り
    • 本能:誰が主人か?
    • 自分の人生の主人公になれているか?
  • インプットは必要
    • しかし、インプットだけでは差別化にならない
  • アウトプット
    • これは、少しハードルが高い
    • 例えば、自作のプログラムをオープンソースにするときなど
    • クオリティはとりあえず棚上げ
      • 置かれた状況に応じて、人間は変化できる

Conclusion

質疑応答

  • プログラマ35歳定年説
  • 最近注目している言語
    • Elixir、Erlang
    • マルチコア、マルチコア、クラウドといった現代の計算機環境を考慮して設計されている言語
  • 羞恥心を捨てる怖さについて、Matzはどう乗り越えてきたのか
    • 昔はネット発達してなかったので、今と違って炎上しにくかった。
    • 狭い範囲でのアウトプットを繰り返しを行うのがいいのではないか
      • 例えば、勉強会・小さなカンファレンスなど
  • 本のおすすめ
    • 文字情報は、インターネットを通じて手に入る
    • ライフハック大全」
    • 「巨神計画」「火星の人(オデッセイの原作)」:問題解決の本
  • アメリカ人エンジニアに当てはまるけど、日本人エンジニアには当てはまらないこと
    • 組織の違い:例えば、採用活動が根本的に違う。
    • お金の運用についての文化
  • 一つのことを深くやるのか、分野を広げていくのがいいのか
    • すぐに無くなる気配がない分野:突き詰めていくのはアリ
    • 状況に応じてマーケットがshrinkする分野があるのも事実
  • 若手と中年での生存戦略の違い
    • ズバリ、体力
    • より高い価値をアウトプットすることが求められる
  • 新しい情報をどこから仕入れているか
    • RSSSreader に hackernews とか突っ込んで見る
      • 見出しだけでも見るようにしている
  • 上司として、部下がコントロール意識を持てるようにする工夫
    • 上司は、部下がSOS出したときだけ助け舟を出せばよい
  • Matzが今20代だったら何やってた?
    • ゲーム???
    • ゲームがなかったから、プログラミングにはまったのたかも。
  • Matzが考えているゴール
    • 「理不尽ではなく、ちゃんとした努力が認められる」の道筋を示し続けること

感想

  • 「最初のうちはアウトプットに対して抵抗があるけど、小さなコミュニティからはじめて慣れていくのがいい」というお言葉が印象的だった。このブログやツイッターはもちろん、地域でやっているハッカソンのような小さなコミュニティに参加して、もっと交流しなければと思った。
  • 「意図的に脳内キャッシュのインバリデーションを行う」というのが印象的だった。自分の中に染み付いた常識や、価値観をフラッシュするのは難しいけど、文字通り意図的にインバリデーションを行えるエンジニアになりたいと思った。
  • コントロール意識として、コンピュータとの主従関係が知らない間に逆転しているというのが、なるほどなと思った。確かに、これまでは「支配側」としてコンピュータに接したことがあまりない気がする。(研究で、カーネルパニック起こしたマシンの電源をブチンしたときくらい?)
  • Web配信の講演を聞くのは初めてだったけど、質問しながら話を聞けるのがいいなと思った。