こんにちは!
バレーボールVNL2023は終了しましたが、VNLほど試合数の多いバレーボール大会は他になく、バレーボールのスタッツデータ取得には大変都合の良い大会です。引き続き、データ分析してゆきたいと思っています。
一方、本ブログは、某60代男子がpythonというプログラミング言語を学習し(現時点で学習開始から8か月ほど)、プログラム作成からデータ分析までを実施するドキュメンタリー(笑)でもあります。60代男子が新たにプログラミング学習したりする点が、「冒険」だったり「チャレンジ」だったりするわけです。(補足:本ブログ筆者はexcelについては上級者でデータ分析も業務経験ウン十年選手ではあります。)
そんなpython歴の浅い本ブログ著者ですが、数か月前まで確実にあった「pythonへの苦手意識」がウソみたいに消えつつあります。間違いなく2023年のキーワードになるだろう「ChatGPT」のお陰です。
ChatGPT以降のpython学習
私がpython学習を始めたほぼ同時期にChatGPTなるものがにわかに話題になりました。2022年11月末のことです。私がそのChatGPTなるものの存在を知るようになったのは、python学習にもがき苦しみ、3か月ほど経ち、なんとかプログラミングができるようになり始めたころ、2023年3月ころです。
実はこのChatGPT君もpythonプログラムを得意としています。とは言え、利用者が要求をChatGPTに伝える日本語(または英語、プロンプトと呼ばれています)能力にもよるのですが、プログラミングを丸投げできるほど、ChatGPT君は頼もしくありません。また、何か問題が起きたとき責任を負うのは利用者であり、ChatGPT君は何もしてくれません。従って、ChatGPT君にpythonプログラミング能力があるからと言って、python学習が不要になるわけではありません。
しかしpython学習のやり方・効率はChatGPT以前と現在とでは確実に違ってきます。逆に言うと、本ブログ筆者はChatGPT以前の学習法(主に動画教材や「ググる」ことを通して学習)は、当初の3か月ほどまでで、以降はChatGPTの存在を前提に学習し、プログラミングを実施しています。現在ではChatGPT(有料版を使用しています)を利用して大幅にスキルアップしています。
ChatGPTの利用とは?例えて言うと何か?
ChatGPTを使い始めたころはとにかく、ChatGPT君が発する自然な言語に驚きました。ChatGPTはコンピュータやAIと呼ばれる技術の結晶であり、「ツール」に過ぎないのですが、あまりに自然な言語を操るChatGPT君に「人格」があるかのように錯覚しました。未だにその錯覚は払しょくしきれていないほどです。
なので、ChatGPT君がこちらの問いに対して、正しい答えを返してこない時、非常に腹が立っていました。ChatGPT君が私をおちょくってるんじゃないかと錯覚するわけです。最近になって、ようやく、少しづつ「ツールとしてのChatGPT」という認識が持てるようになりました(笑)。
ChatGPTやプログラミングになじみが無い方に「ChatGPT利用によるpythonプログラム学習・作成」説明するとしたら、下表のようなイメージです。下表では「PC利用による日本語文作成」と対比して、「ChatGPT利用によるpythonプログラム作成」を説明しています。そしてこの両者はよく似ている、というのが結論です。
もちろん、ChatGPTを利用してできることは「pythonプログラム作成」に限らないのですが、ここでは例示として「プログラム作成」に絞ります。
いかがでしょう。イメージ伝わりますでしょうか?
かつて手書きで文を書いていたのに対し、PCを使えば「漢字を書く能力」は不要になります。しかし、依然として「漢字を読む能力」レベルは無いと漢字変換時に誤った選択をして、恥ずかしいことになります。またそもそも日本語の作文ができない人がPCを購入したところで作文ができるようにはなりません。小学生なら小学生なりの日本語しか書けないですし、日本語学習間もない外国人にはそれなりの日本語しか書けません。PC利用のメリットは「精緻な漢字能力の取得・維持が不要」になることです。(それだけでも随分ありがたいのですが。)
「ChatGPT利用によるpythonプログラム作成」においても、同じことです。python言語の基本が分かっていない人がChatGPTを利用したところでプログラミングはできません。pythonプログラムに何ができて、pythonプログラムがどのような手順でそれを実現・実行しているのか、また実行したときにどんなリスクが生じるのか、などの基本が分かっていないと、お話になりません。危険ですらあります。
結局、ChatGPT利用のプログラミングのメリットは、python言語やそのライブラリと呼ばれるものの利用ルールなどについて「精緻な知識保持を不要」とさせてくれることです。
私がかつて親しんだBASIC言語やVBAと異なり、pythonでは複雑な機能を簡潔に記述することが可能です。そのために便利な「ライブラリ」と呼ばれるものが多種多様に存在するのですが、それぞれにローカルルールがあって、そのルールに従わないとエラーが出ます。
しかし、多種多様なものの「精緻な知識」を頭に詰め込むことは不可能であり、少し前までは「ググる(google検索する)」ことで情報検索したり、正式ドキュメント(ほとんど英語)を精読したりしていました。しかし、欲しい情報に到達するのに、それなりに時間がかかります。ネット上の文書がこちらのニーズ向けに作成されているわけではないからです。ChatGPTならこちらのニーズ向けに情報をカスタマイズして提供してくれます。解決策そのものを提供してくれることも少なくありません。
しかしながら、ChatGPTを利用したからと言って必ず問題解決策が見つかるわけではありません。「ChatGPTが答を持っていない」ことは決して稀ではありません。結局、基本はgoogle検索であり、王道はpythonライブラリ等の正式ドキュメント精読なのです。そして大前提として、「ChatGPTに頼らず、プログラミングできるpythonスキル」が不可欠です。
例えば過去にある機能を実現するpythonプログラムを書いたことがあって、その大枠は覚えているけど細かいコーディングは忘れてしまっている、と言うケースなら、ChatGPTにやりたいことを伝え、pythonコードを書いてもらうと、以前に自分で書いたプログラムを探し出さなくて済んだり、知らなかった簡潔、あるいは高度なコードの書き方を新たに知ったりすることができるわけです。このように実務と学習を効率的に並行させることができます。
あくまで、ChatGPTが出力するコードの意味が理解できることが必須です。さもないと「ChatGPTの奴隷」になってしまいます。さらにまずいことに「奴隷には責任能力」がありません。責任能力のない者がpythonプログラミングなどしてはいけません。子供が車を無免許運転するのと同じくらい危険です。
ChatGPT以前、以降のエラー解決フロー
下図はChatGPT以前と以降の「pythonプログラムのエラー解決」フローを書いてみたものです。ChatGPT以前に比べ、ChatGPT以降はずいぶんと問題解決に時間がかからなくなりました。しかしどうしてもChatGPTで問題解決できないこともあります。そんな時には正式ドキュメントを精読するのが近道と思っています。ChatGPT君のお陰で節約できた時間を利用して、正式ドキュメントを熟読するイメージです。
google検索は「自分の問題の解決策のヒントが書かれているかもしれないブログ記事」等を探し出す、という消極的な関与しかしてもらえないので、複数の文書の中から自分の欲しい情報を見つけ出すという作業が発生し、結構な時間を要していました。
python新時代:python学習せずpython利用する時代へ(次回記事)
今回の記事は「python学習する人向け」のものです。python言語は元々、
(1)「学習して」
(2)「プログラムを作成して」
(3)「利用する(利益を享受する)」
というステップを踏んで利用するものです。しかし、(1)(2)のステップを経ることなく(3)、
つまり「pythonを利用する(利益を享受する)」ことを可能にしてくれるサービスが、約1か月前から開始されています。有料ではありますが非常に有益であり、次回の記事で紹介しようと考えています。