あなたのノイズ、わたしのミュージック。

自分が何にどう関心を示したかの記録。

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

春を目前に控えた2月末。

安定しないモチベーションに振り回されていたわたくしは、

そんな自分自身に喝を入れるためこちらのイベントに申し込みました。

supporterzcolab.com

Rubyから始まったプログラマ人生、レッツ初心奪回!


こちらの講演、勉強法といってもRuby等のプログラミング言語を知っていくためのノウハウを伝授するといったものではなく、

20代のいま勉強をすることの意味、および自分の力を伸ばす勉強をしていくためには何を考えていけば良いのか、

といった、もっと広めの視点からのアドバイスといったものであった、と認識しています(たぶん)。


以下、講演内容のメモとなります。

※個人の解釈が含まれる場合があります。ご了承ください。内容自体に間違いがあったら教えていただけると幸いです……!


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

20代の今、なぜ勉強する必要があるのか

死なないようにする戦略を立てるため

テクノロジーの発達が目覚ましい現在、そのテクノロジーが人を幸せにしない方向に使われることがままある。

ex. エントリーシートブラック企業……etc.

こういった罠に飲まれないよう、生き抜いていくための戦略(自分はどんな未来を、人生を生きていくのか考えること)が必要。

そして戦略を立てるためには勉強が必要。


20代のうちにこの戦略を立てる意味とは?

  • 体力、発想力、新鮮なままの知識……といった面でアドバンテージがあるから

  • 社会的地位がない状態だから

人間は社会的な生き物なので、群れのリーダーに従いたがってしまう(例えるならアルファシンドローム)、

それゆえ、リーダーの言うことをそのまま飲み込んでしまうようになりがち。

しかし、言われたからと無理な方針で働き身体を壊しても、面倒を見てもらえるわけでない。

自分で戦略を立てそれに従うことで、自分を守ることができる。


社会人の行う『勉強』とは?

『勉強』の定義

学ぶことを一括りに勉強と呼んでしまいがちだが、

実は学生のする勉強と、社会人のする勉強とは異なる性質を持ったものである。

学生の勉強

  • 満点がある

  • 苦手を克服すべきとされる(苦手を伸ばすことで総合点があがるため)

  • 記憶する

  • 学んだ知識は試験で使われる

  • 生活のメインイベント

  • 得た知識は安定したもの

社会人の勉強

  • 満点がない

  • 得意を伸ばすべき(満点がないからいくらでも伸びる)

  • 把握(何を調べればいいのか、どこにあるのかを知っていること)する

  • 学んだ知識は常に現場で使われる

  • 生活のサブイベント

  • 得た知識は変化していくもの


社会人はなぜ勉強をするのか

人間は望みを実現したいと考える生き物。

→成長によって、それ以前の自分よりも高いレベルになれ、その望みに近づける。

勉強とは「成長」のための活動


しかし、(上記に挙げたような)勉強の必要性は多くの社会人がわかっていること。

ただやるだけでは差別化にならない。


差別化

何を学ぶか

やる気が出る好きなこと、学びたいこと

満点のないことだから「学生的な勉強」をしてしまうこと、義務感でやることは勿体無い。


一人一人にある個性・嗜好、それをインベントリ(棚卸し)する。

→自分は一体何が好きなのか、何が得意なのか、書き出してみる。

ex. 得意・興味・趣味・背景・嗜好……etc.

見出されたそれらを伸ばすように考えていく。

複数分野を横断してもよい。

ex. 農業用のデバイス(実家が農家×プログラミングが好き)


何を勉強するかを考えていく際に、『お金が得られるかどうか』を判断基準におくことは、

伸ばすべき個性・思考を見い出すための目を曇らせてしまう。

ex. Rubyの場合

OSSの波に乗り、結果的に好きなことが収入につながるようになった。

→作り始めた頃の風潮に飲まれ、お金にならないからとやめていたら、Rubyは存在していなかった!


興味・関心・妥協点は、自分自身にしかわからないこと。

何を学ぶかは、自分で決めなければならない


どこで学ぶか

勉強しやすい環境を探す・作る

尊重をされる→高評価を得たいというモチベ向上→学習→成果→尊重→……というループ(ポジティブフィードバック)を構築できることが、

成長していくためには望ましい。

