どうも、ウェブ系ウシジマくんです。
2018年6月23日、渋谷で開催された「若手エンジニア生存戦略」という講演に参加してきました。
登壇者はRubyのパパであるまつもとゆきひろ氏。世間ではMatzのニックネームで呼ばれており、プログラミングを学んだことがある人であれば、一度は聞いたことがあるのではないでしょうか。
今回の記事では、講演中にメモした内容を元に、自分の考えをアウトプットしていきたいと思います。
当日の流れ
講演当日はあいにくの雨でした。
会場は若手エンジニアの転職を支援している株式会社サポーターズ。
司会進行は、同会社代表の楓さんで、以下の流れで進んでいきました。
- 株式会社サポーターズについて:10分
- まつもとゆきひろ氏による特別講演:80分
- セミナー参加者からの質疑応答:30分
Matzが語った若手エンジニアの生存戦略とは?
題名はかなり壮大な感じがありますが、講演の中では以下のことについて一貫して主張しているように感じました。
- 理不尽なことには声をあげること
- プログラミングの本質を極める
- アウトプットを通じて自分の価値を証明する
理不尽なことには声をあげること
ブラック企業、働き方改革など、労働という行為に対して様々な角度で注目されている昨今。
Matzは「死んだら元も子もないので、辛い環境に耐えられなくなったら逃げてもいいんだよ」というメッセージを僕らに投げかけてくれているように感じました。
一生懸命働くのは美徳とされがちですが、過労死によって命を落としてしまったら意味がありませんよね。
だからこそ、自分の人生をより良いものにしていくためにも、生存戦略について考えていくことが大事だと話していました。
たくさん働きすぎてしまうと、そのことに対して鈍感になってきてしまいます。
でも人間の限界点・致死量は個体差はあれど本質的には変わらないので、振り切れてしまうと鬱になったり自殺に繋がってしまう。
文字通り死んでしまうわけです。
自分が理不尽だな、納得いかないということがあまりにも続くようであれば、その環境から抜け出すことも視野に入れるべきだという主張をされていました。
「労働とは我慢することではなく、自分の価値を提供すること。その対価としてあるのが報酬であり、給料。」
成功している人の共通点
アメリカの研究機関によると、成功している人にはパターン認識能力に長けているという共通点があるそうです。
パターン認識能力とは、現在自分が直面している状況において、共通していたり適応できるパターンを取り出す能力のことで、Matzはこれをメタ戦略と呼んでいます。
メタとは一段上のという意味で、パターン認識を抽象化すること==メタ化するということです。
さらにそのメタ化することを中心に考えるのがメタ思考というわけですね。
具体的なものほど寿命が短く、抽象的なものほど寿命は長くなる
メタ化について考えていくと、具体的なものほど寿命が短く、抽象的なものほど寿命は長くなるということに気がつきます。
iPhoneアプリよりもプログラミング言語の方が歴史が長いし、プログラミング言語よりもOS(Linuxなどのオペレーションシステムの方がもっと以前から存在しています。
かといって抽象化が万能ということではなく、モレが起こりやすいデメリットもあります。
例外ばかりが多くなると、理想的な抽象化からは外れてしまうのでその点は注意。
プログラマー三大美徳
- 怠惰(全体の労力を減らすために手間を惜しまない)
- 短気(今後起こりうる問題を想定したプログラムを書く)
- 傲慢(公開して恥ずかしくないプログラムを書く)
この言葉はPerlというプログラミング言語の創始者であるラリー・ウォールが提唱。
また、ラリーウォールはMatzがロールモデルとして手本としている人物でもあります。
僕も仕事でプログラマーと関わってきましたが、この美徳を体系化している人ほどわかりやすく、クオリティの高いコーディングをしていましたね。
ポジティブに考えることも大事
理不尽なことを相手に伝えたからといって、それが原因でいじめられたり孤立することはなく、むしろ喜ばれることが多かったと述べたMatz。
逆に理不尽なことを主張しただけで村八分になるような組織は早々に抜け出した方がいいです。
自分の心が折れてしまう前に。
たとえ上司から扱いにくいと思われたとしても、気にしないこと。
自分自身の生存戦略を考える上では、このような鈍感力も大事です。
Matzが提唱する若手エンジニアの生存戦略
自分の生存戦略については、自身と向き合いじっくり考えて欲しいです。
その中で、一つの指標として参考にして欲しいのが以下のメタ戦略。
- 我慢に価値を置かない
- 社会的圧力、同調的圧力に負けない
- ある判断をするときに、なぜその選択をするのかを自覚的に考えること(背景や要因を含めて)
- 自分自身を知ること(いまおかれている環境や得意分野について考える)
プログラマーは問題解決が仕事
問題解決の流れとしては以下の通り。
- 問題把握
- 問題分析
- ソリューション提案
- ソリューション実装
- テスト
- 改善
以上を踏まえてプロセス改善し、よくある間違いは何なのかを考える。
そして環境改善を行い、もっと便利なツールがないかを模索する。
これを自分自身の人生にも置き換えて考えることができるようになれば、プログラマーは人生の勝ち組になれると思います。
インプット・アウトプットについて
インプットは大事だけど、差別化要因にならなりません。差別化にはアウトプットが大事。
多くの人が注目する中でアウトプットするのは怖いかもしれませんが、その羞恥心を恐れないようにしましょう。
いきなり大舞台に立つのが難しいのであれば、小さいコミュニティから初めて場数を踏んでいけば大丈夫。
たとえば、ユーチューバーは誰でもできる内容。でも、動画にして後悔するということに対して心理的ハードルがあるのでみんなやらない。
だからこそ、その心理的ハードルを乗り越えた人が高収入・成功ができるんです。
成功者になるためには、他人から評価されることが重要ですから。
クオリティはとりあえず棚上げでもいいので、エンジニアであればたくさんのアプリを公開して、ブラッシュアップしていけばいいんです。
最後に
講演の中で心に残ったことをまとめてきましたが、僕自身今回の記事は何回でも読み直して、自分の生存戦略について考えていきたいと思いました。
また、Matzはトークの抑揚の付け方が非常にうまく、聴きやすかったことも印象的でしたね。
質疑応答では様々な質問が飛び交っていましたが、Matzのオススメの書籍が興味深かったのでリンクを乗せておきます。
ライフハック大全
巨神計画
火星の人
ソフトスキルズ
特にソフトスキルズについては、Matzが解説をしていることもありエンジニアにとっては必読書と言えるでしょう。
近日中に続編であるキャリアスキルズの発売も決まっているそうです。
ただ、いずれの書籍もアメリカの組織を題材にしているので一部自分たちとは内容が合わない箇所があるかもしれません。
しかし、そこは書籍の内容をメタ化して、うまい具合に自分の生存戦略に取り入れていくといいのではないでしょうか。
若手から中年になると相手から高い価値を求められるので、自分自身の価値を高めることが大事。
だからこそ若手のうちからインプットとアウトプットを繰り返して、自分にとっての生存戦略の最適解を見つけて行きたいですね!
Happy Hacking!