オープンソースのプログラミング言語「Ruby」を開発した、
まつもとゆきひろ氏・通称Matzさん。
プログラミング言語デザインの第一人者としてご存じの方も多いかと思います。
そんなMatzさんの講演会に2019年3月に参加したので今更ではありますが、その内容を共有させていただきます。(個人的な解釈も入っています)
実際のところ、当時 私はRubyで開発したこともなく、友人に誘われて参加しましたが
ビジネスマンやプログラマーに通じる成功方法に関するテーマだったのですごく勉強になりモチベーションも高まりました!
何よりも、Matzさんの話はストーリ性があり、すごく穏やかで、人間として魅力的な方だと感じました!
✓エンジニアとしての生き方を考えたい方
✓プログラマーの勉強法を学びたい方
✓キャリアについて悩んでいる方
に是非見ていただければと思います。
個人的には、満点 VS 満点なし、何を学ぶか、アウトプットの重要性、が興味深かったです!
講演のテーマ
戦略の必要性
今回の講演では、初めに戦略の必要性について検討しました。
そもそも なぜ戦略が必要なのか。
Matzさんは「現代は罠の多い時代であること」「若い時は力がない分、地位が低い」という現状に対して「自分は何をしたいか、どう生きたいか」についての「戦略」を立てる必要であることを仰っておりました。
確かに、若いからその時の勢いで進んでいくこともできますが、体力や発想力がある若いうちに、人生の戦略を考える時間も大切だなと。
そして、プログラマーについて必要な能力として
「処理の抽象化」(詳細に踏み込まないで理解しやすくする)や
「類似性からパターンを認識する(パターン抽出)」を挙げていました。
これについては、仕事中にも痛感することが多いです。
ユーザーや後輩に説明するときに、彼らの知識の中から類似性をつかんで説明できれば理解も早いのだろうな・・と。
また、コードを書くときに類似した処理は一つにまとめたほうが早く終わる、などエンジニアとしても日々意識する必要があると感じています。
もちろん抽象化することによって漏れが発生したり、違いを認知する際には向かないですが。
あえて違いについて考える(学生 VS 社会人)
続いて勉強法について考える前に、
学生 と 社会人では勉強する環境がどのように違うのかということについて検討しました。
1. 満点 VS 満点なし (正解があるかないか)
学生はテストで満点を取ることで成功につながりますが、社会人には、必ずしも 満点・つまり正解があるとは限りません。
複数の選択肢の中から、自ら判断することが求められます。
何年も経って、「あの判断は間違っていなかったな」とわかることもありますし、 自分で決断したあとに、その決断を正しい方向へ、さらに磨きをかけることもできる。
そのことを理解してから、何かを迷ったときに一歩前に踏み出しやすくなりました。
2. 苦手克服 VS 得意を伸ばす
学生はテストで点数が低いものがあれば、それを底上げすることで、より成功に近づきます。一方で社会人は苦手を克服したかと言って、それが大きく成功につながるとは限りません。
自分の苦手に対して「かなり得意」の人がいれば、平均点まで底上げしたとしても、
その「苦手」を切り札として使えないですから・・
「好きこそものの上手なれ」と言いますが、社会人になれば「得意を伸ばす」ことでいくらでも成功できる。
満点という上限はないですからね。
3. 記憶 VS 把握
学生は暗記することが、テストの点を上げる際に求められますが、
社会人は「知識がどこにあるのかを把握している(インデックス)」や「調べ方を知っている」ということが重要だということ。
もちろん、物事の概要を押さえておくのは大事ですが・・
以上、学生と社会人の学びの環境の違いについてみてきましたが
そのうえでなぜ勉強が必要なのか。
「勉強して成長することで、成功することができる。そのために必要なのは「高評価」を得ること。つまり勉強の目的は「尊敬」または「尊重」を得ること」
これに尽きますね。
勉強は知識のインプット (知識がないと差別化はできない・正しい判断もできない)
一方で、みんな勉強しているので、勉強すること自体は差別化にはならない。
・・・勉強についても、戦略が必要 ということですね・・・
何を・どこで・いつ・どう 学ぶか
勉強をする際の戦略について、このようなテーマで検討しました。
1. 何を学ぶか:得意を伸ばす
自分の得意について考える際に有効なのが「インベントリ(棚卸)」をすること、とのこと。
「自分は何が好きで、なにに興味あり、何が得意なのか?」
自分の 趣味、嗜好、背景 について頻繁に考える・・
中々普段から行わないことですが、自分について振り返ることってすごく大事ですよね。ちょっとしたきっかけが、自分の方向性を変えることもあります。
「得意なこと」がすぐにお金に代わるとも限りませんが、
ひとまず「お金を稼ぐところ と 趣味(好きなこと)」を平行して行うことも手段だなーと感じました。
2. どこで学ぶか:良い環境は成功要因
Matzさんは、「尊敬される環境」→「モチベーションが上がる」→「さらに学ぶ」→「周りとの関係がさらに良くなる」という、
「尊敬される環境」が良いループを生むということを仰っていました。
どのようにループを作るか。ということですが、
「尊重しない環境から逃げてもよい(人を変えることは難しい)」という温かい言葉をくださいました。
今の環境がそうでなければ、自分から良いループを作るために逃げるのも一つの手段です。
3. いつ学ぶか:ヒマの撲滅により隙間時間を有効利用
社会人のまとまった時間を作る難しさ。
私も働いていて、つくづく感じます・・・
平日は帰宅して就寝、という規則になりがちですよね。
なので、時間の使い方を再検討し 優先順位をつける必要があります。
その際に「成長・成功を優先できるか」ということですね。
心を強く・・・( ;∀;)
一方で、プライベートや睡眠時間は犠牲にしないで
「生産性を高めて、自分の勉強に充てる」
「自分の楽しみを学びに変える」これも重要です。
学びが楽しければ、苦も無く続けられますから、強いですね。
4. どう学ぶか:知のインデックス
先ほども出てきましたが概要の把握が重要。
それをインデックスとしてつけておいて、必要な時に調べればよい。
もう一つ、「好奇心を育てる(知らないことを知るのは楽しい)」というのも良いそうです。
アウトプットの重要性
最後に、アウトプットの重要性についても触れられていました。
「勉強は必要だけど、さらにアウトプットが必要」と。
なぜかというと、概要を学んだだけでは差別化にならず
アウトプットはハードルが高いので、差別化になるのですね。
これも戦略の一つです。
ただ、アウトプットを継続することは難しい・・・
本当にそうです。
そのような方に向けて、下記のようなアドバイスをいただきました。
・「あんなの誰でもできる」→「自分もやってみる」
・何も言わないのに、自分の内面をわかってほしい、というのは難しい。
・質は置いといて、アウトプットすること自体で成長につながる
・アウトプットを続けることで最適化されていく
・心理的障壁もなくなる
心強いお言葉ですね。
実は、この言葉がブログを始めるきっかけにもなりました。
エンジニアとしては、実際に学んだコードを応用して自分でコードを書いてみること。
まだ慣れない部分もありますが、継続することで最適化を目指していきたいと思います。
最後に
今回記載した内容が講演のすべてではありませんが、
特に印象に残った言葉は「自身のインベントリ」と「アウトプット」でした。
自分の心に耳を澄まして、表現してみること。
これが「差別化」や「生産性の向上」につながると実感しました。
私もアウトプットを継続していきたいと思います( ..)φメモメモ