6月 152012
<< sinatra-contrib || JSONシリアライズ方法を設定する >>
プログラミング初心者が写経する時に気をつけると良い事を4つ説明します。
画像はイメージです
プログラムを勉強する時に、写経しろ(すでに完成しているプログラムを本から書き写せ)とか言われるが、ちょっと意識するとだいぶ違うと思う
1. 外から書け
例えば、1からnまでの数字を全部表示するプログラムがあるとする。
def run(max)
1.upto(max).each do |i|
puts i
end
end
run(10)
これを写経する時、上から下に1行目から順に書くのではなくて、まず
def run(max)
end
いちばん外側を書いて
def run(max)
1.upto(max).each do |i|
end
end
中を書いて
def run(max)
1.upto(max).each do |i|
puts i
end
end
こうなる。
上から書かないのが重要。プログラムは普通は外から書くものなので。
俺は今までに200人ぐらいはプログラミング初心者にコード書くのを教えた事があるんだけど、まず最初に直してもらうのはこれです。
2. 処理される順番に書け
上の「1〜nの数字を表示する」例では、先にdef runの関数を書いてしまってるけどまずはこれを書く
run(100)
次にdef runの部品を書く。
def run(max)
end
run(100)
コンピュータが実行される順に書いた方がいいですね。
先に下にrun(100)を書いておけば、実行できるから。
def runの中身を1行書く毎に実行できるので、文法の間違いもすぐ気付ける。
puts i が無い状態で実行しても画面には何も表示されない。でも実行してみれば文法にエラーがあるかはわかる。
たくさん書いてから最後にrun(100)を書いて、たくさんエラーがでると精神的にダメージがでかい。
プログラミングの初心者は、とにかく全部完成してから実行して、エラーが10個ぐらいでて助けを求めてくるんだけどこまめに実行した方が良いし、こまめに実行できるような順番でコード書いたほうが良い。
3. エラーでググれ
プログラムを書いているとエラーがでますが1to100.rb:3:in `とりあえず英語を読むと良い。それでも意味がわからなかったら”ruby undefined method”とかでググる。': undefined method `run'
みんな大学受験をして入学したはずなのに、どういうわけか黒い画面に白文字で英語が表示されると一切読まなくなる。
たぶんどの部分がエラーなのかわかりにくいのが悪いんだけど。
Railsとかだと、たくさんのクラス間で関数を呼びあってるから物凄い行数のエラーが表示されて、どこ読めばいいのかわからないからしょうがない
Javaならエラーを日本語で出すように設定してあげると読むようになる。
4. うまい人の作業を見る
ライブコーディングというやつなのですが、1からコード書いていってエラーに試行錯誤して動くところまで、うまく書ける人がやってるのを見ると良い。どういう順番で書いたり考えたりしてるかがわかると思う。
SFCだと、学部のころに履修した萩野先生のシステムプログラミングという授業が良かった。毎週課題が出て1週間悩むんだけど、次の授業で萩野先生が凄い勢いで答えを実装してくれる。かっこいい。
あとmyatsumotoは洛西さんがJavaScriptをライブコーディングしてるのを見て覚醒したみたいな事言ってた。
ポイントは、プログラム書くのがウマイ人のプログラムもエラーがでるということです。うまい人でもスペルミスやカッコのとじ忘れとかするんだけど、そういうのを見つけて直していくのを見せてもらうと勉強になると思います。