とあるWeb屋の備忘録

とあるWeb屋の備忘録。たまに雑記。

【まつもとゆきひろ氏 特別講演】20代エンジニアのためのプログラマー勉強法まとめ

先週末にサポーターズさん主催の【まつもとゆきひろ氏 特別講演】20代エンジニアのためのプログラマー勉強法 に参加してきました!
これまで技術的なことしか書けていなかったのですが、とても学びが深い講演会だったので初めて雑記的にまとめを書いてみようと思います。
内容濃すぎ && 80分 という講演会だったのでざっくりまとめです!
講演会の様子はyoutubeで配信もされたので、このブログの最後にURL貼っておきます。


以下Matzさんによるプログラマー勉強法まとめ

今回「勉強」という言葉を使ったのはあえてミスリードを誘う目的。
具体的には「(学校)勉強」には「苦手を克服するべき」というメタファーがある。
「苦手を克服するべき」は社会人の勉強では間違い。

学生と社会人の勉強の違い9つ

1.満点VS満点なし
社会人の勉強に満点がない、つまり上限がない。平均値や偏差値がないから学生時代の常識が通用しない。

2.苦手克服VS得意を伸ばす
社会人にとって苦手を克服するのは意味がない。自分の苦手は誰かが得意だったりする。
得意を頑張ったほうがいい。好きなことは上達する、上限はないからどこまでも伸ばせる。
「苦手を克服すべき」というメタファーは誤り。得意を伸ばすことがあるべき戦略。

3.記憶VS把握
試験があるわけではないから記憶しておく必要はない、それよりも何を知っているか把握することが重要。
基本的な概念、使い方、知識のインデックスを頭の中に作ることが重要。
Googleは友。詳細は必要な時に調べればいい。

4.知識VSインデックス
学生時代は知識を丸ごと頭の中に入れておかなければいけないが、社会人では知識のインデックスを作ることが重要。

5.試験VS常在戦場
学生時代は試験のための勉強。社会人の勉強は、いつ役に立つか分からない勉強をすることになる。
社会人の勉強は、「この日に役に立つ」というスコープ外れてるから、いつ役に立つか、そもそも役に立つものなのかすらわからない。

6.評価軸が一次元VS多次元
数学は数学でのみ評価される。次元が一次元。
エンジニアのスキルセットでいえば、それぞれみんな違う特質を持っている。
そのため評価軸は多次元になる。

7.メインVSサブ
学生は勉強がメイン。社会人は仕事がメインなので勉強がサブ。

8.間接的VS直接的
学生のときに勉強したことが役に立つかは直接はわからない。
社会人の勉強はスキルに反映するので直接的に伸びる。

9.安定VS変化
学生のときは教科書の内容が変わることは滅多にないし勉強が安定している。
社会人の勉強、例えばJSに関して言えば今勉強していることが古くなったり消える。
社会人の勉強はこういうことがけっこうある。

こんなに違うものを同一視して、このメタファー(苦手を克服すること)は役に立つのかというと役に立たないことがけっこうある。
社会人は「勉強」ではなく「学習」では?


なぜ勉強するのか

「成功したい」「高収入が欲しい」「良好な人間関係が欲しい」「嫌なことはしたくない」「好きなことで生きていきたい」など目的がある。
これらを達成する確率を上げるために必要なことは「高評価」「尊敬」「尊重」など。
勉強の目的はこれらを得るため。


どうやって「何を勉強するか」「どうやって勉強するか」を決めるかのヒント

1.必要なことは「Self reflection(内省)」
自分を真剣に見つめることが大事。
走り出すのは楽、走り続けるのは大変。まず走る前に方向性を考えることが大切。
仕事について、自分が好きなもの、嫌いなもの、得意なこと、苦手なことを即答できるか大事。
好きなことは上達するから苦手を克服するのはあまり意味はない。好きなことに集中したほうが効果的。
内省して以下をする。
何を勉強するかどうやって勉強するかを自分で決める。
自分のスキルについて真剣に考えてinventory(棚卸し)をする。
方向性を決める。

2.パターン認識について
パターン認識は成功の秘訣。
アメリカのスタートアップ数百人に共通して持っている素質はパターン認識能力が高い。
社会における様々なパターンを抽象化して認識する。過去の人たちの失敗を抽象化してパターン認識して失敗を避ける。
自分が尊敬する人はだれか?そういう人たちからパターンを探せ(尊敬できる人のパターンを認識して抽象化する必要がある)。

知らない人を尊敬することはできない。
自分が尊敬あるいは尊重を得るためには「知られないといけない」。
余談:尊敬は人格的評価が伴い、尊重には人格的評価は無関係。

一般論として人は有名人に弱い。本能的にミーハー。
知名度は価値と可換である。つまり以下。
× 成功したから有名になる。
〇 成功のためには有名にならなければならない。

成功するためにはまず知られる必要がある(=価値があると思われる必要がある)。
「有名である」=「価値がある」は循環論法。
価値があると思うから有名になる。有名であるから価値があると思ってもらえる。
今世間から評価されていない人はどうしたらいいのか。
マーケティングキャズム理論で説明できる。