つまり、これを壊す環境(搾取する人)からは逃げるべき。


Win-Winの関係』を知る。

これによると、損をする人が出てくる関係はそもそも成立しないものであるとのこと。

他者はなかなか変えられない、見込みがないならその環境から逃げることも念頭に置く。

義務感・責任感で自分を壊さない!


いつ学ぶか

まとまった時間を作ることは難しく思える。

「暇だ」と思う時間を撲滅する。

「暇だ」と思うとき、そのだいたいはあまりうまく時間が使えてない状態にある。


時間をうまく使っていくためには、自分のなかでものごとの優先順位をはっきりさせる必要がある。

注意点として、プライベートを犠牲にすることが正なのではない。バランスよく。

ex. 生産性を高めて早めに仕事をこなし、しかし終わりましたとすぐには言わず、空けた時間でこっそり勉強

また、睡眠時間を削ると脳に負担がかかるので、自分にとって適切な睡眠時間は確保する。


日頃の生活には、無意識につけた優先順位が反映されている。

この無意識の優先順位と、自分がこうあるべきと感じる(成長するための)時間の使い方をなるべく一致させる。

娯楽等もそれが自分にとってとても大事なことなら削らない、大事じゃないことなら考え直す。

その娯楽の使い方を変えていくといった工夫もできる。

ex. SNS→情報収拾の手段とする、情報収拾→その視野を最適な規模に絞り直す


何が大切かは各人によって価値観の異なること。

したがって、自分の優先順位の付け方を他人に強制してはならない。


どう学ぶか

  • 概要を把握する

知らないことは調べられない。

  • いろんなことに対する好奇心をフル活用

人と異なった専門分野を伸ばすきっかけとなる。


妥協と打算

インベントリをする中でやりたいことがあぶり出せても、

やりたいことと成功できることは必ずしも一致しないものである。

しかし、だからといって無限に妥協していくべきではない。

どこまでが妥協点か線引きする。その妥協点を自分で決めていく

このとき、人間としての判断(食い扶持、環境を気にすること)をあまり信用しすぎないほうがよい。

そのときの判断が10年後も正しいとは限らない。

つまり、妥協・打算をしたのなら、それを頻繁に振り返る必要がある


アウトプット

勉強するだけでは差別化にならない。

自分が何を知っているか、どこが他人と違うのかわかってもらうこと


勉強をして概要を把握する、これだけならわりとハードルが低いので、やる人は多い。

しかし、アウトプットにはどうやら高いハードル(億劫、羞恥心など)があるようだ。

誰でも可能であること、なのにやる人が少ない。

それならばとにかくやってみる!


思い込みに近い心理障壁をとりはらい、まずはクオリティを気にせずにアウトプットしてみる。

アウトプットをすることで、以下のようなメリットが見込まれる。

  • 何を思うのか、何を学ぶのかといった自分の内面を表現し見つめることにより、より成長できる

  • アウトプットをしていくためには何をすればいいのか、最適化の手段を考えるようになる(時間短縮のノウハウなど)


人間の可塑性

人間は変わりうる、苦手だったことでも苦手じゃなくなることができる。

苦手だと思っていたことでも、訓練をすることで得意になるかも!

アウトプットについても、他の人にやってもらうわけにはいかない。アウトプットが苦手なら克服しよう。

アウトプットによって得られるものには、それを試みるだけの価値がある。


成功を上げるために必要なこと

知名度は価値と可換の関係にある。

→そのためにもアウトプットして自己主張をすることは重要、知ってもらうきっかけになる。

マタイの法則(マタイによる福音書 7章7節)

持っている人は与えられる、持っていない人は取り上げられる。

知名度についても、有名になるとその情報に価値が見出されやすくなり、また新たに知られていきやすくなるといった特徴がある。


自分のやっていることをどうやって知ってもらうか?

キャズム理論

アーリーアダプタとアーリーマジョリティとの間のキャズム(渓谷)をどう乗り越えるべきか。

→ニッチな分野に進出することで、埋没しないでいられる。


まつもとゆきひろさんについて

大学卒業時に決めたこと

  • 東京に住まない

  • 尊重してもらえる環境にいる

200人の新卒のうち、コンピュータサイエンス担当は6人だった。

