【まつもとゆきひろ】20代のためのプログラマー勉強方法を聞いてきた。

今日はMatzさんが講演をするためだけに,島根から東京へ来てくださったとうことで講演会に参加してみました。
講演でもアウトプットするといいよ！と言われたので早速投稿します。(あー恥ずかしい笑)

殴り書きなので誤字脱字とか色々あると思いますが、間違ったこととかあればガンガン指摘してください。

##話の流れ
・Matzさんとは
・抽象化の強み
・学生と社会人の勉強の違い
・苦手克服 vs 得意を伸ばす
・Matzの仕事論
・なぜ勉強するのか？
・パターン認識について
・尊敬する人は誰ですか？
・キャズム理論
・Matzが就職してRubyができるまで
・予想は外れる
・具体的な勉強の話
・仕事をする上での時間管理
・インプッットとアウトプット
・英語について
・コンフォートゾーンを抜け出せ
・インベントリについて
・質問コーナー
・まとめ


今回の内容としては,勉強法というよりは**エンジニアとしての学びの方法を知る,考える**といったテーマになってます。


##Matzさんとは
**・Rubyを作った人(通称言語デザイナー)**
**・プログラマー歴28年の日本一有名なプログラマー**

**名誉**
日経BP技術賞
日本イノベーター賞
政府IT総合戦略本部委員
松吉市名誉市民
....
....

##抽象化の強み

**抽象化 → 理解しやすい**

人間はたくさんのことを把握できない。
※人間が一度に把握できる数は7個が限界と言われている

複雑なもので溢れている中、プログラミングを使うことで抽象化できる。
しかし、AIがプログラミンができれば抽象化の必要はなくなってしまう。


##学生と社会人の勉強の違い
| 学生| 社会人|
|:-----------|------------:|
| 満点がある | 満点がない      |
| 記憶    | 把握    |
| 間接的   | 直接的 |
| 安定     | 変化  |
###満点 vs 満点がない

学生は満点があるので記憶が重要になってくるが、社会人は満点がないのでどれだけ頑張って知識を詰め込んでも100点以上をとることはできない。
つまり、学生時代の勉強法は通用しない。

###記憶 vs 把握
大切なのは**知識のインデックス**を作っていくことであり、詳細はGoogle先生で調べれば良い。
結果、調べる力が必要である。

###間接的 vs 直接的
学生時代に勉強したことは基本的に何に使えるのか分からないものが多い。
一方、プログラマーは〇〇言語を勉強すると〇〇ができるといった具合に、勉強したことが何に使えるのか直ぐわかる。

例) javascriptを学ぶとフロントエンドができるようになる。

###安定 vs 変化
教科書の内容や覚えることは何十年経ってもそれほど変わらないが、IT関連は時代の移り変わりが非常に激しいため、常に内容が変化している。
そのため、覚えることはそれほど重要ではなく、常に学び続けることが重要になる.

❌ 勉強
⭕️ 学習

##苦手克服 vs 得意を伸ばす

**自分の苦手の科目を頑張る**
なぜなら、
・90点からの伸びしろはない
・40点ならたくさん伸びしろがある

しかし、好きなことを頑張っていたほうがモチベーション保てる
平均的なプログラマー以上を目指すなら、得意を伸ばすのがあるべき戦略
好きなことを頑張ったらモチベーション保てる
平均的なプログラマーよりもすごい
得意を伸ばすのがあるべき戦略

※苦手は直した方が良いと言われるのは、学生時代の教育が影響している。

##なぜ勉強するのか
僕たちは働いている上に勉強をしたいからここに来た。
ここにはいろいろな理由がある。
↓
・成功したい
・高収入が欲しい
・良好な人間関係が欲しい
・嫌なことはしたくない
・好きなことで生きていきたい

**これらを実現するには?**

確率を高めるものとして以下のものがある
↓
・高評価
・尊敬される
・尊重される

尊敬：　人格的な評価
尊重：　ないがしろにしない

##パターン認識について
アメリカの成功者で共通したもの　→ 　**パターン認識力**
金持ち、頭がいい、は関係ない。

パターン認識は成功の秘訣。


##あなたが尊敬するひとはだれですか？
その人たちからパターンを探す。
人は知らない人を尊敬できない。
知っているから尊敬できる。
つまり、知られることが大切。

人は有名人に弱く、本質的にはミーハー。
例) その辺に芸人が歩いていると「あ！テレビに出てたあの人がいる!」となる。　→　写真、サインを貰う

そこには謎の嬉しさがあり、とはいっても尊敬しているわけでもない。

このことから、
**知名度と価値は可換できる**
ということが言える。

**有名である　=　価値がある**

##キャズム理論(マーケティング系)

ほとんどの人間は、**誰も知らないものを買わないが、有名なものは買う**

1.イノベーター　→ 新しいものに手を出す　クラファン等...

2.アーリーアダプター　→ 新しいものに関心がある、とりあえず見てみる。
~~~~~~~~~~~~~~~~~~~~
キャズム(深い溝)
~~~~~~~~~~~~~~~~~~~~
**3,アーリーマジョリティ　**→ 一般人

4.レートマジョリティ → 保守的

5.ラガード　→ 頑固者

アーリーマジョリティまでとどくことは殆どない
キャズムを乗り越えるにはニッチに進出する
ファンを獲得し、横展開していく

埋没しない　←  重要



##Matzの仕事論
❌我慢の対価　→　給料
⭕️価値を生み出す　→　給料

時間と収入は無関係。
割りが良いかではなく、いかに満足するか。
嫌なことはしたくない、お金が入ってきても辛いものはいや

