Hatena::ブログ(Diary)

西尾泰和のはてなダイアリー

2013-03-26

プログラミング学習手段としての写経について

あるブログが「写経には効果がない」という趣旨のことを書いていて「何を言ってるんだ?」と思いじっくり読んでみたら、彼の言う写経は「動くとわかってる10000行のコードを何も思考せず作業として書き写すこと」を指しているようだった。「そんなわけないじゃん」と笑ってから「もしかして世の中は写経をそういう捉えてるのか?」と不安になった。

写経は自分の中にモデルを作るための行動で、他のもっと効率のよい方法と比べた場合の利点は「自分の中にモデルがなくても使える」点に尽きる。全く知識ゼロでいきなり「自分で考えて書く」ができる人はいない。考えるための材料となる知識をまず脳内に運び込む、それが写経だ。

写経の過程で大事なことは以下の3つだ。

  • 1: 早く学びが得られるように、なるべく小さいコードで実験し、すぐに結果を確認する。
  • 2: 疑問に思ったこと、考えたこと、気づいたことを書き留める。どうしてこういう書き方をするのだろう?もしかしてXをYに書き換えたらエラーになるのだろうか?そうか、さっき疑問に思ったあれは、今写しているところとペアになるようになっているのか、などなど。この思考が、次の学びのための足がかりになる。
  • 3: 一字一句同じに写すのではなく、自分が必要ないと思ったら省略すること。必然的に何が重要で何がそうでないかを考えることになる。

-----

今日の昼、「プログラミング出来ない奴ちょっと来い」を見てTweetした内容を転載しておいた。

-----

「写経」という言葉が誤解のもとだ、という趣旨のコメントには大賛成なので、なにかいい呼び名を思いついたら教えて下さい。

-----

追記:

先日「写経は無益」という主張に反論して「写経は有益」と主張した。しかし「写経が常に最高」と言ったつもりはない。むしろ写経は最低の勉強法だ。しかし他の勉強法が使えない、解説や仕様書や論文を読んでも頭に入らない、そんな時にでも使える最後の手段が写経なんだ。

shinriyoshinriyo 2013/03/27 16:07 「精読」は「内容を考えてていねいに読むこと。」という意味がありますが、
「内容を考えてていねいに写すこと。」っていうことで「精写(せいしゃ)」はいかがでしょうか?

egg_chickenegg_chicken 2013/03/27 16:12 私も、写経という語句に違和感を持ちます。
追実験、模倣、という意味を込めてリピートコーディングという言葉はどうですか。

さくさく 2013/03/27 16:12 模写?

ヤマヤヤマヤ 2013/03/28 13:08 小学校時代にベーマガを写経してました。何処かにミスも入りますし、せっかく入力したのが動かないと悲しいので必死のデバグです。英単語も知らずにやってました。最初の一歩としては良かったと思います。中学生になって、あの命令はこういう意味だったのかと、英語の授業で気付くのも楽しかったですね。

oneshotlife_tomoneshotlife_tom 2013/04/16 20:50 >「写経」という言葉が誤解のもとだ、という趣旨のコメントには大賛成なので、なにかいい呼び名を思いついたら教えて下さい。

Code Kataと意味合い的に近いような。

しがないプログラミング講師しがないプログラミング講師 2013/11/06 21:42 「もしかして世の中は写経をそういう捉えてるのか?」
そういう人が大半ですよ。コードの意味を考えながら書き写せる人は希少で、その時点で既に素養があって優秀です。残りの大半は考えるのが面倒で言われた通りに書き写すだけ。話になりません。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証