プログラミング初学者のアウトプット方法

こんにちは。ひろっきーです。

現在ITエンジニア転職を目指して独学4ヶ月目で日々学習、現在はメモアプリを作りながらReactの学習を進めています。

今回は初学者の『アウトプット』に関して考えていきたいと思います。

皆さんは普段学習をするときに

「インプットばかりでアウトプットができていないなぁ」
「アウトプットと言ってもどんなことすればいいの？」
などお悩みの方も多いかと思います。

今回はアウトプットに関して「方法」とその方法の「メリット」「デメリット」を紹介していきたいと思います。

# １．筆者経験談とプログラミングの最初の挫折ポイント
まずプログラミングではじめにすることは「学習」です。

ドットインストールやprogateなどの教材を用いてインプットをされる方が多いと思いますが、自分も独学で始めたときはこういった教材にお世話になりました。（今もお世話になってます）

しかし、実際ある程度理解して実際にコードを書いて何か実装しようとしても

「出来ない、、、」（汗）

理解してるつもりでも応用出来ないことがあると思います。初心者の最初の挫折ポイントだと思います。

# ２．インプットとアウトプットとは
インプットとアウトプットにの違いに関して考えていきましょう。

インプットとは直訳すると「入力」、アウトプットは「出力」という意味になります。

これをビジネスや学習に当てはめると、インプットは知識やノウハウを学ぶことで、対してアウトプットとは実践や共有、効率化といった行動のことを指します。

インプットとアウトプットの関係性として例えば野球でいうと、まずバットの握りを教えてもらったりルールを覚えたり、バットにボールを当てる為に素振りをして練習したりをインプット　→試合や練習に出る、ヒットを打つといったアウトプット　→　よりボールを遠くに飛ばす為の筋トレを学習実践するインプット　→　長打を打てる回数が増えるアウトプット...

というふうに結果をより良いものにするためにインプットとアウトプットを繰り返すわけですね。

今回はプログラミング初学者さん向けに最初のアウトプット方法をいくつか紹介していこうと思います。

# ３．アウトプットの方法
アウトプットの前提として「誰かにフィードバックを貰える環境を作る」ことが大きなポイントとなります。

つまり「人」と「習慣化」と「ツール」がアウトプットには必要です。

それを踏まえた上でいくつかアウトプット方法を紹介したいと思います。

1. Twitter型
2. 情報共有型
3. ポートフォリオ型
4. 配信型
　 - １WAY
　 - ２WAY
5. 質問回答型
以上５つの型に当てはめることができると思います。

番号が大きくなるほど難易度が高いかと思います（個人的な意見です）

それぞれのアウトプット方法に対して深堀りして効果やメリット、デメリットを考えていきたいと思います。

## ①Twitter型

【効果】

投稿者の積み上げたことや継続性がわかりやすい。Twitterなどはプラットフォームとしてユーザーが多いのでツイートの質が高ければフィードバックをもらいやすくなる。結論アウトプットとしては大きな知識の定着率などには繋がりくい反面、習慣化しやすいので誰かの目に入りやすく協力してくれる人を生むことができる。

【メリット】

・習慣化しやすい。

・継続することで自身を知ってもらうきっかけになる。

・文字数制限のあるプラットフォームではより明確にトライ＆エラーの内容を記述する練習になる

【デメリット】

・積み上げた内容と自身のツイートが混同して見にくい。（Indexとしての性能が低い）

・ブログのような深堀りした内容には向かない。

・最初の方は自分の認知度が低く具体的なフィードバックがもらいにくい。

## ②情報共有型

【効果】

とある内容をより深堀りして記事や書籍を調べる為、自身の知識定着率が高くプラットフォームによるがIndex性も高い。記事の書き方としても、自身が学んだことを自分の言葉で解説する方法や、エラーに対しての対処や調べたリソースや手順を解説する方法がある。また、自身がググってるなかで役に立った記事やサイトを共有するだけなどでも使える。

