アウトプットからインプットを考える
こんにちは、大学4年生の岩崎です。最近は卒論前でビクビクしてます。
今回の記事は、これからプログラミングを学ぶ人、プログラミングを教える立場の人に響けばいいかなぁと思っています。
また、人にとっては当たり前のことかもしれません。しかし当たり前のことだからこそ、なかなか教えてくれないと思います。
アウトプットからインプットを考える
普通インプットがあってアウトプットがあると考えがちなんだけど、実は逆
アウトプットのためにインプットをするという感覚のほうがモチベーションを保ちやすいのでは?
というテーマの記事です。まず僕の経験談を話します。
苦痛だった大学のプログラミングの授業
僕は大学2年生の時授業で初めてプログラミングを学んだんだけど、(その時の言語はCとJava)
当時はとにかく授業がつまならかった。
大学のプログラミングの授業では、まず文法を学ぶ。
if文、for文から始まり、class、リスト、継承クラス...
if文やfor文は基礎の基礎だからいいのだけど、継承クラスって何のためにあるんだ...どこで使うんだ...
と学んでいる時苦痛だった。そして最後に学んだ知識を確認する意味で小テストが出るのだけど全然できる気がしなかった。
なんとかできる友達に聞いて問題を解いる状況だった。端的に言うと、プログラミングが楽しくなかった。苦痛だった。
授業に追いつこうと厚い参考書にチャレンジするも挫折
このままではマズイと思い、授業で与えられた分厚い参考書(はじめての〇〇プログラミングみたいな名前の本)を
とにかく一通り知識をインプットしよう! と頑張ってみたが3日で挫折。
中学生の時英語を習得した時のように、まずは文法を網羅しよう!とチャレンジしたがダメだった。
ますます不安になった。プログラミングなんて自分には無理だと思い始めている。
一応大学2年生の間のプログラミングの授業は、友人の協力もあり単位を取得した。
たくさんプログラムを書いたけど、ただ手を動かしていただけで、身になった気はしなかった。
転機となったオセロゲーム
3年生になってもプログラミングの授業は続いた。
その授業は3目並べやライフゲーム、ダンジョンゲームなどのゲームを作りながらプログラミングを学ぶという授業だった。
その授業も大変だったけどそれなりに楽しめた。
そして秋のある日、ふとオセロゲームをJavaで作りたいなぁという気持ちになった。3目並べを応用すればオセロも作れるだろうと。
ちょうどIT企業でのバイトの面接が11月にあったので、それまでには作っておきたいと思いつつ手を動かし始めた。
もちろん最初は全然うまく行かなかった。だから色々調べた。ネットで検索したり、過去の授業の資料を見返してみたり、本を買って勉強したり。
結果的にオセロゲームは完成し、敵のAIまで作りあげた。ついでにマインスイーパーやポケモン図鑑などもJavaで作った。
それらも最初からできたわけでなく、たくさんエラーを出し、そのたびに解決策をネットで調べ、プログラミングを書いた末、完成した。
何よりこの時は楽しかった。特にこの時期はサークルの引き継ぎなどで一番忙しかったけど、スキマ時間などを使ってドンドン完成に近づいていった気がする。楽しいからプログラミングをしていても苦じゃない。
結果IT企業の面接も通り、現在はUnityでのゲーム制作を続けている。
学びのプロセスの違い
今回のこの一連の出来事で思ったことは、
最初からインプットしようと思うより、アウトプット先を最初に決めてからインプットを始めたほうがモチベーションを保ちやすいのではないかということ。
インプットを先にしてる人って、昔の自分もそうだったんだけど、知識の網羅をゴールにしている気がする。
全部理解して覚えてからがスタートで、そうじゃないとアウトプットなんてできないと思い込む。
友達が作った作品を見て「自分には無理だ...」と思うあの気持ち、知識の網羅をゴールにしてるから自分が知らないことに出会うと落ち込む。
もちろん最後まで続けば素晴らしいが、なかなか最後までモチベーションが続かない。実際に僕もそうだった。
そうではなく、まず何をアウトプットしたいかを考える。そしてそのために何をインプットすべきか考える。
プログラミングであれば、何のアプリを作りたいか、どのようなWebページを作りたいか
それからインプットを始める
その流れの方がプログラミングを学ぶモチベーションを保ちやすい気がする。