あぱれる男子のつぶやき

プログラミングを奮闘中

プログラミング初心者になぜアウトプットが大切か?順序も含めて考えてみた

インプット、アウトプットの矢印


三度目にしてやっと誰かに向けた記事になりそうです、マサです。

この記事を書こうと思ったときにちょうどタメになるこばやすさんのツイートを発見。




今日はこのアウトプットの順序についてまとめます。


タイトルの通りですが、プログラミング初心者にとって成長する上で大事なこととは何でしょう?

寝る間も惜しんで勉強すること?

それとも、良質なスクールを探すこと?

確かにこれらが全く無駄とは言いませんが、ちょっと違いますよね。


プログラミングに限らずですが、

学んだことを即、アウトプットすること

これが一番大事であり、成長への近道だと言えます。

アウトプットの効果

MERIT



そうは言っても実際根拠がなければ、

「勉強だけで手一杯だし、めんどくさいなぁ」

となってしまいます。人間は楽な方に流される生き物ですからね。

かくいう私もかなり面倒くさがりですが、この記事に目を通していただいているあなたに、

「少しでもメリットがあるよ!」と伝えるために、まずは実例をご紹介。

科学的な根拠がある

米パデュー大学のカーピック博士は『サイエンス』誌の2008年2月15日号で、「入力を繰り返すよりも、出力を繰り返すほうが、脳回路への情報の定着がよい」と報告しています。その理由は、4つのグループに言語を覚えてもらい1週間後テストを行った実験で、途中アウトプット(確認テスト)しながら覚えた2グループのほうが、覚える(インプット)ことに集中した残りの2グループよりもはるかに点数が良かったからです。

脳はアウトプットで記憶する! ひとりでできる『アウトプット勉強法』 - STUDY HACKER|これからの学びを考える、勉強法のハッキングメディア


この記事にもありますが、正直アウトプットが大事なんてことは私が言わずとも、昔からクラスの一人や二人、
ましてや先生なんかもうるさいくらい言っていたでしょう。(じゃあこんな記事書くなよとは言わないで)

「人の記憶は誰かに教えることで定着する」

これは私が学生のときに教えられたような気がする言葉ですが(?)、
学んだことを自分の解釈で誰かに伝えた時、記憶の定着が良かったことはありませんか?

中高で英語の単語を覚えたり、文法を覚えたり(インプット)したあと、
ペラペラに話せるようになりましたか?
実際に会話(アウトプット)してみないと定着しないのです。

プログラミングも言語です。英語と同じで、学んだことは何かしらの形で制作物として残さないと、
何となく理解した状態になったまま全く成長できません。

アウトプットのメリット


個人的にプログラミング初心者のうちに学習したことをアウトプットする最大のメリットは、
挫折しにくいことにあると考えています。

トップのツイートでもあったように、学んだことを形として残し、誰かに見せる

ここまでやって初めてアウトプットの完成です。


そして、インプット→アウトプットしているときは孤独との戦いです。

そんなときに役立つのがTwitterなどのSNSで、「いいね」の反応があると俄然モチベーションがあがります。

もちろん完成していなくても途中でもいいんです。

ただ、覚えたことを動画や画像に残してつぶやきまくる。

私も、初めてアウトプットしたのはただの模写コーディングです。

そのツイートに少しでも「いいね」がついたときは嬉しくて、

「もっと色々作ってやるぞ」と燃えました。


あとは、Twitterなどに言えることは、独学しているときに途中でつぶやくことで、
ヒントをもらえることもあるということですね。

エラーの連続で「今日はもういいや、、」と意気消沈せずに済むかもしれません。


アウトプットの方法

1と2と3

アウトプットの順序


では、アウトプットを行うのに最適な順序とは何でしょう?
個人的に実践していて効果を感じたのは、

  1. Progateやドットインストール、参考書などで基礎をインプット
  2. サイト模写などで学んだことをコーディング(アウトプット)
  3. コーディングが5割進んだら成果をツイート
  4. 更に模写コーディング(アウトプット)
  5. 完成したサイトを動画や画像でいいのでツイート
  6. 更にこの過程で身についたことをポートフォリオなどで自作する(レベルをあげたアウトプット)

です。

途中経過の報告は各々好きなタイミングでいいとは思っています。

ただ、共通することは「ちょっと気が緩みそうだなぁ」と少しでも感じた時に発信する。

別にTwitterにこだわらずとも、フェイスブックやLINE、身近な友人でもいいです。

こうすることで、途中で中だるみせず、更にアウトプットへのモチベーションが保たれます。


アウトプットの具体的なやり方

「そうは言ってもどうやってアウトプットするのがいいの?」

となると思います。

これは私の考えるやり方なので参考程度としていただけるといいのですが、

  • 基礎学習で作っている見本の制作物をノーヒントで作ってみる
  • 既存のサイトをカンニングにならない程度に確認し、作ってみる
  • 自分のポートフォリオサイトや経験してきたことの記録を元に作ってみる

順を追って説明しますと、
まず1つ目は、Progateやドットインストールで見本で作るサイトをノーヒントで作ってみることです。

まあ、Progateには道場というものがありますが、道場もイチからではないですよね。

私の場合は見本を元に、余白や画像や配置を変えたりしながら自作しました。

やっていると気づくのですが、「ここはこのコードが使えるな、、」といった

自分で考える作業時間が多くなってくるんです。

これが知識の定着にはかかせないんです!


そして、2つ目は「今の自分のレベルで作れそうなサイト」を調べ、ディベロッパーツールで検証し、
コードを直接見ないように、余白、色、サイズなど最低限だけ確認しつつ作り上げる。
(模写に向いているサイトのまとめや、ディベロッパーツールの使い方などはまた記事にしようと思います。)

ここまでやると、かなり知識として定着します!


3つ目は自分でやってて楽しかったことなので毎回はやらなくてもいいかと思います。

例えば、私の場合はカメラが趣味で膨大な量の写真があったので、
「HTML/CSSは結構身についたし、架空の写真サイトとか作ってみたら面白そうだなあ」
と思いつき、作りました。


これを作ったときは知識が完全に身についていたとは言えませんでしたが、
完成まで根気よく続けることで本当に成長できたと感じています。


おわりに

アイデア

以上が私が思う、アウトプットの大切さとその方法論です。
まとめると、
学んだことはアウトプットして、みんなに見てもらって更に成長につなげよう!
ということです。


教科書を読んだだけでテストで満点を
取れるようなヤツはいないんです。そんなことができるのはほんのひと握りの天才だけです。

あなたも私も凡人です。

さあ、どしどしアウトプットしましょう。


それでは。