こんにちは、Jeannieです。
プログラミングを勉強されている方、どんどん増えてますよね。
プログラミングの勉強を進めていく中でアウトプットが重要ということをよく耳にしませんか?
私も最初はアウトプットの重要性をよく理解しておらず、ただ単にめんどくさいと感じていました・・・
いま考えると恐ろしい話です。
世間でもよく言われるように、プログラミングに限らずアウトプットは非常に重要です。
今回はエンジニアとしての経験を踏まえた上で、アウトプットの重要性について解説していきたいと思います。

アウトプットは重要
結論を言ってしまうと、「アウトプットは超重要」です。
仕事で結果を出している人ほど、インプットよりもアウトプットを重要視しています。
プログラミングでも同じことが言えて、インプットだけで勉強する人とアウトプットしながら勉強する人とでは、成長スピードが大きく変わってきます。
一般的にイメージする勉強はインプットばかり

プログラミングに限らず、何かの勉強をするぞ!と思い立った後に取る行動にはどんなものがあるでしょうか?
こんなところでしょうか。
これらは勉強するにあたって、もちろん大事な行動です。
というより、これをやらないと勉強は始まりません。
学校の授業でも、まずは教科書を読んだり、先生から教えてもらったりことで勉強がスタートしますよね。
でもよく考えてみてください。
学校で習慣的にやってきた勉強方法って、アウトプットが少なくないですか?
いや、めちゃくちゃアウトプットしてるよ、という方も中にはいるでしょうが、
一般的な教育を受けてきた方の基本的な勉強方法はインプット重視なんです。
インプットの落とし穴
技術書や参考書を買って勉強することを例に考えてみましょう。
例えば、これからJavaを習得するために、参考書を買って勉強しようとなった場合、
まずは参考書を1から10まで読もうとしますよね。
勉強を進めるうちに、今まで知らなかったことが書いてあるし、新しい知識が増えてとても勉強になるなー。
そう思いながら、そのまま全部を読み進めていって、「全部理解出来たぞ!」という感覚で読み終えて、達成感を持ったまま次の参考書でまた勉強を始める。
こういった経験ありませんか?
僕はまさにこういう感じで、インプットばかりの勉強をしていました。
でも、これには大きな落とし穴があるんです。
それは「理解した気になっているだけ」ということです。
アウトプットして初めて気づくことがある
誰しも経験あることだと思いますが、自分が勉強したことや人から習ったことについて説明を求められたとき、思ったよりも上手く説明出来なかったことってありますよね?
これがまさに「理解した気になっている」という状態です。
自分の中では正しく理解したつもりなのに、いざ説明しようとすると論理的に説明出来ない、なんてことはよくある話です。
頭の中では点で理解していただけで、線として結びついていないような状態ですね。
でも、誰かに説明しているうちに点と点が結びついて線となり、自分の理解が深まっていくという体験を誰もが経験したことがあると思います。
これこそ、インプットだけでは正確に理解出来ていないという証拠であり、いざ知識を使おうとした時に使えないということに繋がるんですね。
プログラミングでも同じことが言えて、参考書をただ読んで知識を得ただけでは、プログラミングは出来るようになりません。
これが出来れば、この世は天才プログラマーだらけです。
インプットした知識を使って、プログラミングをやってみる。
その中で、しっかりと腹落ちして理解出来てなかった部分が浮き出てきたら、そこをまた理解し直して、またプログラミングをやる。
この繰り返しでプログラミングが上達していきます。
アウトプットの繰り返しが知識の定着につながる
アウトプットを繰り返し行うことは、知識が記憶として定着しやすくなるメリットもあります。
そもそも、脳は重要な情報だけを記憶として残しておく性質があるので、インプットしたての情報は、使わない限り不要な情報としてほとんどが捨てられてしまいます。
一方で、声に出して説明したり、手で紙に書くなど、運動神経と連動してアウトプットした場合、脳の中では重要な情報として記憶に残りやすくなります。
なので、知識を詰め込もうとして大量に本を読んだとしても、それだけでは記憶に残らず、忘れてしまいがちなんです。
誰かに話したり、本の内容を自分なりにまとめたり、手を動かしてプログラミングすることで、しっかりと記憶に定着させることが出来るんですね。
インプットとアウトプットの黄金比

アウトプットの重要性はお分かりいただけたかと思いますが、そこで気になるのがインプットとアウトプットのバランスですよね。
インプットとアウトプットはどれぐらいの割合でバランスを取れば良いのでしょうか?
おすすめのバランスは「インプット3割:アウトプット7割」
脳科学的に記憶をもっとも効率よく定着させるのは、
「インプット3割:アウトプット7割」と言われています。
この比率は、コロンビア大学の心理学者が実験によって導いた比率だそうです。
実験の内容はこんな感じです。
この実験の結果、最も高い結果を出したのは「覚える時間」に30%を費やしたグループだったそうです。
普通であれば、覚えることに時間を費やして、ある程度覚えた後に練習する、という順序を踏みそうですが、この結果を見るとそうではないんですね。
「覚える時間」の倍以上を「練習する時間」に使っているということです。
つまり、覚える時間(インプット)と練習する時間(アウトプット)の割合が3:7というのが最も効率が良いとされています。
アウトプットの割合を増やしましょう
ある調査によると、大学生の8割以上が教科書を読むことをメインに勉強しているそうです。
多くは「インプット8割:アウトプット2割」で勉強していて、上で述べた黄金比とは時間配分が完全に逆になっています。
これは、一般的な勉強方法で学習している人にとっても大きく当てはまるもので、インプットとアウトプットの割合を逆にするように意識しないといけません。
インプットの2倍以上をアウトプットに費やすというのは、慣れないうちは難しいかもしれませんが、学習効果を効率よく上げていくためにアウトプットの時間を多く取るように意識しましょう。
まとめ

今回はプログラミングの勉強におけるアウトプットの重要性を解説していきました。
内容をまとめるとこんな感じです。
プログラミングを始めようと思って本を買ったは良いものの、なかなか実際のプログラミングが出来ていない、なんて方は今すぐ環境を整えてどんどんアウトプットしてください。
質の良いアウトプットをたくさんして、知識の定着、そしてプログラミングレベルを向上させていきましょう!
コメント