怠け者の経済学部の女子大生はなぜ、「ChatGPTでアプリを100日作り続ける」と決めたのか

ChatGPTの登場は、人々の日常を少しだけ変えた。そんな中で、「ChatGPTでゲームを100日作り続ける」と決めた女子大生がいた。自分のことを「怠け者」だと自称する彼女、大塚あみ氏は、なぜそのような難しいチャレンジを決意するに至ったのか。全3回中の1回目。
※本稿は大塚あみ著「#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった」(日経BP)から抜粋・再構成したものです。
第2回:「就職活動とプログラミングは似ている」100日間ChatGPTでアプリを作ると決めた女子大生が抱えた虚無と、それでも踏み出す第一歩
第3回:株のゲームは案外すぐに作れた…100日間、ChatGPTでアプリを作り続ける女子大生が受けた“卑怯な”質問
目次
「承認欲求って、何だろう?」
10月27日(金)夕方、私はベッドに横たわり、ぼんやりとスマートフォンをいじりながら、X(旧Tツイッターwitter)のタイムラインをスクロールしていた。友だちとゲームの連絡手段に使っているはずのXだが、一度開いてしまうと、つい時間を忘れて見入ってしまう。気づけば、同じような投稿を延々と見続けている自分がいる。
Xは不思議なSNSだ。閲覧することでとくに有益な情報が得られるわけでもないのに、なぜか見続けてしまう。毎日同じような「おはよう」とか「おやすみ」といった、たわいもない言葉が並ぶだけなのに、なぜか「いいね」やリポスト(リツイート)が飛び交う。さらに、「#私ともっと仲良くなりたい人RT」や「#フォロワーさんが私ってどんな存在か教えてくれる」なんて、いかにも承認欲求を満たすためのハッシュタグが次々と流れてくる。
「承認欲求って、すごいなぁ……」
そう思いながら、私は指を動かし続けた。誰もがどこかで自分を認めてもらいたがっている。大人たちは「そんなのバカバカしい」と言うかもしれないけれど、自分の投稿に大量の「いいね」がついたら、それはそれで気分がよいのだろう。
でも私は……。多くの「いいね」をもらいたいとは思わない。SNSも積極的に使うわけではない。むしろ、通知が溜まるのが嫌で、ほぼすべてのアプリでオフにしているくらいだ。SNSでのつながりに一喜一憂しないどころか、他人にどう思われているか考えるだけ無駄だと思っている。だからこそ、承認欲求って何なのだろう、とつい考えてしまう。
「他人に勉強を強制される状況」を作り出す
ひとつの投稿が目に留まった。
#いいねの数だけ勉強する
それを見た瞬間、私の中で何かがカチッと音を立てて動き出した。そのポスト(ツイート)の投稿者は、「いいね」やフォロー、リポストの数に応じて勉強時間を設定し、それを公開している。フォロワーが1人増えれば、勉強する時間が1日増え、リポスト1回につき6時間追加される。みんながノリでリポストやフォローをしてくれるので、結果として数百時間もの勉強を約束させられる。どこかマゾヒスティックな印象もあるが、楽しそうでもある。私には、自ら他人に勉強を強制される状況を作るという発想自体が斬新だった。
「これ、プログラミングでやったらどうなるのだろう……?」
私は今、プログラミングを独学で勉強し始めているものの、どうしてもモチベーションが続かないことがある。ソフトウェア開発の世界では、毎日少しずつでも成長し続けることが大事だと言われているけれど、気づくと数日、時には数週間も何もしないまま過ぎ去ってしまうことがある。むしろ勉強しない日の方が多く、だいたいはベッドに横たわってゲームをしたり動画を見たりして1日が終わる。
「どうせ1人では続かないなら、みんなに見てもらえばいいんじゃないかな?」
プログラミング学習の進捗を投稿し、それをフォロワーに見てもらうことで、強制的に続けられるようにしたら? 周囲から注目を浴びることで、モチベーションも上がるかもしれない。あるいは、技術力を証明するチャンスにもなるかもしれない。
そうだ、ChatGPTでアプリを作ろう
あるアイデアが浮かぶ。
「100日間、毎日『何か』を作り続けるってどうだろう?」
単なる勉強じゃない。実際にコードを書いて、アプリを作る。それをXで公開し、進捗を報告する。結構面白そう。1週間とかだとよくある罰ゲームみたいで新鮮味がないけれど、100日だったら、やる人はほとんどいないだろう。いつかフリーランスとして独立したときに、「100日チャレンジをやった人です」と言えれば、私の実力や継続力を証明できるかもしれない。
多くの大人たちは、社会人になったら時間がなくなり、やりたいことができなくなると言う。今の私には時間だけはたっぷりある。この企画は、私にとってきっと価値のあるものになるはず。
「どうやってアプリを毎日作ろうかな?」
私は既に1000時間ほどChatGPTを使っている。ChatGPTの使用時間で私に勝る人はいない。ChatGPTをうまく使えばアプリを簡単に作れるだろう。サクッとやってサクッと実績を残そう。すぐさま私はXに投稿した。
私の「100日チャレンジ」が始まった。
現実は思い通りには進まない
10月28日(土)、「100日チャレンジ」を宣言した私は、最初に投稿するアプリを何にするか悩んでいた。初日の作品は大事だ。最初に与える印象が、このチャレンジの流れを決める。私はいくつか過去の作品を思い浮かべ、その中からどれを選ぶべきか考えた。
最終的に選んだのはオセロ風ゲームだった。
これはすでに、「ChatGPTを活用したプログラミング学習の提案」として学会で発表した実績のある作品で、個人的な思い入れも強い。
私は、“Fake it till you make it”という言葉が好きだ。日本語にすると「成功するまで成功者のふりを装う」という意味になる。最初から完璧でなくても、成功しているふりをすれば、やがて本物の成功にたどり着ける。100日チャレンジもこの精神で乗り切ろうと決めた。多少の課題や困難があっても乗り越えることで道が開ける、そう信じよう。
しかし、現実はすぐに私に冷たい洗礼を浴びせた。
オセロは、もともと描画ライブラリのMatplotlibを使って作成したもので、Colab上で動く仕様だ。動作自体は問題ないものの、見た目がぱっとしない。
盤面は静止画として出力され、一手打つごとに新しい盤面が一から表示される。正直言って、見た目と動作がしょぼすぎる。
「投稿ではスクリーンショットしか出さないんだから、見た目くらい何とかならないか?」
こう思った私は、TkinterというGUIライブラリを使って、GUI版オセロを作ることにした。グラフィカルなユーザーインタフェースを作れるライブラリを用いれば、見た目は何とかなるはずだ。Tkinterは、前に簡単な電卓を作ったときに使ったことがある。
「前も使ったし、何とかなる」
満足いくものは作れなかった、それでも
しかし、この考えは、甘すぎたことがすぐに判明した。GUI版オセロは、Colab上つまりウェブブラウザ上で動くのではなく、パソコン上で動かすローカル環境で作る必要がある。これが、大きな壁になったのだ。
ChatGPTにプロンプトを投げかけてコードを生成してみたところ、バグが頻発し、思うように動作しない。そもそもGUIのデザインも、何度ChatGPTに指示しても古い業務システムで使われていそうなものしか出てこない。いろいろ試してみても全然うまくいかず、時間ばかりが過ぎていく。
私は1日中ChatGPTに修正の指示を出し続けた。きっとできると信じて。しかし、満足のいく結果は得られなかった。ようやくできたのは1回石を置いたら動かなくなってしまうオセロ。1回ごとにフリーズするなんて、それはオセロじゃない。
だけど、もう時間切れだ。GUI版オセロは諦めて、前に作成したMatplotlib版オセロをそのまま使うしかない。私はやむなく、「Day1:オセロ」として最初の投稿を行った。内心忸怩思いとは、こんな気持ちなのか。
私としては残念な気持ちで投稿したものの、予想外にも周りの反応は好意的で、たくさんの「いいね」や応援のコメントが寄せられた。
「これなら、しばらくは順調に進められそうだ」
ひとまず安心できて勢いに乗った私は、次の日にはポーカー、その翌日には電卓、そしてDay4には将棋を投稿した。これらもすべて過去に作った作品で、多少のバグ修正を加えたりはしたものの、実質的にはストック(手持ち品)の流用だった。
勢いで100日チャレンジを始めたわりには、滑り出しは順調なのでは? とにかくDay4まで続けられたのだから。
