みなさん、おはようございます!タカハシ(@ntakahashi0505)です。
こちらの記事は、タカハシが音声メディアVoicyの「スキルアップラジオ」にて放送した内容から、ピックアップしてお届けします!
今回のテーマは、ChatGPTで学ぶプログラミングで初心者がぶつかる壁とはです。
なお、以下で実際にお聴きいただくこともできます!
では、よろしくお願いいたします!
生成AIで学習する時の課題と乗り越え方
今、僕は書籍を執筆していまして、どんな本かというと、「ChatGPTで学ぶExcel VBA入門(仮)」という書籍です。
プログラミングにおいて、特に初心者がChatGPTをはじめ、生成AIを使ってプログラミングを学ぼうとした時に、結構大きめな課題があるのです。
うまく学ぶには、その課題をうまいこと乗り越える必要があります。
今日は、初心者がプログラミングを、生成AIを使って学ぶ時にどんな課題があるのか、またそれをどうやって乗り越えることができるのか、僕なりの研究成果がありますので、お話ししたいなと思っています。
ChatGPTを使ってExcel VBAを学ぶ書籍を執筆中
冒頭でもお伝えしました通り、ChatGPTを使ってExcel VBAを学ぶ、そういった書籍を今執筆しております。
2月から執筆開始したのですが、先日、ほぼおおむね執筆が完了したという状況になっています。
この後、ノンプロ研のみなさんにお手伝いいただいて、モニターということで、試しに書籍を使いながら、ChatGPTを使いながら学んでいただくという活動をしていただいているのです。
なので、その結果を反映したりとか、あとはちょっと今考えているボーナスコンテンツを追加したりとか、そういった作業が残っているという感じです。
あと少しです。お待ちいただければと思います。
ChatGPTによる学習環境改善の期待
このChatGPTを使ってプログラミングを学ぶということに関しては、643回の放送で、「ノンプログラマーのプログラミング学習でChatGPTを使うことの意義」ということで、どんなにすごいか、みたいな話はさせていただいたのです。
特にノンプログラマーの場合は、周りに助けてくれる方がいないということが多いので、そういった時にChatGPTに気軽に聞けるという環境が提供されたということは、すごく大きいことなのです。
よくわからない専門用語が出てきたら、ChatGPTに尋ねることができます。
それから、プログラムを実行してエラーが出て、この解決方法が「全くわからん」みたいな時に、ChatGPTに尋ねて、その解決方法を教えてもらうみたいなことができるわけです。
これはノンプログラマーのプログラミング学習、ものすごく効率上がるかなと思いますし、一方で挫折率をものすごく下げられるんじゃないか、そういった期待があります。
初心者が生成AIを使って学ぶときの厄介な問題
ただ、初心者が学ぶという時に、ちょっと厄介な課題があるのです。
というか、だいぶ厄介な課題なのですが、前回の放送ではこの課題について「今度お伝えしますね」みたいな感じで終わってしまったのですが、今日は、その部分、どんな厄介な課題があるのか、どうやってそれを解決できるのか、みたいなことを話したいなと思っています。
AIと会話するための言葉がわからない
ところで、人によっては、「ゆくゆくはプログラミング学ぶ必要は全くない」と言う方もいるのです。
AIが発達していくことによって、自然言語だけでAIがプログラム全てを作ってくれるので、我々はプログラミングというかコードを作る作業というのは一切必要なくなる。
だからプログラミングを学ぶ必要ない、こういったことなのです。
ただ、現時点の僕の感覚で言うと、そういう時がすぐに来るという感じはしないかなと思っています。
というのも、「言葉が分からないとAIと会話ができない」という問題があるのです。
なので、やってほしいことをうまく指示ができない。
AIが返してきたことをうまく理解できない。
そういった感じだと、かなりコミュニケーションコストがかかってしまって、うまくいかないんじゃないかと思っています。
この関係なのですが、非IT企業の非IT部門、ITが全く分からない人たちが外注でITのプロのエンジニア集団に何かを作ってもらおう、そういったシチュエーションとすごく似ているんじゃないかなって思うのです。
少なくないケースで、両者のコミュニケーションコストが、ものすごくかかってしまいます。
時に、やりたいことがうまく伝わってなくて、完成したものがなんか違うみたいなことになるってことも少なくないわけです。
AIとの間でもこういったことが起きるんじゃないかと思っています。
つまり、AIとやり取りするための言語、言葉を獲得する必要があると僕は思っています。
専門用語や背景知識の不足
言葉と言ってもいろんなものが含まれているのです。
プログラミングで用いられる専門用語とその意味は、当然あるわけですよね。外国語で言えば、その単語ということになります。
それから、プログラミング言語なので、文法があるのです。どういう構文の書き方をするのかみたいなこともあります。
それから、これは外国語を学ぶ時によく言われるのですが、文脈とか文化とかそういったものの理解も、この言語とか言葉に含まれるわけです。
たとえば、非ITの人たちとITの専門家で言うと、このボタンをちょっとここにずらしてくださいみたいな指示を簡単だろうと思って非ITの人たちはするですが、ITエンジニア側からすると、「ここ変えるのめっちゃ大変なんですけど」みたいなこともあったりするわけです。
そういった背景とか共通認識、そういった部分への理解を深めるというのも言葉、言語を学ぶというところに含まれていると思います。
この部分は暗黙的なことも少なくないなって思っています。
つまり、初心者で言うと、ChatGPTなどとやり取りするときに、大体ちゃんと、そしてなるべく効率的に会話が成立する、そういった状態に持っていく必要があるということなのです。
質問すればするほど知らないことが発散する
では、「そこまでどういった道筋で行くか」ということを考える必要があります。
たとえば、「ある専門用語、この意味を教えてください」とChatGPTに依頼します。
そうするとその回答として、ChatGPTは、言葉の意味はもちろんのこと、サンプルコードも作ってくれて、その解説もしてくれる、かなり親切なのです。
ただ、その回答の中で、知らない専門用語が3つも4つも含まれているみたいなことがあります。
また、親切に出してくれたサンプルコードも、今まで見たことがないコードが書かれてしまっているということもあるんです。
そうすると、その1つ1つをChatGPTに尋ねるという、そういった手順が必要になるのですが、1つ尋ねると、また知らない専門用語が3つも4つも、知らない見たことがないコードが3つも4つも出てくる。
こんな感じでどんどん知らないことが、発散していってしまって全然終わらない。
こういったドツボにはまってしまうのです。
何も考えずにやり取りをしていくと、ChatGPTはプログラミング言語全体の言語空間から回答を出してくれちゃいます。
発散しまくっているのを端っこから全部やっつけていくという作戦もあるのですが、それでいつかは確かに終わりますが、先に進んでいる感がなくてしんどいですし、効率的ではないのです。
なので、初心者で言うと、この「知らない言葉がどんどん発散して増えちゃう問題」というのがあるわけです。
既存の書籍とか講座とかというのは、これらの言語空間からどの順番にどういう風に新しい概念を出していくのかというところがものすごく考え抜かれているのです。
しかしChatGPTは、その辺りを汲んでくれません。
なので、初心者がChatGPTを使ってプログラミングを学ぼうとすると、このわからないことがどんどん発散するという壁にぶつかってしまって、おそらく少なくないケースで挫折するんじゃないかなと思っています。
アイデアで課題を乗り越える
「ChatGPTを使ってプログラミングを学ぼう」という書籍を書こうとした時に、この発散を避けるように順番に解説していこうとすると、ChatGPT使わない方が良かったりしちゃうのです。
なので、書籍としてChatGPTの使い所がなんか限定的になってしまう。
そういったジレンマがあるのです。
ただ、そこをすごく考えた末、本書はあるアイデアでそれを乗り越えることができたのです。
限定したサンプルコードの活用
そのポイントはサンプルコードにあります。
今フォーカスしている概念しか用いてないサンプルコードを、用意してあげるわけです。
そのサンプルコードの解説をChatGPTに依頼をするのであれば、そのサンプルコードの解説しかChatGPTはしませんので、余計なキーワードはほぼ使われない。
こういったナイスな回答を期待できるのです。
言語空間を狭める
つまり、「ほにゃららを説明して」とか「ほにゃららなコードを作成して」とお願いすると、無限に空間がどうしても広がりやすい、オープンな世界になっていきやすいということなのです。
そうではなくて、クローズドな世界にする。
このコードを解説してみたいなプロンプトだと、それは言わば翻訳みたいなものなので、使われる言語空間が限定的になり、クローズドな世界になりやすいってことなのです。
この生成AIを使いこなすという上で、このAIが回答し得る言語空間をいかに狭めるかというのはすごく大事なのです。
プログラミング学習に限らず、生成AI全般に言えるかなり重要な考え方になります。
なので、今回の書籍で言うと、プログラミングを、ChatGPTを使いながら楽に学んでいただくというのはもちろんなのですが、そのAIに思い通りの回答を出してもらえるべくうまく使う、そういったスキルも身につけていただけるんじゃないかなと思っています。
壁を乗り越えれば「学び放題」
さて、今回の執筆を通して、そこから得られた新たな気付きみたいなところもありましたので、これに関してはまた別の会に放送したいなと思っています。
今日は、初心者が生成AIを使いながらプログラミングを学習する時の課題とその解決方法についてお伝えしました。
この「発散の壁」を乗り越えちゃえば、あとはもうChatGPTを使って学びたい放題みたいな感じになりますので、ぜひみなさんそこまでたどり着いていただければなと思います。
また、この生成AIを使った新たな学び方については、僕の思う気付きとか学びありましたので、他の回で紹介させていただきます。
どうぞ楽しみにお待ちください。
まとめ
ということで、今日はVoicy「スキルアップラジオ」の放送から「ChatGPTで学ぶプログラミングで初心者がぶつかる壁とは」をお届けしました。
タカハシのVoicyの放送はこちらからお聴きいただけます。
チャンネルのフォロー、コメント、SNSでのシェアなどなど、楽しみにお待ちしております。
では、また。