プログラミングを独学する時こそインプットを増やした方がいい

巷でよく「アウトプットを増やせ」というのを聞くが個人的な意見としてインプットを増やした方が良いと思っているのでそれについて書く。

以前少し書いたことがあるが、私はプログラミングを独学で学んだ。 その時インプットがメインでほとんどアウトプットをしてこなかった。今でもそれは正解だったと思っている。何故か? 答えは簡単で、「学ぶ」ということは情報を仕入れる、要はインプットのことを指しているからだ。それに独学でない人、つまり情報学科なんかにいる人は死ぬほど勉強している訳でちょろっと勉強したくらいでは到底太刀打ち出来ない。

全くアウトプットが必要ないかというとそうとも思っていない。アウトプットの瞬間に今まで仕入れた知識が自分に定着するからだ。 インプットとアウトプットどれくらいの比率でやればいいのかというと「インプットが溢れ出した時」にアウトプットすればいいと思っている。

ただ目だけで追った情報は自分の中ではぼんやりしていて形を成していない。 コードなり文書なりの形にアウトプットする時に同時に自分の中で形を成す。あるいは半知半解の部分が明みになって理解の手向けとなる。 そのぼんやりとしたものが形を成す瞬間が一番成長しているように感じるのでよく「アウトプットを増やせ」と言われるのではと思っている。 しかしそれはぼんやりとした情報が定着しているだけであって知識が増えている訳ではない。アウトプットの時に定着するものは今までのインプットに比例する。インプットがなければアウトプットの時の成長もない。 かといって定着させることなく情報を仕入れ続けると不安になる。あるいは、仕入れた知識を試してみたくなる。そういう時にアウトプットすればいいと思っている。 私はそれを「インプットが溢れた」と呼んでいる。

もう1つインプットを増やした方が良いと思っているのは大抵の問題は人類は既に解決しているからだ。無理にアウトプットしようと1時間掛けて悩むよりも10分掛けて解決法を学んだ方が手っ取り早い。 プログラミングを独学しようと思うと莫大な時間が必要になる。独学に取れる時間が有限ならば短時間で解決出来る方法を選ぶべきだ。 問題解決能力なんて手札が揃ってから考えればいい。碌な手札も持ってないのにそれで解決しようとするのは無理がある。まずは手札を揃えるべきだ。世の中のプログラマと同じ手札を揃えないとそもそも同じ土俵で戦えない。

ここで1つ言及しておきたいのが毎日ブログ問題だ。「毎日技術ブログを書き続けろ。つらくてもいいから続けろ。続けた先に見えるものがある。」なんて言われることがある。あれはあまり良くないと思っている。 本当に初学者の時は毎日くらいの頻度でインプットが溢れるかもしれない。しかしその期間は長くは続かない。ちゃんと学んで成長していればインプットのバッファも大きくなる。 すぐに1日の勉強量ではインプットが溢れなくなる。そうなった時にも毎日ブログを書く意味はない。ブログを書くのにも時間が取られるのを忘れてはいけない。ブログを書く達人になりたいのでもなければ時間を使う意味はさしてない。 それよりは平日に進めて土日で仕上げて日曜の夜にそれについてブログを書く、とかの計画的なサイクルを回した方が良い。あるいはもっと長いスパンで。

1つ、インプットばかりしていると懸念が生じる。それは実用上の問題ではなく自己満足とか成果とかの問題、精神上の問題だ。 何かを学ぶ以上成果が欲しくなる。特に実学なら実用的な成果が欲しくなる。学んではいるものの目に見える成果がないと不安になる。 例えば職のためにプログラミングを始めた人なら切実に成果が欲しいだろう。これについては私は今のところ有効な解決策を見付けていない。 目標のある人はどれだけ目標に近付いているかで測れるかもしれないが私には目標がなかった。 同じくらいの習熟度の人と比べるのが良さそうだが、独学同士相手を見付けるのは中々難しい。同学年の情報科学科の人と比べると正規軍に徒手空拳で挑むようなもので話にならない(そういう経験がある)。 時折たまに溢れ出たアウトプットを眺めてちゃんと前に進んでいるんだと自分に言い聞かせてきた。 不思議と、就職に関してもそれでどうにかなった。目に見える形にはなっていなくても面接などで話すと分かるのだろう。結局、不安は不安のまま抱え続けるしかなかった。独学とはそういうものなのかもしれない。

私も大学生でプログラミングに目覚めて今丁度丸4年。去年の4月からプログラマとして働いているが未だインプットの足りなさをひしひしと感じる。働きながら勉強を続けるが中々時間がとれない。 時間のある学生の時にもうちょっと効率的にインプットを増やしていたらと思う。そういう後悔をする人を一人でも減らそうと思ってこういう記事を書いてみた。

Written by κeen