生成AI時代の学習は写経か検証か、ではなく予測を立てたかだ

目次
  1. 写経の効き目は「写す」ことではなく「裏切られる」ことだった
  2. 検証も、予測なしでは同じくらい残らない
  3. 「実務の形で学べ」は正しいが、だからこそ予測が要る
  4. この主張が外れる条件

新しいフレームワークのチュートリアルを、私は一度まるごと写経した。出てきたコードを一字一句写して、動かして、写し終えた時点では理解した気になっていた。それからしばらくして、同じものを白紙から書こうとして、ほぼ何も手が出なかった。写したはずのコードが、頭の中に何も残っていなかったのだ。

生成AIにコードを書かせるのが日常になって、「これからの学習は写経か、それともAI出力の検証か」という問いを私はよく見る。この記事の主張はこうだ。写経か検証かは偽の二択で、学習になるか何も残らないかを分けるのは活動の種類ではなく、答えを見る前に自分の予測を立てたかだけだ。予測なしの検証は、予測なしの写経と同じくらい何も残さない。

写経の効き目は「写す」ことではなく「裏切られる」ことだった

写経には「意味がない」と「正しくやれば効く」という両方の意見が定番としてある。私の経験で言えば、写経が効いたのは写している最中に「次はこう来るはず」と予測していて、それが裏切られたときだけだった。

「ここはfor文で回すはずだ」と思いながら写し進めていたら、違う書き方が出てきたことがある。その箇所だけは、いまでも覚えている。予測と現物の落差が、その行を記憶に刻んだ。逆に、何も考えずに指を動かして写した部分は、書き終えた瞬間に揮発した。冒頭のチュートリアルが残らなかったのは、私がずっとその状態で写していたからだ。

つまり写経という活動の中には、学習になる部分とならない部分が混在している。分けているのは「写したかどうか」ではない。答えを見る前に予測を立てていたかどうかだ。写経を擁護する人が言う「正しい写経」の中身を見ると、結局のところ「考えながら写せ」に集約される。あの作法が効くのは、写す行為に意味があるからではなく、予測を立てさせるからだと私は考える。

検証も、予測なしでは同じくらい残らない

「AIが書く時代だから、学習は書くことから検証へ移すべきだ」という論がある。AIの出力を読み、疑い、動かして確かめる。私もこの方向は正しいと思う。実務の形に近いからだ。実際、私の仕事でもコードを白紙から書く場面は減り、AIが出したものを読む場面が増えている。

ただ、検証という活動にも、学習になる部分とならない部分がある。AIが出したコードを「動いたからOK」で流し読みした経験は私にもある。そのときは何も残らなかったばかりか、後で自分のコードで同じ種類の境界条件のミスを踏み直した。あのとき読んで「なるほど」と思ったのは理解ではなく、理解した気分だった。正解を先に見ると、人はそれを自分の知識と取り違える。

私が見た範囲では、レビューを仕事として任された人が、読む速さだけ上がって指摘の中身が育たないということもあった。検証に学習の軸を移したつもりでも、「正解を眺める」形のまま回していると、写経の丸写しと同じことが起きる。検証は活動の名前であって、その中で自分の予測を立てているかどうかは別の問題だ。

「実務の形で学べ」は正しいが、だからこそ予測が要る

ここで反対の立場を、その立場の人が納得する強さで書く。「検証は実務そのもので、写経は実務に存在しない人工の練習だ。練習は実務と同じ形でやるべきだから、学習の軸を検証に移すのは正しい。『予測を立てろ』は検証の作法の一項目にすぎず、それを主軸に据えるのは論点のすり替えだ」

この反論は半分正しい。実務でコードを書く機会が減っているのは私の体感とも合うし、実務と違う形の練習は実務に移りにくいというのもそうだろう。だが「予測は作法の一項目にすぎない」という点が違うと私は考える。予測は作法の一部ではなく、検証が学習として成立するかどうかのスイッチそのものだ。

試しに、AIに投げる前に「自分ならこの分岐はここに置く」と自分の案を一つ決めてから、出力を読んでみてほしい。自分の案と違う行だけが、すべて情報になる。同じ行のコードが、予測を立てた後ではまったく違う密度で読める。逆に予測なしで読むと、すべての行が同じ濃さの灰色に見えて、どこを読んだのか後から思い出せない。検証を実務の形でやるのが正しいからこそ、その中身が予測を伴っているかが問われる。「読んだ」は実務として成立していても、学習としては成立していないことがある。

写経か検証かという問いは、どの活動を選ぶかの問いに見えて、実は答えを見る前に自分を置くかどうかの問いだった。活動の種類を変えても、予測の有無を変えなければ学習の収穫は変わらない。

この主張が外れる条件

この主張には適用範囲がある。

まず、予測の材料を持たない初学者には適用できない。「次にこう来るはず」と思うには、文法と典型パターンの素地が要る。その素地を供給する手段として、写す行為は依然として有効だ。初学者の写経は予測を立てるためではなく、予測の材料を得るためにやるのであって、それはそれで意味がある。私の主張は「写経は要らない」ではない。

次に、予測の筋道が立たない領域がある。APIの引数の順序や既定値のような、覚えるしかない細部には裏切りの構造がない。こういうものは写しても読んでも同じで、どちらの活動でも学習効果に差は出ないだろう。

最後に、目的が「自分で書けるようになる」ではなく「何ができるかの見取り図を持つ」だけなら、予測は要らない。地図を眺めるのに方角を予測する必要はない。

「写経か検証か」と迷っているとき、選ぶべきは活動ではない。答えを見る前に、自分の予測を置いたかどうかだ。AIに書かせる時代に学習が要らなくなったのではない。予測を立てる場面が「書く前」から「読む前」に移っただけだと、私は考える。