初めて学ぶ時に有益。プログラミングの写経についてまとめてみた。
趣味や仕事でプログラミングを勉強している人、これから勉強しようと思っている人向けの記事です。4分程度で読むことができます。
これまで経験したことが無かった領域のプログラミングをする仕事の予定が入ったので、スムーズにプログラムを作れるように、前もって勉強しています。
本当に扱ったことがなかったので、公式サイトで公開されているサンプルコードを自分で打ち込んでみて、プログラミング全体の流れをなんとなく理解できるようになるところから始めました。
既にソースコードが入手できるようになっているにも関わらず、敢えて自分で入力して学習していく方法を「写経」と呼ばれていたりします。
この写経ってどれくらい効果があるものなのだろうか?と疑問に思い、自分の考えをまとめたり、世の中の評価を調べてみたので、紹介しようと思います。
この記事には次のことを書きました。
プログラミング学習方法の一つ、写経について
写経のやり方
冒頭でも触れましたが、写経のやり方について、もう一度書いておきます。誰かがやり方を定めているわけではないので、このやり方が最も優れているとか、他のやり方は邪道なのでやめておけとか考えず、自分にとって馴染みやすい方法が一番だと思いますよ。
先ず、お手本となるソースコードを見つける、入手しましょう。書籍に載っているものでも問題ありません。注意しておきたいポイントが一つあります、それは正しくビルドできることです。お手本のとおりに入力したのにエラーが出てビルドが成功しないのでは、学習になりませんからね。
お手本が準備できたら、ソースコードをビルドできる環境整えましょう。僕がよく扱っているC/C++であれば、コンパイルして実行ファイルが生成できるようにしましょうということです。写経だけに集中するために、本当に実行ファイルが生成できることを確認しておく方がいいいですね。
ビルド環境が整ったら、いよいよ写経を始めていきましょう。ここで注意したいのは自分の入力しているコードは何に使われるのか?を意識するということです。深く考えずに、入力だけをひたすら繰り返しても、効果は出てくると思いますが、非常に効率が悪いです。
今打ち込んでいるコードは「XXX処理」の一部で、省略することができない重要な部分などと考えながら、写経していく方がずっと効率的です。
入力を終えたら、ビルドして、生成された実行ファイルを動かしてみましょう。ビルドエラーが出てしまったり、実行ファイルがお手本通りに動かない場合は自分の入力ミスがどこかにあるはずなので、エラー情報と入力中に意識したことを合わせながら、間違い箇所を探していくのです。
写経のメリットとデメリット
ここではプログラミング写経のメリットとデメリットについて考えてみました。
メリット
写経を繰り返すと、プログラミング作業全体の流れが自然と身についてくる。
コーディング途中でもビルドすることができるので、どんなエラーが出るのか見ることができる。
読んで分かった気になっている部分が見えてくる。自分で入力しようとしても、どんな関数名だったか?引数には何を入れるんだったか?スッと出てくるところと、出てこないところがあるんです。
デメリット
自分の入力ミスしている部分を見つけられず、もう一度初めから入力しなおすことになってしまう場合がある(写経は反復練習するものなので、初めからやり直しても問題ないが、自信を無くしやすい)
短時間で終わらせることに一生懸命になってしまうと、内容を理解しないまま打ち込んでいるだけになってしまう場合がある
自分で入力しながら学習していくので、ソースコードを目で読んで理解を深めていく学習方法より、学習スピードが遅い。
写経が効果を発揮しやすい状況
メリットやデメリットから、プログラミング写経の効果が出やすいものとして次のような場合が考えられますね。
- プログラミング未経験者、初心者
- プログラミング経験者が新しい分野に挑戦する時
- プログラミングを教える立場の人が、教わる人の立場になって考える時
写経をやってみて、僕はどうだったのか?
ここでは僕の写経体験を振り返ってみます。僕は大学の講義の中で初めてC言語を触りました。テキストに書いてあるソースコードをそのまま入力し、コンパイルし実行する、無事に動いたら、ソースコードの内容を講師が解説してくれるという授業内容でした。
この時は写経なんて意識していませんでしたが、立派な写経ですよね。ただ、残念なことにソースコードの意味をあまり理解せずに、授業が進んでいったことだけを覚えています。「#include <stdio.h>」このおまじないが何なのか、当時はさっぱり分かりませんでした、とにかく書かないといけないんだなと丸暗記状態です。
よく分かっていたのは、変数の型とprintf関数、scanf関数、forループやwhileループ程度です。写経のおかげで、テキストを見なくても扱えるようになっていました。フローチャートをみて、ソースコードに落とし込むところは出来るようになったということですね。
講義は週に一回という低頻度でしたが、上述のようなコードは自然と頭に浮かんでくる程度には染み込んでいたので、プログラム超初心者の学習方法としては写経も悪くなかったように感じます。
世の中の写経の評価
Googleでプログラミングの写経について検索した結果を見てみると、次の様な事が書いてありました。
- プログラム可能か不可能かについて、肌感覚で判断できるチカラを養うのに有益だ。
- 世の中のプログラムがどのような構造になっているのかおおよそ想像することができるようになってくる。
- プログラミング言語による書き心地のようなものが分かるようになり、自分の好みが出るようになってくる。
- 何も考えずに打ち込むことだけに集中してはいけない。常に今入力しているコードが何のためなのか考えるべし。
- 入力間違いを探す過程で、デバッグ能力も鍛えられて、有益な練習方法である。
- 世の中に公開されているソースコードは案外不完全なものが多いと分かってくる。
基本的に学べることがたくさんあるのでやって損はない、という意見が多かった印象を持ちました。ただし、これが最も優れたプログラミング学習方法であるという記事は見つからなかったので、写経だけやっておけばよいというものではない様ですね。
まとめ
お手本となるソースコードを自分で入力することを繰り返し、プログラミング工程や文法等を学習する写経について紹介しました。
自分で入力する経験からたくさんの学びが得られるメリットと、ソースコードを読んで学習していく方法よりスピードが遅くなってしまうデメリットがあります。
プログラミング初心者や経験者が初めて別分野へ触れる時には効果的な学習方法だと思われるので、自分の状況がそれに近いなぁと感じた時はプログラミング写経を取り入れてみるのもいいかもしれませんね。

C/C++で組み込み系ソフトウェア開発の仕事を10年以上やっています。怪しげなデジタルガジェットが大好きです。