プログラミングができるようにならない君へ。なぜ、手を動かさない?まずは模写しろよ!

f:id:hrmch-ioii:20170926005637j:plain

エンジニアの @nabeemichi です。

ぼくはエンジニア歴が6年ほどで、現在はフリーランスでとある会社に週3日で常駐している。

フリーランスで3日しか会社に行かないのに、なぜかド新人の育成までまかされているのだが…

なかなかプログラミングができるようにならない人を見て気づいたことがある。

それは、教科書や参考書を読んで実行しないでできる気になっているってことだ。

読んで終了。実際にやってみるということをしない。

そんな人は、一ヶ月たっても、2ヶ月たっても、半年たっても…

何もできるようにならない。

正直、なんで勉強したらアウトプットして、実行してみて、本当に教科書に書いてあるような現象が起こるか?を検証しないっていうのが不思議でならない。

インプットはアウトプットするためにするもの

当たり前なのだが、アウトプットしない知識は…

ゴミ同然というか、意味がない。

PCだって、利用しないものがメモリにあったら、どんどんすててメモリを開放していく。

使わない知識だって、頭の記憶領域を使っちゃうんだから、

必要な知識を、必要なときに、必要な文だけ入れないといけないんだ。

人間の記憶力だって有限なんだし。

そもそもアウトプットしてみて、自力でできるようになってないのに…

テキストやった!

とか言う人がいるんだけど、正直ビビる。

その人はページをめくることが目的になっているのかな?

スキルを高めることが目的のはずなのに終わらせることが目的になってる。

しかも誰よりも早く、テキストのページをめくり、

コピペで実行して、なんかできた感覚を覚え、

実際に、テキストとちょっと違うことを要求した瞬間

何もできなくて死亡する…

なんのために勉強しているのだろうか?

本当にできるようになりたいのなら、手を動かせ!

プログラミングできるよになるために、本当に必要なことは模写することだ

どんなテキストをやっていてもいい。

プログラミングができるようになりたかったら、テキストやサンプルソースを

模写しろ!

そして実行、デバックして動きを確かめろ。

んでもって、模写したものが想定どおりの動きをしたなら、

1つだけパラメーターを変えて、教科書に乗ってないパターンを試すのだ。

どんな動きをするのか?

こんなパターンはどうなるのか?

ってか、気になるだろ?普通。

模写した後は、他のパターン試したくなるだろ!


んでもって、試したくなるだろ。

いろんなパターンを。

一つの例題を模写するだけでも、その後1日は別パターン試したりして遊べるだろ。

武術もそうだろ。まずはパクることから

武術も師匠の型を真似して、パクって完全なるコピーをつくれたら、

ようやく独自の技に挑戦できるのだ。

だから何もできないなら、とにかく模写してプログラミングをしまくるのだ。

コピペなんかしてたらいつまでたってもできるようにならないぞ