前回の投稿から数日経っていますが毎日、何かしらのJavaScriptを書いています。勉強開始から2週間が経ちました。まだまだ振り返るには早すぎるのかもしれませんが、勉強方法について少し疑問を持ち始めたので書いてみます。
#プログラミングの勉強とは?
私は小さい頃から運動神経が良さに恵まれてスポーツが得意です。どんなスポーツにも共通していることは 思い通りに体を動かせるかどうか に尽きます。武井壮さんが同じことを言っていたのを見て、とても共感できました。思い通りに体を動かせるとスポーツの専門的な技術練習に時間をさほど費やさなくとも、普通の人以上のパフォーマンスは発揮できるんです。
そして、最近考えるのがプログラミングにおける 思い通りに動かせる 部分というのは何にあたるのだろうということです。ここ1週間は写経に近いことをやりました。写経といっても、ただ写すのでは効果が低いことは想像できたので意味や動きを考えながら動画やソースを見ないで完成させることを試しました。
##ソースを見ない写経の効果
Math.floor(Math.random() * xxx.length);
を利用する簡単なおみくじ、new Date().getTime();
で現在までの経過ミリ秒との差を求めることで誕生日からの経過日数の取得、setTimeout(function() { xxx(); ), 100};
を利用した1秒ごとに更新させるタイマーの表示なら何も考えずに作ることができるようになりました。右も左もわからなかった2週間前から見れば夢のようです。しかし、2週間という時間と効果を考えると、この方法をこのまま続けてよいものかどうか凄く不安になります。
##プログラミングの基礎
スポーツの話で 思い通りに体を動かせるかどうか と書いたようにプログラミングにも何か基礎的なものがあるのではないかと感じ始めました。どんな言語にも共通するような根っこの考え方のようなものです。近道を探して楽をしたいという気持ちではなく、根っこの部分を鍛えたいと考えています。ソースを見ない写経は文字の打ち方を間違えなければよいだけの話で、それはスポーツでいうところのカーブのかけ方やルールに相当する気がします。
new Date().getTime
と書いて書き方が間違っているというエラーが出ても、それは書き方のルールを覚えているかどうかの話で、書き直せばいいだけですし忘れていれば調べるだけで済みます。それはプログラミングの基礎力とはまた別の話ではないでしょうか。ソースを見ない写経を繰り返していて同じところで、つまずき「また忘れていた」と感じたときに今やっていることは暗記に近いのではないのかと疑問を抱きました。物事を覚えることを軽く考えているわけではありませんが、暗記に時間を費やすことは遠回りのような気がするんです。かといって、どういう方法をとれば基礎が身につくのか全くわかりません。わからないからと立ち止まっていても時間がもったいないので、何かしら触っている毎日です。
##質問です
Qiitaはプログラミングの情報を共有する場所らしいので、こういうエントリーは場違いかもしれませんがプログラミングの先輩である、みなさんの勉強当初の経験や考えをお聞かせ願えませんでしょうか?