最近少しパイソンを勉強しているが 実戦が一番?
未だにAIの使い方がわからないが
コミュ障の自分としてはAIが色々アドバイスしてくれる環境は
利用しない手は無いだろうと思っている
そろそろ65歳 今の会社も終わりが近づいているので
趣味+実益を考えて もう少しプログラミングに精を出さないといけないと思った
大規模言語モデル(LLM)は人間が書いたような自然な文章を生み出すことができ、さらにコーディングも可能ですが、LLMが生成する文章やコードにはしばしば「幻覚(ハルシネーション)」と呼ばれる誤りが含まれることもあります。そのため、LLMの生成したコードは必ずしも正確とはいえませんが、エンジニアのサイモン・ウィルソン氏は自身のブログで「幻覚のせいでLLMを使った開発は無理だ」という指摘に疑問を呈しています。
LLMのコード生成には、幻覚によって存在しないライブラリや関数を使ってしまうという問題があり、LLMが生成したコードへの信頼性が低いという指摘があります。しかしウィルソン氏は「コードに誤りがあっても、単に実行するだけで即座にエラーが表示されるので、実際には最も対処しやすい問題だ」と述べています。
最後にウィルソン氏は「LLMの生成したコード全行をレビューしなければならないなら、自分で書く方が速い」という主張に対し、「他人が書いたコードを読み、理解し、レビューするという重要なスキルへの投資不足を大声で宣言しているようなものだ」と反論。LLMが書いたコードをレビューすることは、他人が書いたコードをレビューする技術の良い練習方法だと結論づけました。
怠け者の大学4年生がChatGPTに出会い、ノリでプログラミングに取り組んだら、教授に褒められ、海外論文が認められ、ソフトウェアエンジニアとして就職できた――。
現在はSEとして働く大塚あみさんが、大学時代に始めた、毎日1本、新しいアプリ(作品)を作り、X(旧ツイッター)に投稿する「#100日チャレンジ」で、ブロック崩しを作成した際のエピソードを、書籍『#100日チャレンジ』より紹介します。
どこから手をつけて直せばいい?
「Day6:キャッチゲーム」は100行程度の、約6時間でできた作品だ。一方、「Day15:砲弾」や「Day18:単語帳」のような最近の作品は300行を超え、制作時間も10時間を超えるようになってしまった。作りたいゲームやツールの案はまだあるので、それについては当面大丈夫そうだけれど、もっと先を見据えると「その日暮らし」的な今のやり方では、ダメになるときが来そう。
制作時間と作品案の両方で行き詰ってしまうのではないか? そんな危機感を感じながら、今日の作品を決める。
「ブロック崩しを作ってみようかな」
成長した自分に感動を覚える
11月13日(月)。授業が終わったあと、伊藤先生と一緒に昼食を取った。二学期が始まって以来、月曜と木曜に先生とお昼を食べながら、次の学会のことや自分が作ったプログラムについて話すのが習慣になっている。
その日は、Day15で作成した砲弾の動画を見せた。先生は興味深そうに画面を見つめていたが、動画が終わるとこう尋ねた。
「このプログラムはどうやって動いているの?」
「Pygameで動いています」
そう答えると、先生は少し困ったような顔をして言った。
先生はさらに驚いた様子で、次のように聞いてくる。
「自分のプログラムなのに、どのように動いているのか分からないのか?」
その言葉が胸に突き刺さった。
「この繰り返しの部分、どこかで見たことがあるような……」
私はChatGPTに聞いてみた。
私は一つひとつの機能について質問し、例となるプログラムを適宜出力してもらいながら、理解を深めていった。
試行錯誤しながら、少しずつプログラムを完成させていく。最終的に、ボールがパドルにぶつかるときちんと反射し、ブロックに当たるとそのブロックが消えるようになった。
できあがったプログラムを実行した様子を動画にし、Xに「Day23:ブロック崩し」として投稿した。試行錯誤しながらも、ブロックが崩れる様子までをしっかり実現できた。企画当初の目標「一定レベルの作品を投稿する」を果たせて安心する。同時に、わずか23日でここまで成長した自分に感動を覚える。
勝手に「100日行」というプログラムを作って、勝手に修行をはじめた。
今、85日目。これまでやってきたことと、今の状態を書いておきたい。
なぜやろうと思ったのか
いまだによくわからない。そこまで自分を突き動かすことがあったのかというと、あったような、なかったような。強いて言えば、たまたま「十牛図」に関する投稿をSNSで見かけたこと。
どんな行なのか
わりとシンプルである。まずは100日分の問いを作る。問いは「十牛図」の段階に合わせて、10種類に分かれている。
だから同じテーマの問いに10日間、答え続け、次の日からはまた新たなテーマの問いに10日間答えていく…ということになる。
それぞれの問いのテーマは、以下の通り。
尋牛、1~10日目
牛を尋ねる。
自分が目指す理想の自分、人生の方向性を模索する段階。
問いは「自分は何を目指すのか」。
見跡、11~20日目
牛の跡を見つける。
自分の課題や問題点を確認し、方向性が少しずつ見えてくる段階。
問いは「理想のために何をやるのか」。
見牛、21~30日目
牛を見る。
具体的な目標が見え始め、小さな変化や成長を感じる段階。
問いは「起きている変化は何か」。
得牛、31~40日目
牛をとらえる。
自分の手で成長や変化をつかみ、技術を具体的に磨き始める段階。
問いは「何ができるようになっているのか」。
牧牛、41~50日目
牛を牧する。
習慣が安定し始め、持続可能な行動が取れる段階。
問いは「今よりもっとよくするには、何ができるのか」。
騎牛帰家、51~60日目
牛に乗って家に帰る。
成長の成果を実感し、生活や仕事に反映できる段階。
問いは「この日常を、どう変えていくのか」。
忘牛存人、61~70日目
牛を忘れて人を残す。
技術や習慣以上に、自分自身の価値観や存在意義に気づく段階。
問いは「自然体になるには、どうすればいいのか」。
人牛倶忘、71~80日目
牛も人も忘れる。
自分を意識せずに自然体で行動できるようになる段階。
問いは「私は自然体か」。
返本還源、81~90日目
本源に還る。
自分と周囲の調和が取れ、全体を見渡せる段階。
問いは「世界はどのように見えるか」。
入鄽垂手、91~100日目
手を垂れて市中に入る。
再び日常の中に入り、学んだことを伝えていく段階。
問いは「今、何を伝えたいか」。
ちょっとした工夫
それだけ、と言ったが、これを一人で続けるのはなかなか難しそうだ。
幸い、この100日行のメインは「問うこと」とそれに「答えること」なので、ChatGPTとの相性がとてもよかった。なので、ChatGPTを壁打ち相手にして続けた。
ChatGPTはだいぶ賢くなっていて、過去のやりとりもある程度は参照してくれているのと、こちらで彼の記憶を残すこともできるので、一人でやっていても退屈せずに続けることができた。
ただし、今振り返ってみると、AIもいいけど、時々は生身の人間に壁打ちをさせてもらうのも大事だと思う。
実際に66日目に、コーチングの師匠(日本にコーチングをもたらしたレジェンド的な人たちの一人)に会って色々と対話させてもらったが、この日がなかったら、ちょっとヤバかったかもしれない。

