どうも、ウェブ系ウシジマくんです。
今回は2018年9月29日に行われた、【まつもとゆきひろ氏 特別講演】20代エンジニアのためのプログラマー勉強法で学んだことを書いていきたいと思います。
会場は渋谷スクエアにあるサポーターズColabでした。定期的に、まつもとゆきひろ氏(以下Matz)はここで講演を行われているようですね。
前回同じ会場で若手エンジニアの生存戦略という講演をされていて、その時学んだ記事もありますので、よろしければどうぞ。
学生と社会人における勉強の違い
Matz「Googleはあなたの友です」
詳細は覚える必要はないし、必要になったらググればいい。
暗記するよりも、知識のインデックスを増やす。
プログラミングで実績がある人ほど、同じことを言っている。
それくらい、この考え方は重要ですね。
— ウェブ系ウシジマくん@リモート専門エンジニア (@web_ushizima) September 29, 2018
社会人で勉強しようとすると、学生時代のスタイルに影響され、満点を目指すような勉強をしている人が多いですよね。
ただ、学生時代の勉強は記憶することが前提なので、そのようなスタイルで勉強すると、途中で挫折しがちです。
学生と社会人は同じ勉強法が必ずしも有効とは限らないんですよ。
受験勉強をすごく頑張ったり、テストで好成績を収めたことがある人ほど、社会人になってからの暗記型で勉強しようとすると、臨機応変に対応できない人が多いですよね。
僕も以前まではプログラミングの勉強で、
文法や使い方、処理方法など、すべて暗記しなきゃ!
と思いこんでいました。
しかし、覚えても覚えても、項目は膨大にあるので、正直その量に圧倒されてツラく感じたことがあったんですよ。
でも、ある日、
覚えることたくさんありすぎて、全部暗記とか、いくら時間があっても足りない。
もう、必要な時に都度ググって、よく見るサイトはブックマークしとけばいいや。
と考えるようになってから、すごく気持ちが楽になったんですよね。
だから、そういう意味では、
すべてを暗記するよりも、知識のインデックスを増やすようなイメージで勉強するといいです
という言葉に、めちゃくちゃ共感できました。
これ、実は著名なプログラマーが未経験者から「どんな勉強法がいいですか?」と聞かれた時に、鉄板の回答なんですよね。
人間は忘れる生き物だし、今の時代、Googleという巨大な辞書がいつでもどこでも閲覧できるようになっているので、それに頼ればいいと思うんです。
学生の勉強には満点があるが、社会人の勉強には満点がない
【得意分野を伸ばすよりも苦手克服】が、勉強におけるセオリーだが、社会人の勉強は逆。
得意分野を伸ばした方が、間違いなくいい。学生は記憶することに比重が置かれるが、社会人は把握することが大切なので。
苦手なものに時間をかけてストレスを貯めるよりも、得意なことをトコトン突き詰めていく方が人生楽しくなるじゃないか?という考え方。
僕も得意なことを突き詰めていった結果、今フリーランスとして仕事をしているので、考え方としては同じなのかも。
もし僕が逆の考え方だったら、できないことがたくさんありすぎて、勇気が出せず、恐らくフリーランスとして独立しなかったかもしれません。
なぜ社会人は勉強するのか?
• 良好な人間関係がほしい
• 嫌なことはしたくない
• 高収入がほしい
• 好きなことで生きていきたい
これらを実現するために勉強するのが、社会人のモチベーションとなっているのではないでしょうか。
また、成功する確率を高めるために必要なのは、
• 高評価
• 尊敬される
• 尊重される
この3つであり、「尊敬」「尊重」がキーワードになるかと。
この2つの単語は、似ているようで実は微妙に違いますね。
尊敬:人格的評価が伴う
尊重:ないがしろにされないとうだけで、人格は無関係
また、成功するためには、周囲から認知される必要があります。
知名度は価値と可換。つまり、有名であることは、それだけで価値があるということです。
確かに、褒められると嬉しいし、モチベーションに繋がりますね。
特に、自分の成長を見守ってくれている人からポジティブな反応を貰えると、僕はそれだけで頑張れます。
それで頑張った結果、実績ができたり、収入が上がったりといった好循環になるのが、ここでいう成功確率を高めるということなんじゃないかなと個人的には思っています。
How to what to study(何を勉強するのか)
自分自身について考える「内省(≒棚卸し)」によって、何を勉強するのかを決めるといいです。
それよりも大切なのは、動き出す前に方向性をしっかり決めること。
走り出すのは楽だけど、走り続けるのは大変ですし。
また、内省するときは得意なこと・苦手なことについて考えてみましょう。
個人的には、
• 好きなことは上達する
• 苦手なものをなくすことに意味はない
• 実社会に満点がない
と思っています。
自分の人生は自分だけのものなので、「どういった生き方をしたいか」を考えることで、やることを見失わないようにすることを、Matzは伝えたいのではないかなと思います。
僕自身は毎月、月が変わるたびに手帳に目標を書いているのですが、それに向かって不足していることがあれば、勉強していくような感じでやっています。
最初は面倒くさいかもしれませんが、やってみると目標クリアした時に、かなり達成感があるのでおすすめですね。
コンフォートゾーンから抜け出すこと
「普段ならやらないことをやってみたりする」など、一歩踏み出すことが大事です。
人間は年齢を重ねるだけで、何もしなくても身体的にも精神的にも変化するもの。
そのため、変化恐れない訓練をしておくといいですね。
コンフォートゾーンを抜け出すのは、どうあがいても結局大変な目に合うので、それを踏まえて戦略的に行動していくことが大切だと思います。
心地よい空間というのは、ついつい長居したくなるものですよね。僕も正直、生活するだけだったら、正社員でいた方が楽でした。
社会的な保証もされていますしね。
でも、僕自身かなり飽きっぽい性格なので、心地よい空間にずっといると、つまらなく感じるんですよ。
「どうせ仕事をするのであれば、チャレンジしがいのある方がいい」と考えているので。
モチベーション・時間管理・アウトプットについて
モチベーションについて:暇だと感じるのは、自分のモチベーション管理ができていない証拠なので注意。
時間管理について:時間の使い方はその人にとっての優先順位。
アウトプットについて:インプットだけでは、差別化要因にはならないから、クオリティは別として、学んだことをアウトプットするといいですよ。
見積もりについて:自分が想定している時間の3倍の時間を見積もった方がいいです。タスクの割り込みがあった時のバッファも考慮できるので。
アウトプットについてですが、別に「質のいいアウトプットをしなきゃ」と最初から力を入れる必要はないんですよね。
かけた時間に対してクオリティが必ずしも比例するとは限らないので。
それよりも、「インプットしたあとに、いかに早くアウトプットするか」に重点を置いた方が、知識の定着は早いと思うんですよ。
少なくとも、僕の場合はそうでした。
この記事だって、Matzの講演会が終わったその日に書き上げたものです。
講演を聞いてメモしたことを自分なりの意見を交えて記事を書くことが、今回のアウトプットに僕はしています。
それだけで、休日という自分の時間を費やした甲斐があると考えているいるので。
基礎をおさえることと、英語を学ぶことについて
プログラミングをしていくのであれば、どこからしたのタイミングで
• アルゴリズム
• コンピューターアーキテクチャ
といったようなで大学で学ぶような基礎は抑えた方がいいと思います。
また、積極的に英語を学ぶのもいいですね。英語ができれば18億人と話すことができるし、タイムマシン経営もできます。
他にも、英語は知識を得る手段として、最適なので、それだけでもメリットは大きいのではいでしょうか。
レベル感としては、読むことができることが最低限で、雑談したり、講演できるとなおOKですね。
語学は場数ですから、完璧は目指さなくていいです。
英語に関しては、Google翻訳を使ってでもいいので、抵抗感をなくしておくことが大事だと考えています。
これから先、英語にアレルギーがあると、どんどん生きづらい世の中になっていくと思うので。
一次情報をいち早く手に入れようと思ったら、英語のニュースサイトや記事などを漁る必要がどうしても出てきます。
プログラミングだって、エラー文は英語ですし。
もし英文を読むのがツラいのであれば、Podcastなどを聞き流すところから始めるのもいいと思います。
ちなみに、Matz自身は必要に迫られて英語は身につけたと話していましたよ。
「自分が何が得意なのかわからない」という質問に対して
自分の得意がわからないのは、最初は当たり前じゃないでしょうか。
それなら、自分が面白いもの、好きなものについてやってみればいいと思います。
しばらくやってみて、向き不向きを考えればOKかと。それが内省=インベントリ(自分自身の棚卸し)だと思います。
内省の期間はとくに関係なく、「自分が本気で考えられた」と思えるのであれば、それでいいのではないでしょうか。
「自分の生き方は自分で決める」というのは、自由そうに見えてすごく難しいですね。
特にフリーランスは個人事業主なので、「自分が何をしていくのか」という軸がないと、正直いいように使われたり、不安に押しつぶされて終わりな気がします。
やりたいこと、やってみたいことを定期的に考える習慣をつけていけば、少なくとも毎日不安で仕方がないという考えからは抜け出せるのではないかと思います。
未経験からプログラミングを学ぶことについて
プログラミングに対して、「これは面白いなー。」と思えるかどうかじゃないですかね。
「収入・生活のためにプログラミングをやっている人」と「これ、面白いな」と思ってプログラミングをやっている人は、どうしてもノビシロに大きな差ができると思うんです。
どうせやるなら、面白がって学ぶことも大事だと思いますよ。
休日までプログラミングのことを考えたくない!と思う人もいると思いますし、それが間違っているとは思いません。
僕自身、すごくゲームが好きなので、プログラミングも同じ感覚でやっているんですよ。
これまでできなかったことがどんどんできるようになって、自分がレベルアップしていく感覚がすごく楽しくて。
そういった意味では、自分はプログラミングの才能があるなと思っていますね。
最後に
• 自分を含めて誰かを見下さないこと
• 自分をマーケティングすることで、相手にどう売り込むかを考える。
• そのために学ぶのが勉強だし、自分にあったスキルの伸ばし方について考えること
自分の人生について、貪欲に考えてもいいじゃない。
全体を通じて、今回の講演は具体的な方法論よりも、自分の人生を真剣に考えていくためのヒントを、色々とMatzからもらえたような気がします。
日々目の前の仕事に忙殺されていると、自分のことについてないがしろにしがちですが、時には立ち止まって、内省していく時間も設けていくのも大切ですね。
最後までお読みいただき、ありがとうございました!
コメント
[…] 知識のインデックスを増やすようなイメージで勉強せよ、とMatzもいっているので、このあたりは間違ってなかったかなとおもってます。 […]