ソフトウェア・エンジニアとしての成長記録を赤裸々に綴(つづ)って話題の『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』(大塚あみ著、日経BP)では、ChatGPTを徹底活用した「新しい学び」が示されています。本書を推すマンガ家のすがやみつる氏と角川アスキー総研の遠藤諭氏が、生成AI時代の新しいプログラミング学習について語り合いました。その前編。
司会:『#100日チャレンジ』では、著者の大塚あみさんがこれまでのプログラミング学習法になじめなかったと書いています。文法を一通り学んだりコードを写経したりといった従来の学習法が自分には合わなかったということですね。
その一方で大塚さんは、ChatGPTを使って実践的にプログラミングに取り組むことで、ライブラリの活用法から構造化手法、オブジェクト指向、さらにはデザインパターンまでを学び、ソフトウェア・エンジニアとして就職するに至ります。この大塚さんの事例を通して、生成AIでこれからのプログラミング学習法は大きく変わるのではないか──これが、プログラマーでもあるお二方にお聞きしたいテーマです。
プログラムが簡単に作れる──生成AIの衝撃
すがやみつる氏(以下、すがや):ChatGPTに代表される生成AIの登場で、プログラミングの学び方が劇的に変わっていると感じています。私もChatGPTの登場に衝撃を受けた一人です。ChatGPTにマンガのストーリーを書かせたり、プログラミングを書かせたりしてみて、その出来具合や効率化に驚かされました。
例えばプログラミングでは、ChatGPTに自著『ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython』(日経BP)でも取り上げたスカッシュゲームを書かせてみました。すると、あっという間に作ってくれたんです。ChatGPTが最初に提示してきたプログラムにはボールがきちんと反射しないバグ(不具合)があったものの、それを指摘したら「申し訳ありません」と言って、すぐに直してくれました。それで愕然(がくぜん)としたんですね。プログラミングの入門書一冊かけてやっていることを、たった10分でできるんだと。
遠藤諭氏(以下、遠藤):私もChatGPT公開直後の2022年12月初めに、プログラムや日本語の詩を書かせてみました。プログラムでは、X(旧Twitter)のアーカイブをダウンロードして過去のつぶやきをExcel形式で見られる変換アプリを書かせたのですけれど、比較的簡単に動いたんですよ。それでもう、これはすごいとなりました。その後は「青空文庫」の北大路魯山人の著作を読み込ませて魯山人になりきって対話させるプログラムなども作りました。
私の周りでも、ソフトウェア会社の社長が「今やっていることをすべてやめて、これからはChatGPTに全振りする」とChatGPTの登場直後に言ったそうです。それが大きな潮流となって続いているというのが、この2年半なのだと思います。
ただ、ChatGPTはプログラミングにおいても間違った答えを出力することがある。正しく動作しなかったり、そもそもエラーが出て動かなかったりします。そうした場合も、ChatGPTに「こんなエラーが出たぞ」と結果だけを貼ってやれば動くプログラムができることもある。ただ、最終的には、ユーザー自身が対処しなければならないことも多いですよね。
学びながら使えばエラーは怖くない
遠藤:『#100日チャレンジ』でも大塚さんは数多くのエラーに遭遇し、それに対処していく中で、知識を身につける重要性に気づいていますよね。ChatGPTを使い始めた当初はまるで万能の神のように「〇〇を作って」とお願いするだけだったけれど、成果物であるプログラムの出来は結局ユーザーの力量に依存することを身をもって知るわけです。要は、生成AIを使う側の知識が足りないと、エラーの対処などに時間ばかり取られたり、全体設計がうまくいかなかったりして、よい成果を効率よく得られないのです。
すがや:その通りです。私の場合もChatGPTに統計計算、具体的にはカイ二乗検定や t 検定などをやらせてみると、その解答に間違いがあったりしました。そこで、しつこく何回もやり直させて、ようやくきちんと動く統計計算アプリができあがりました。
このようにChatGPTが出してきたプログラムをそのまま信用してはいけないこと、安心しきって使ったらいけないことを体験してきました。なので、『#100日チャレンジ』で大塚さんがエラーの対処に悪戦苦闘し、そこから成長していくことにとても共感しましたね。
プログラムを書くときに、生半可な知識だけで書いていくと、エラーが出る。そこで、なぜエラーが出るんだろうと調べていくのですが、それにとても時間がかかってしまうんですよ。
遠藤:小学生のプログラミングを見る機会があるのですが、細かな文法やちょっとしたアルゴリズムでつまずく場合が多いですよね。少し入り込んだだけで難しいパズルのようになってくる。「IF-THEN-ELSEの呪縛」というようなものがあります。子どもにはあまりに過酷なことも少なくない。
すがや:プログラミング初心者の場合、プログラムを動かそうとしてエラーがたくさん出てくると、まるで怒られたように感じてしまいがちなんです。エラーは英語でずらずらと表示されるため、なおさらダメージが大きい。
特に子どもはエラーを怖がりますね。英語の綴りや文章を間違って打ち込んでエラーが出てくると「立ち尽くす」感じになってしまい、そこで学習が進まなくなる。これが繰り返されて、結局は挫折してしまうのです。これを避けるために、『こんにちはPython』では、主人公が何度も失敗しながらプログラムを作り上げていくことで、「エラーは怖くない!」というメッセージを強く訴えています。
遠藤:いいですね。そして、ChatGPTが本当に救ってくれるようになったのが今ではないですかね?
プログラミング学習のハードルが下がった
遠藤:要は、生成AIの登場により、入門者、初心者がプログラミング学習にとっつきやすくなったということではないでしょうか。エラーを解決できなくて泣きそうになる子どももいなくなるかもしれません。文法を一通り覚えなきゃいけない必要性は薄れたし、エラーがあってもその修正方法を繰り返しChatGPTに聞くことができる。人間の先生と違い、24時間何度でも聞けるのです。
『#100日チャレンジ』にも登場する佐々木(陽)先生から面白い話を聞きました。プログラミングの授業でChatGPTを使えるようにしたら出席率が上がった、さらに授業中に寝る学生も減ったのだそうです。これまでだったら、分からなくなって授業についていけなくなり、キーボードを打つ手が止まってつい寝てしまう、ということだったのが、とりあえずChatGPTに聞けば何とかなるので続けてみよう、となっているようです。
この話をほかの大学の先生にしたら、「先生に聞かない学生は、ChatGPTにも聞かない」と言われました。つまり、「誰かに聞くことができるか」にひとつの壁があるわけです。聞ける学生は、生成AIの登場により、何とかなる時代になったのかもしれない。しかも、人間の先生に聞くのよりずっと心理的なハードルも低いわけですよね。
すがや:私は2020年まで京都精華大学マンガ学部で教えていたのですが、いろいろと聞いてくる学生にはどんどん教えていました。ChatGPTもそれと同じですね。
遠藤:それによって、これからのプログラマーは、文法(の間違いに起因するバグ修正)の呪縛から逃れられるので、超ハッピーですよ。「Googleの新規コードの4分の1以上はAIが生成」とスンダー・ピチャイCEO※1は語っていたそうです。ものすごく効率が上がっているということだと思います。
しかし、それよりも重要なのは、もはや文法やアルゴリズムにとらわれずに、本来の「自分が実現したいものの写像としてのプログラム」にだけ集中できること、全体をどう作るかというアーキテクトでありデザイナーのような仕事の仕方ができるようになること、です。大塚さんに以前インタビューしたとき、彼女は「設計がすべて。そもそもコード自体にはもはやたいして価値はない」と言っていたのですが※2、その通りになっていると思います。(後編に続く)
※1
「Googleの新規コードの4分の1以上はAIが生成」とピチャイCEO (ITmedia NEWS)
※2
話題の『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』著者・大塚あみさんインタビュー(週刊アスキー)
(構成&写真:田島篤=日経BOOKSユニット第2編集部)
大塚あみ著、日経BP、1980円(税込み)



