イベントレポ：まつもとゆきひろさん講演会「若手エンジニアの生存戦略」

2019年7月20日に開催されたまつもとゆきひろさんの講演会に参加してきました。
[イベントページ](https://supporterzcolab.com/event/841/)

そのときのメモです。
後日、内容をまとめます。

## 講演
- 好きじゃない言葉「若者の柔軟な発想」
    - 20代で大きな成果を上げる人は多い
    - Rubyを作ったのは27歳のとき
    - けど、柔軟な発想ができるのは訓練が必要。
- 学校教育では柔軟な発想ができる構造になっていない
    - 一定年齢を押し込める檻
    - 子供を親から預かっている
    - 試験による達成度調査
        - 時間制限
        - 資料持ち込み不可（仕事だったら資料持ち込み不可はありえない。ググれないのもありえない）
        - 効率よく回答することが求められている
        - 苦手を克服することが大事（苦手科目を伸ばす）
    - 柔軟な発想とはかけ離れている
- 社会人になるとルールが変わる
    - 一芸に秀でる人のほうが重宝される
    - ルールが変わることは教えてもらえない
    - 満点がない
    - 長所を活かす
    - 欠点があっても構わない
    - 上司もルールが変わっていることを認識していないこともある
- ルールが変わっていることに気がついていないことで無理が生じる
    - 若者にしわ寄せがくる
- 人生の裏技１：ルールの違いを認識する
    - 学生時代とルールが違うことを認識
    - 得意を伸ばす
    - モチベーションが鍵
    - あなたのモチベーションはどこにある？
- 裏技2「Win-Win関係を理解する」
    - 書籍「7つの習慣」
    - 持続可能な取引は2種類
    - Win-WinとNo deal
    - 取り引きしない＝逃げてもいい
    - （場合によっては）逃げる
    - 「石の上にも3年」特に20年の3年は長い
    - IT業界はある一定の努力をすれば死なない
- 裏技３：パターン認識能力
    - ビジネス書
        - 面白いけどあまり役に立たない
        - 同じことはできないから。同じ結果になるとは限らない。
    - バタフライ・エフェクト
    - 成功者の得意なこと
        - 学校の成績ｰ>関係ない
        - 国籍ｰ>関係ない
        - IQｰ>関係ない
        - 共通項：**パターン認識能力が高い**
        - 抽象化して考えることが大事。メタ戦略。メタ思考。
    - 具体的なものほど寿命が短い
        - アプリ解説書 vs アルゴリズム教科書
        - アプリｰ>言語ｰ>OS
    - 抽象化のデメリット
        - アーキテクチャ宇宙飛行士
        - アーキテクトは抽象化して考える
        - あまりにも抽象化をしすぎて大気圏を突破する
        - 例外があって抽象化の漏れがある
    - 大きなグループに所属する価値
        - 最初に就職した企業では、IT初心者の人が多かった。
        - 大学時代にプログラミングをやっていたから、面白い仕事を任せてもらえた
        - 親ブロック、嫁ブロック
        - （経験談としては）小さいグループの方が有利なことが多い
    - 差別化戦力
        - 現代では、昔の時代で言う「普通の生活」を送れなくなっていきた
        - 「なにで差別化するか」
        - 具象化の難しさ
    - 世の中には理不尽なことがある
        - 上司に言われたけど納得できない
    - 労働は我慢ではない
        - 報酬は価値の対価。我慢の対価ではない。
        - みんな勘違いしている
        - 理不尽は拒否しなければならない
        - 理不尽を受け入れると他の人にも理不尽が飛んでしまう
    - 我慢に鈍感になっていく
    - 集中、感染、麻痺
    - 向上性バイアス
        - きっと大丈夫と思ってしまう
        - 東日本大震災にて。「ここまでは津波が来ないから大丈夫。ここ何十年起きなかったから大丈夫」
        - ブラック企業での働き方も同じ
    - 致死量は変わらない
        - いつか限界を超える
- 社会には「カジュアルな我慢」が満ち溢れている
    - Don't work hard. Work smart
- 常識を疑う
    - 社会的圧力を自覚
- 相互リスペクトできる関係を構築することが大事
    - できなかったら逃げてもいい
    - 死なないために
- バグ原因の95％の思い込みが原因
- あなたの得意は？
- Matzさんの場合
    - プログラミング言語を作りたい
    - 継続すること
    - 勘がいい
    - （社会的圧力に対する）鈍感さ
- 空気読む能力が高い人は意識的に空気を読まないようにする
- プログラマの仕事は問題解決
- 人生における問題解決も同じ
- 戦術は適用しやすい
- 戦術1：円滑なコミュニケーション
    - 笑顔
- 戦術2：コントロール意識
    - 自分ができること
    - 生産性の下げ方：けなす、叱る
    - コントロール意識が生産性を高める
- 戦術3：モチベーションは他の人にあげられない
    - なくすのは簡単
    - モチベーションは下がりやすいけど、上がりにくい
    - コンピュータに奴隷として使える
    - アルファシンドローム。
    - コンピュータに対してアルファシンドロームが起きる
    - コンピュータを世話するように考えてしまう
    - 自分の人生の主人公になる
- 戦術4：インプット・アウトプット
    - 勉強する、本を読む、ブログを読む
    - 新しい技術がどんどん出てくる
    - インプットは必要
    - けど、インプットはみんなするから差別化戦略にならない
    - アウトプットが大事
    - アウトプットの心理的障壁が高い
    - クオリティはとりあえず棚上げ
    - 自分が学んだことを何かにまとめる
    - とにかく出す
- 「日々を生きよう」

## 質問タイム
- プログラミングをしている楽しいと思う瞬間は？
    - 万能感を感じているとき
    - 子供のときに持っていた万能感を取り返せる
- 20代のうちに読むべき本はありますか？
    - 何でもいいのでたくさん読んでください。
    - 子供のころは本屋さんの近くに住んでいて、たくさん読んでいた。
    - 本はネットにある記事よりも文章が推敲されている
- 最近、読んだ書籍、論文はありますか？
    - 最近、コンピュータサイエンスの本に数式が多くなってきたので、読まなくなってきた。
    - ブログやTwitterをよく読んでいる
    - Hacker Newsとredditをよくチェックしている。
    - Twitterは@yukihiro_matz をフォローしてね。
- エンジニアとして、毎日行うべきこと・習慣にすべきことはありますか？
    - 人間は集中力が続かない
    - ポモドーロを取り入れる
    - プログラミングで詰まったときは、あえて仕事をやめる。散歩に出かけて思いつくことがある。
        - 散歩、お風呂、寝る前に思いつくことが多い
    - ひらめきを入れるために、あえて何もしない。
        - スマートフォンが邪魔になる
        - 文字を読んだり、音を聞くのは邪魔
    - 積極的に何もしない時間を作る
- 抽象化能力を培うためには？
    - アーキテクトを考える
    - 世の中の仕組みを考える
    - プログラミングを他の例で表現する
- 英語の勉強法は？
    - 英語の勉強するのは嫌い
    - けど、海外のユーザがいるから、講演会や質問を受けることが多い
    - そのような経験を経て覚えた。場数。
    - 間違ってもいいから、声に出す。
    - 2001年から年間5,6回海外へ行っている。
- アウトプットを出すコツは？
    - 考えないこと。
    - 考えるとやらない理由を思いついてしまうから。
    - 間違いを指摘されたときに、自分の人格を否定されたわけではない。アウトプットと自分は別。
- エンジニアにとって大事で定量的な目標は何か？
    - ただ数をこなすことを目標にしても意味がないから注意する。
    - 達成して意味があるものを設定すべき。
    - 例えば、毎日コードを触るとか。
- 他の人とうまくコミュニケーションを取るには？
    - ストーリーが大事
    - 成功体験より失敗体験の方が聞き手に好評
- なぜプログラミング言語を作ろうと思ったのか
    - プログラミング言語は人によってデザインされたもの
    - 人と機械のコミュニケーション
    - 自分でデザインしたいと高校生のときに思った
    - 作りたいと思ってから10年間かかった
    - デザインのエネルギー源：自分だったらこうしたいのにという気持ち
- 空気を読まなくて良かった体験談は？
    - Rubyを作ったときは会社員のとき。会社員っぽくしていたらRubyはなかった。
    - 会社ではスーツが慣習だったけど、お客さんに会わないから翌日からカジュアルな服装で行った。けど誰にも特に言われなかった。
- 趣味もプログラミングである人の方が仕事は楽しいのか？
    - 趣味がプログラミングである人が多いけど、そうでないといけないというわけではない。
    - ソフトウェア開発が嫌いだったら辛いと思う
    - 趣味でやるほどではなくてもOK
    - けど、趣味でやる人の方が伸びるよね。
- エンジニアのキャリアにおいて、コンピュータサイエンスの修士号を取るメリットは？
    - 学位を評価する企業に入りたいのであれば重要
    - どこを相手にするか
    - 海外の企業に対して、成果がなければ学位でアピールすることができる
 
## さいごにメッセージ
「自分の人生を自分で決める」