【メリット】

・自身の経験に基づいて書く為、知識定着率が高い。

・質の高い記事はシェアやいいねされやすい。

・検索性に優れている。（忘れた頃に見返し易い）

【デメリット】

・同じような記事が多く検索されにくいためフィードバックを貰える機会が減る。

・文章力が乏しいとアウトプットにもインプットにも時間がかかる。

・時間がかかる為継続するのが難しい。

## ③作品実装型

【効果】

とにかく簡単なアプリやサイト模写でもいいので作ってみることで実務経験に近いものをより積むことができる。作ったものをweb上に公開できればよりアウトプットとしては効果が大きく経験値としては大きい。GIthubなどに公開することでコードのフィードバックをもらえたりイシューの解決にもつながる。

【メリット】

・実務経験に一番近いので効果的。

・Githubやコマンドなど、実装の開発環境構築も学べる。

・実装できればフィードバックをもらいやすくなる。

【デメリット】

・初心者のうちは設計が難しい。（一人で達成可能かの判断が難しい）

・質問できる環境やエラー解決能力がないとなかなか進まず実装出来ないなど挫折に繋がったり、とにかく多くの時間を要する。

・サイト模写などはGithubなどオープンソースの取り扱いにも注意が必要。

## ④配信型

【効果】

配信型は更に「１WAY」と「２WAY」に分けられます。YouTubeやVoicyなどのメディアを使用して行う１WAYタイプ、講演会や勉強会など講義形式でおこなう２WAYタイプで分けられます。どちらも自身の知識を発信する点では情報共有型と同じですが、話し方や身振り手振りなども評価の対象となります。２WAYなどは講義や公演というよりも学習の発表をするような場をイメージしてもらえたらと思います。

　### -１WAY

【メリット】

・たくさんのインプットが必要な分、アウトプットの量も大きい。

・やり方やプラットフォームによっては片手間でできる可能性がある。

・トーク力や企画力を一緒に磨くことができる。

【デメリット】

・コンテンツとして捉えると編集など余計な時間が掛かる（動画編集、コメント返信など）

・知識プラスで企画力やトーク力が必要である。

　### -２WAY

【メリット】

・準備が大変な分知識のリターンは大きい。

・ディスカッションや質問に答えることができるぐらい理解出来ていると経験、コミュニケーション力が伸びる。

【デメリット】

・同じ理念やニーズを持った人を探す必要がある。

・高いコミュニケーション力が求められる。

## ⑤質問回答型

【効果】

質問回答型はインプットとアウトプットを同時に行う方法です。情報共有型と似てますが、困ってる人を助ける「人助け」の様なところに時間を割くことで知識をインプットし困ってる人の問題を解決することでアウトプットします。こちらは質問者側の質問の質やお互いの関係性でモチベーションが変わったり、自分が助けたいと思う問題と自分の知識が見合った質問を探すのが難しい性質がある。

【メリット】

・相手との信頼関係を築きやすい。

・一人で調べるよりも多くのリソース（記事や書籍）などを知ることができる。

【デメリット】

・自身の知識として既にあるものを多数答えても、知識の定着には繋がらない。（自分が学習中の内容に対して時間を使うと効果的）

・自分のスキル感にあう質問やプラットフォームを探すのが難しい。

というように５つのアウトプット方法があり効果的に使うことで、知識の定着率を上げることができるようになります。

# ４．まとめ
アウトプットに関して考えてきましたがいかがでしたでしょうか？

プログラミング初学者はいきなりサービスやすごいアプリケーションは作れないですが、そういったアプリケーションやサイトを作る為にインプット（学習）をしてアウトプット（知識の定着）を行いプロダクトを作れるようになって行くと考えています。

これらのアウトプット方法で自分が得たい効果をみて、「いいな」と思ったり「こういったスキルもつけれるな」と感じたり「これ苦手だからあえて挑戦してみよう」と思ったらこの５つのアウトプット方法を試してみて下さい。