他人を見下すとコミュニケーションがとれなくなるので絶対やめよう.

##Matzが就職してRubyが誕生するまで

1995年,大学卒業時の判断　　
↓
自分がハッピーでいきていく手段は何か？
↓
自分が尊重してもらえる環境を得たい。
↓
「東京に住まない」ことを決心。
↓
地方の中小企業に入る　
↓
200人中6人のCS専攻　
↓
周りから必要とされ、埋没しない(大成功)
↓
高い裁量をもらっていた
↓
社内ツールを作ったりして周囲の生産性も高める
↓
バブル崩壊
↓
社内ツールを作ってる場合じゃない
↓
しかし、やることがない
↓
仕事そのものがなかった(管理されていない)
↓
目の前にパソコンあるし、なんかつくろう！
↓
そこで作ったフリーソフトウェアがRuby
↓
インターネットで公開
↓
自分のソースを公開する人はあまりいなく、ニッチに進出していた。
↓
ユニークでもあることで、一気に有名になった
↓
横展開した

##予想は外れる

・未来は分からないので、決めたことは変えてもいい。
・未来や将来を考えることよりも、自分の傾向(内省)を考える必要がある。
・未来を考えたところで分かりっこない。

つまり、将来・未来は**考えるだけ無駄。**

##具体的な勉強の話
モチベーションについて。
人は好きなことはほっといてもやる
漠然とした希望には弱い
例)「いつか使う時がくるかもー」

「暇だー、退屈だー」　
は自分のモチベ管理できていない注意報

##仕事をする上での時間管理
時間の使い方　→ 優先順位
プライベートを犠牲にするのは良くない。　←　バランス大事.

みんなは仕事の時間を勉強に使いたいと思う。
解決策
↓
・生産性を高める
・働いている見なされている時間に勉強することを追求する

プログラマーは仕事に反映されるために勉強をしている。
なので、仕事中に勉強するのが許されない環境は,滅びた方がいい.
なぜなら尊重されていないから。
**普通は、就業時間中に勉強するもの。**

ただ、好きなら業務時間外だろうとやればいい。

短い時間で成果を上げることについての名言。
↓
**一週間でできると思たら3倍にしとけ(三週間)**

##インプットとアウトプット

**インプットは必要、でも差別化要因にならない**

しかし、

**アウトプットすることで差別化になる**

でもハードルが高い!

その要因達
↓
めんどう、おっくう、恥ずかしい

やればできることはたくさんある
でも実際はだれもやらない(心理的障壁)
「はずかしい」　←　これを乗り越える

アウトプットのメリット
↓
・自分の知識がもう一段上にいける
・価値を提供できる
・知識の定着

クオリティは気にしなくていい。

アウトプットを繰り返すことによって。。。　→　楽になる　→ 自然になる　→ 最適化　→ 心理的障壁の低減　→ 人間の可塑性が起きる(変化する)


##英語について
英語は学んだ方がいい。

英語を学ぶメリット
↓
・英語があれば18億人と話せる。
・Time Machine経営ができる(日本と海外で3年の時差があるから、3年以内でできれば成功しやすい)
・ガラパゴスを出られる


語学は場数。
完璧は目指さない、伝わればいい。

##コンフォートゾーンを抜け出せ
幸せな空間ばかりいると成長がなくなってしまう。
普段やらないようなことをすると成長できる。

##自分に合った勉強法
自分にあった勉強法を見つける必要があるが、人によって興味や特性が違うので自分で決めないといけない。

そのためには、
自分が持っているもの(インデックス)を棚卸しして、どっちの方向性に進むのかを考える必要がある。

インベントリをして、真剣に考えるのが重要。
インベントリとは・・・　あってれば伸ばせばいい、苦手なら考え直すこと

どこまで妥協、意地をはるのか。
例えば、
1.住む場所
2.職種
3.待遇

戦略をとるには真剣に考える

##質問リスト##

###社内勉強会など,コミュニティ運営で気をつけること
ルールは決めない方がいい
ゆるくテーマを決めてみんなでやってみる。そして適宜変えていく

###ITのブラック企業入ってしまったら.
やめてしまえばブラックは撲滅する
売り手市場なので割とすぐにやめられる
次がダメならまたやめる(笑)

###フルスタックを目指すのは得策ではない？
全部得意な人はほぼいない。(基本平均的に留まる)
俺が一番得意なのはこれだ！を見つけて仕事にするのがベスト。

###ITの売り手市場はいつまで続く？
**5 ~ 10年のスパンでは終わらない。**
ただし、日本全体が沈む懸念がある　← 日本が先進国じゃなくなるほうが早くなるから

しかし、IT企業に限らず、一般企業でもソフトウェアは必要という状態なので、誰かがソフトウェアを作らないといけないから仕事はある。

###見ているニュース
RSSリーダーで、
・ハッカーニューズ
・レディット(新しい言語、ライブラリ)

###地方は取り残されるのか？
今はそうでもない
基本的に最新の情報は英語ベースなのでネットで繋がってる限り東京も地方も変わらない

###20代になったら何をするか
言語作る

##率直に思ったこと一覧
・英語勉強しよう。
・スキルを磨くために生きるのは、金をもらうために生きるのと同じようなことだと感じたので、プライベートも大事にしよう
・フルスタックを目指さず、まずは一つ好きな技術を見つけてそれを極めてみよう
・内省を定期的に行ってみよう
・会社や自分,みんなのためにもITブラックはすぐさま辞めよう
・変化し続けよう
・アウトプットしよう