AIでプログラミングを学ぶならもう入門書はいらないのか

 

AIに、入門書でプログラミングを学ぶ人を描いてもらった。

「#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった」という本がある。著者の大塚あみさんが大学4年のとき、100日間、ChatGPTでゲームを作るという挑戦をした、その記録のようなものだ。彼女はそのおかげでエンジニアとして就職し、海外の学会で発表もしたりして大活躍している。

この大塚さんが、noteで「なぜプログラミング入門書を読んでもできるようにならないのか」ということを書いていた。正直、「ぎくっ」としたね。読んで、非常に考えるものがあったのでポイントだけコメントを書いたりしたのだけど、うーん。正直、なにかもやもやする。彼女の捉える「入門書」と「AIで学ぶ」ことと、自身のそれとの間に乖離があるのだ。

彼女がやっているのは「AIによるトライアル&エラー」だ。プロンプトを送り、コードを書いてもらう。それを動かす。わからないところを聞いて教えてもらう。疑問に思ったり思いついた部分を変更してもらう。そうやってやり取りしながらコーディングについて学習していくわけだね。

これに比べると、入門書を読んで学ぶやり方は全然ダメだ。まずトライアル&エラーができない。そして文法だの構文だのの話ばかりでつまらない。ひたすらコードを写経するだけでなにをやってるかわからない。ぐさっ、ぐさっ、ぐさっの三連発で即死という感じだった。

ただ、これ、考えてみるとAIにもいえることなんだよね。AIはコードをさらっと作ってくれるけど、たいていは「それをコピペして、動いた!と思って終わり」なんだよね。それの繰り返しで、そのうち飽きてしまう。そして、たくさんのコードをコピペしただけなので何もできるようにならない。

なぜ、大塚さんは成功したのか。それはAIよりも「学習環境」が大きいように思える。定期的にコードを提出し、教授に見てもらいフィードバックを受ける、この部分が非常に重要だったように思えるのだ。そこで彼女は非常に重要なことを学んでいる。「この部分はどうやって動いている?」「これはなぜこうしている?」「ここの働きはどういうものか?」といったことをフィードバックで受ける。もちろん、ただコードをコピペしただけではわからない。わからないからAIに聞いて教えてもらう。そして「なるほど、そういうことか」と新しい概念を学ぶ。

この「コードを読み、そこから重要な部分、理解すべき部分を読み取り、その働きなどを習得する」という部分が、実はプログラミングの学習には不可欠なのだ。そして、この部分は、現状のAIにはできないのだ。というより「誰か、何かに教えてもらってそれを覚えるだけ」ではできない部分なのだよね。ここだけは、「自分でコードを読み、自分で気づき、そして自分で理解する」という能動的な学習が必要となる。ただAIにコードを書いてもらうだけ、ただ入門書を読むだけ、ただプログラミング講座を受講するだけ、ではダメな部分なのだ。

おそらく「入門書では習得できない」というのは、この部分がうまく機能しなかったということなのだろう。それは、入門書の側にその部分を気づかせ「これは理解しないと」と思わせる工夫が足りないのかも知れない。が、だからといってそれを「すべてAIに教えてもらう」と習得できるか? というとそうはならない。

「プログラミングの入門書を読んでもわからない」というのを「中高6年学んでも英語が話せるようにならない」のに似ている、という指摘があった。それは少し違う気がするが、そう感じる人も多いだろう。では「入門書で学ぶ=中高で教科書で学ぶ」ならば、「AIで学ぶ」というのはどういうことなのか。

おそらく、多くの人にとって、それは「翻訳アプリで会話する」に相当するものとなっているのではないか。つまり、「理解してないけど、ちゃんと動いてくれるからそれでいい」ということだ。「AIでプログラミングを学ぶ」ということは、多くの人の場合、「英語を話せるようになる」ではなく、「翻訳アプリで会話できるようになる」になりがちではないか。「もう、アプリで会話できるんだから英語なんて覚える必要なくない?」となってしまうんじゃないか。人間は隙があれば易きに流れたい生き物なんだから。

「AIによるプログラミング学習」がもっとも効果的なのは、初学者ではなく実は「中級レベル以上」だ。彼らは、生成されたコードをざっと見て「なるほど、こういうことか」とポイントを素早く見抜く。そしてすぐさま自分のものにする。長い間のコーディング生活でそうしたことが瞬時にできるようになっている。だからAI任せにはならない。AIの吐き出すコードを自分のものにできる。こうした人間は、AIをフル活用することで自身の生産性を数倍、数十倍に向上できる。

だが、まだこうした技術を持たない初学者にとって、AIによる学習は「全部AIに丸投げする受け身の人間」を量産することになってしまわないか。

つまるところ、入門書だろうとAIだろうと、それをどう活用するかは「使う側の問題」なのかも知れない。AIだろうと入門書だろうと、それは要するに「ただのツール」なのだ。どんなツールも、使う側次第。こちらとしては、少しでも多くの人に、その事に気づいてもらえるような入門書を書く、ということなのだろう。

コメント