キャズム理論
顧客5段階
イノベーター アーリーアダプター アーリーマジョリティ レートマジョリティ ラガード
アーリーマジョリティまで商品が届くことはあまりない。例えばJSの新しいフレームワーク。これ仕事で使う?様子見。このまま浸透しない。
アーリーアダプターとアーリーマジョリティの間にはキャズムがある。
キャズムを乗り越えるために以下。
ニッチに進出 → 一定のシェアを超える → 横展開する → キャズムを乗り越えられる可能性がある。

今日のテーマ「勉強法」というより、結局は自分のマーケティングの話。
ユニークさを強調すること。埋没しないことが重要。周囲の目に留まる確率が高ければ高いほどいい。

未来は誰にも分らないし未来のことを考えても意味がない。
それより自分の傾向について考える。内省する。
自分の将来を運任せにするのではなく戦略を立てる。

具体的な勉強方法について

1.モチベーション
好きなことは放っておいてもやるからモチベーションは高い。
漠然とした希望はモチベーションが弱い。例:このスキル身に着けたら面白そう → もっと具体的なほうが頑張れる
「暇」「退屈」は自分に対する注意報。自分のモチベーションを管理できていない。
本当にやりたいことを優先順位をつけて上から取っていけば「暇」や「退屈」って思う暇がない。
「暇の撲滅」を考える。

2.時間管理
どうやって時間をつくるか。
その人の時間の使い方でその人の優先順位がわかる。
勉強に関して言えば、本当に勉強が大事だと思っているか、もしくは大事だと自分を説得できているかで、時間を勉強に使うことができる。
プライベートを犠牲にするのはあまりよくない。
社会人の勉強は、仕事に反映されるために勉強する。
社会人の勉強は就業時間にすることが原則。
そのために仕事の生産性を高めて仕事の時間を勉強に使う。
大事なことは自分を忙しすぎない状態に持っていくこと。
作業の見積りは3倍くらいのバッファを取ることが適当。
社畜やめよう。
こういうことを理解する上司がいるか会社を選ぶバロメータになる、尊重されているか分かる。
これを理解してくれない会社は滅びたほうがいい、逃げたほうがいい。

3.アウトプット
勉強する=インプットはミスリード
インプットは差別化要因にならない。
アウトプットするかが重要。アウトプットは面倒、億劫、羞恥心があるから大変。
例:youtuberがやっていることは誰でもできることだが、実際は心理障壁があるから誰もはできない。
アウトプットによる知識の定着がある → ほかの人に読んでもらうところまで考えるともう一段階高いところで体系化されることがある。
クオリティは棚に上げてとりあえず世にだすこと大事。
アプトプットを繰り返すと楽にアウトプットできるようになってくる。
アプトプットを最適化していく。
アウトプットの心理障壁が取れてくる。
そうすると人間の可塑性が起きてくる。

4.可塑性
可塑性とは変化しやすさ。
立場によって人は変われる。
人は置かれた環境に合わせて変化できる。自分は固定的だと思わないほうがいい。
環境に強制されたときにゆっくりだが確実に変化することができる。しかも予期しない方向で変わることがある。
自分のinventoryをしていたとしても、自分の変化は予期できない。変化を発見したらそれに従う。


最後のアドバイス

1.基礎を抑える
あまり変化しない定番の知識
コンピュータサイエンス
アルゴリズム
コンピュータアーキテクチャ

2.英語
英語があれば18億人とコミュニケーションできる。
IT業界の新しい情報は英語で発生する。
タイムマシン経営ができる(アメリカで流行りを日本に持ってきてビジネスする)。
英語は読むのが最低限。次に雑談ができること。そして公演ができる状態へ。
語学は場数。脳の中に回路を作れるかの勝負。
完璧を目指さない。

3.コンフォートゾーン
コンフォートゾーンは居心地の良い空間のこと。
ずっといると成長がない。コンフォートゾーンを意識的に出ると成長できる。
変化を恐れない訓練をする。
誰かを見下さない。見下すとコミュニケーションができない。我々の仕事は人相手の仕事。
自分は多次元でものを見れていれば人を見下さない。例:この面では勝っているがこの点では劣っているな
同様に自分を卑下しない。


内容も時間も盛りだくさんだったのでざっくりですが以上な感じでまとめてみました!
最後に感想ですが、80分の講演のMatzさんの言葉で特に印象的だったのが以下の2点の内容でした!

「自分は運が良かったから大して深く考えていたわけじゃないけどこのキャリアを歩めたけど、運という要素は誰にでもあてはまるものではないから、戦略的に成功する確率を高めることが必要」ということ。

「未来は誰にも予想できないから考えても無駄。大企業が出している未来予測も実際は当たらない。自分の傾向や内省について真剣に考えることが大事」ということ。

講演会参加前は、具体的なプログラミング勉強法(例えばこのサイトは便利とか、こういう順番で知識を身に着けると効率的とか)を聞けるかと思っていましたが、
実際はかなり体系的なお話を聞くことができて、とても学びが深い講演会でした!
今後もたまにはこういう技術的なこと以外も書いていけたらと思います。ここまで読んでいただいてありがとうございました!!

まつもとゆきひろ氏 特別講演】20代エンジニアのためのプログラマー勉強法
https://youtu.be/YG0MzpNiZUg