見出し画像

ChatGPTを使ってプログラミングを勉強した話

お疲れ様です。Y研究員です。仕事で気になった書き方があったので、ChatGPTを使って勉強しました。前に自分で考えた方法の実践編です。

std::optionalの使い方を聞いた

C++で正しい返り値を返すかもしれない、返さなかもしれない関数があるとします。その時の使うのがstd::optionalです。C++17より前だとboost::optionalです。何となく使ってましたが、正しい使い方が気になったので、ChatGPT4に質問しました。

回答は、返り値だけでなくクラスのメンバで使えると分かりました。サンプルコードも出してきました。理解を深めるためにstd::optionalを使わない例のサンプルコードも出しました。確かに使わない場合はバグを出しそうな感じがしました。

複数の言語で「写経」もした

コードを見るだけでは頭に入らないので「写経」もしました。もうひと押しでPythonの例も出しました。Pythonらしい書き方をすると無理やりOptionalをつかなくても書けると分かりました。2つの言語で2つの例を「写経」して実行しました。

他の言語でどうなるか聞いてみた

普段はC++とPythonだけですが、他の言語ではどうなるか聞いてみました。そういえばプログラミング文体練習ではHaskelのMaybeモナドの話もあったので、それについても聞きました。最初はHaskelについて何も言わなかったのに、聞いてみたら「もちろん関係あります!」と言い出しました。そんなに強調するなら最初から言ってほしいと思いました。まぁChatGPTがいつでも欲しい情報を提供するとは限らないということでしょう。

終わりに

普段このブログではプログラミングの練習法として「写経」をおすすめしています。今回も実践して、プログラムを眺めたりコピペするよりも理解が深まった気がします。最後に参考にした記事のリンクを張ります。「写経」したプログラムが気になる人はGitHubのレポジトリもどうぞ。

それではま!

元ネタの記事とプログラム


無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。