→その中で能力を保っていることで埋没しないでいられたため個人として尊重され、自分の裁量でやっていけていた。

バブル崩壊でチーム解散(社内システムだったので)、閑職のメンテナンス要員へ。

その暇な時間にRubyを作成

プログラミング言語を作った人として有名に!


言語を作ったことだけでなくそのコミュニティの運営、また社会人としての経験がある。

→人間の性質・ふるまいに起因する問題という、時を超えて共通の話題についても知見がある。

それを活かしこういう講演や顧問の仕事などもいまでは受けている。

割がいいかより、満足ができるか、を重視して動いている。


まとめ

戦略を立てるポイント

  • どこまで妥協できるか、どこまで意地を張るのか、という折り合いをつける

  • 自分がどういう未来・将来に歩いていきたいか、若いうちに真剣に、度々考えるようにしていく


意識していくべきこと

  • 基礎を抑える

ex. アルゴリズム、コンピュータアーキテクチャ

概念が体系的にわかることも差別化につながる。

  • 英語を学ぶ

新しいテクノロジーはだいたい日本語以外で発表される。

→人より早く知識を得るためには英語が必要

辞書を引きながらでも読めるようになっていくことで、

周りがその情報を得るまでの時差を生むことができる。

また、ガラパゴスな環境から出て活動していく選択肢ができる。

→国に縛られない、自由な発想で仕事ができる!

  • コンフォートゾーンから出る

自分の安心できる環境から出ることを(自分で)考えていくことも、時には役に立つ。


質疑応答(一部)

もし自分の行ったアウトプットが間違っていたら?

間違い(事実に反する・想定しない結果)に対して誠実な対応をとれればいい、間違いを認める。

資格に価値はある?

ビジネスサイドの人に自分の価値を伝える手段として役に立つ。

ニッチなことをする際の不安はどうやって整理すべき?

不安はだいたい思い込みでできていることを意識する。

挫折への立ち向かい方(Ruby開発時に挫折しそうになったことはある?)

公開前のRubyは誰も知らないものであり、公開しなくても迷惑がかからないため、やめてしまおうかと感じたこともあった。

タスクを小さく区切って、ひとつひとつ達成していくようにした。

アウトプットを継続するコツ

繰り返すことによって敷居が下がるという性質がアウトプットにはあると意識。


私は思いついたのが遅かったのもあり、その場では質問できませんでした……。

しかし、講演後Twitterで、Matzさんがその質問を拾ってくださりました。

講演で大切なこととして主張されていたことに通ずる点もあり、

日々にもその大切なことを適用していることで、うわべで言ってることじゃないんだろうなと聴き手に感じさせる、

重みが生まれるのかもしれないなあと、回答を受けて感じました。


最近、他人に自分のやってきたこと・やっていることを伝える場面が増え(このブログも一応そうですが)、

それがなかなかパーフェクトにはいかないな、と感じることがままあったため、

今回の講演の、『押し付けがましさはないが、しっかり芯の通った主張を伝える』といった話しぶりをみてつい訊いてしまいました。

勉強法というテーマから若干逸脱気味かもだったのに拾っていただけたこと、感謝です……!


20代のエンジニアへのメッセージ

考えることを諦めない。考えることで拓ける途もある


感想

世の中で何が流行っているとかではなく、自身が何を大切にしてこれからの戦略を立てていくべきであるか。

その価値観にまず共感し、またそれを尊重し主張してくださっていたことが安心感にもつながりました。

そして、20代エンジニアへというテーマでここまで話していただけたことから、

それほどに若いいまには価値があるのかもしれないなあ、とも考えるようになりました。


近年の私は自分の好きだと感じるものへの能力・好奇心を伸ばし、自分で満足のできる自分をつくっていくべく、

業界を超えた転職をする、通信の大学に編入するなどと、にわかに活動的になってはいます。

しかし、その一方で方針の検討が甘く(余地は残しておくべきなのだけど残しすぎてる節がある)、

漠然とした不安はそういったところから来ているのだろうなあと、それもまた漠然と考えていたところでもありました。

今回の講演を受け、その『漠然』をなくしていくこと、

思い込みを分析し形として捉えていくことから始めていこう、そんな道筋が(わずかに)見えてきました。

考えていこう!