株のゲームは案外すぐに作れた100日間、ChatGPTでアプリを作り続ける女子大生が受けた“卑怯な”質問

大学時代、100日間にわたりChatGPTでアプリを作り続けることに挑んだ大塚あみ氏。就職活動の中でも、彼女はアプリ制作の手を緩めることをしなかった。そんな彼女が面接の場で受けた“卑怯な”質問と、「自分でも呆れた」と話すその答えとは。全3回中の3回目。
※本稿は大塚あみ著「#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった」(日経BP)から抜粋・再構成したものです。
第1回:怠け者の経済学部の女子大生はなぜ、「ChatGPTでアプリを100日作り続ける」と決めたのか
第2回:「就職活動とプログラミングは似ている」100日間ChatGPTでアプリを作ると決めた女子大生が抱えた虚無と、それでも踏み出す第一歩
目次
体調最悪の中作る「バイナリーオプション」アプリ
12月20日(水)午前10時、私は多摩センター駅に着くと、カフェでテイクアウトしたサンドイッチを食べながら新宿行きの電車を待っていた。
この日の体調は最悪。頭がクラクラするし、寝不足でイライラする。たぶん飲み過ぎと風邪のせいだと思う。そもそも就職活動だからと言って今日こんな早くから行かないといけないのは、何かの間違いだと思う。
サンドイッチを食べ終えると、今日の作品についてまた考える。少し前、証券会社が勧誘のためにゲームを使うと聞き、為替相場の変動を予想して投資する「バイナリーオプション」風のゲームを作ることに決めていた。ランダムな数字を生成し、それに基づいてフレームごとにチャートを更新し、スペースキーで線を引くとその間の変動分に基づいて損益が発生する、という内容だ。
電車に乗り込み、指定席に座ると、すぐにノートパソコンを取り出す。移動時間を利用してプログラムの設計と実装を進めよう。まず、チャートの生成から始める。そうはいっても、どうやって作ったらいいか分からない。とりあえず、時系列で値が上下しているところが分かるような折れ線グラフを描画してみよう。ChatGPTに指示する。
Pygameで、株価の推移を表示するプログラムを作りたい。50個ランダムな数字を作り、それを折れ線グラフで表示して。 |
Pygameでランダムな株価データを折れ線グラフで表示するプログラムを作成します。以下のコードでは、50個のランダムな数字を生成し、それを折れ線グラフとしてPygameのウィンドウに描画します。 |
「仮想取引」は簡単に実装できた
ChatGPTは30行くらいの短いプログラムを出力した。授業のサンプルコードで出てくるようなきれいなプログラムだ。
「このプログラム、配列に入れた数字をそのまま表示しているだけよね?」
ということは、配列にある数字を適切に動かすだけで完成する……? そう考えた私はさらに指示した。
バイナリーオプション風のゲームを作りたい。最新の株価を1秒間に1回だけ作成し、最新の50個だけを表示するようにして。 |
Pygameを使って、バイナリーオプション風のゲームを作成しましょう。1秒ごとに新しい株価データを生成し、最新の50個だけを表示します。これは、株価がリアルタイムに更新され、古いデータが消えていくように見えるゲームになります。以下がそのコードです。 |
プログラムをコピペして実行すると、何の問題もなく動いた。折れ線でチャートが表示され、数値が小刻みに上下する様子がほぼリアルタイムで表示される。
とりあえず動くプログラムができたところで、電車は新宿駅に到着した。その後のんびりと歩いて、とあるオフィスビルの1階に着く。
まだ30分くらい時間があるので、ソファーに座ってプログラムを書きながら待つことにした。
プレイヤーがチャートの変動を見ながらスペースキーを押したタイミングで、それに応じた損益を算出できるようにしたい。いわば「仮想取引」機能だ。これは思いのほか簡単に実装できた。まだ午前中なのに、プログラムがほとんど完成した。これはうれしい。
面接官から投げかけられる“卑怯な”質問
私は急かされるようにオフィスに移動した。
「失礼します」
私はドアを3回叩くと会議室に入った。そこには3人の面接官がいた。面接官の手元には私のエントリーシートと入社前の適正検査SPIの結果がある。それに気づいただけで、もう居心地が悪い。
エントリーシートは写真も中身もひどい。先生に言われて渋々書いたものの、志望動機など全く思いつかない。実際の動機は、当面の生活費と奨学金の返済のためだ。しかし、それでは面接で落とされるのは明白だ。やむなく私は、面接を受ける会社のIR情報とChatGPTを使って、20分くらいで新卒らしい志望動機を作成した。
あとは、どんなに自信がなくても堂々としていれば何とかなる。会社の募集要項もきれいごとばかりなのだからお互い様だ。
私はたぶん今、ソフトウェアエンジニアとして働くための面接を受けているのだろう。まるで予定調和の演劇のように、形式的で答えの決まっている質問が次々に飛んでくる。
「入社後にやりたいことは?」
なんて卑怯な質問なんだ。絶対にやらせるつもりなんてないのに、こうして形式的に聞いてくる。生活のために不本意ながら働くしかないだけなのに、たいそうな夢や希望なんてあるわけがない。私は、エントリーシートに書いた、うろ覚えの志望動機を自信がありそうな雰囲気で話す。すると面接官がまた、同じような質問を投げてくる。
「チームで何かを成し遂げた経験を教えてください」
ふと思い出したのは、私が管理しているDiscordのコミュニティだ。
現在80人ほどのゲーマーが集まっている。私が設立し、Xで人を集めて大きくした。しかし、実際に私が何か特別なことをする場面はほとんどない。基本的には方針やルールを決めたり段取りをつけたりして指示を出し、他のメンバーにやらせるだけ。
「でも、これを言ったところで、この面接官には響かないだろうな」
頭の中でそう呟く。
相手は根っからの会社員だ。彼らにとって「リーダーシップ」とはあくまで自ら率先して動き、チームを引っ張る理想的な人物像に限られている。私は、それでうまくいく人は実際にはほとんどいないことをよく知っている。現代の管理職が過剰負担に苦しみ、出世したくない社員が増えているように。そういったリーダーシップ像は、自己研鑽本なんかに書いてあるような、著者の個人的主観で作り上げられた「優秀なリーダー」のあり方に過ぎない。でも、それを演じるのが面接のルールだから、ここでは「それっぽく」話さなければならない。
「大学の授業での発表で、チームメンバー全員と協力して発表を成功させた経験があります。私は主に進行役として、メンバーの意見をまとめ、発表の構成を整えました。スケジュール管理や進捗確認も担当し、最終的には教授から高評価をもらうことができました」
8割は嘘だ。実際には私の少ない発表経験からありそうな話を想像して話しているだけ。罪悪感なんてものはとくにない。ただ、世間が形式的に答えの決まっている質問を繰り返し、真実よりも「それっぽい」話を求めることに、少し呆れている。
ついでに、自分にも呆れる。つい数日前は、就活生の自己PRが他人のプロフィールかと思うくらい原型がなくなることを嘲笑していたのに、実際には私も同じようなことをやっている。
アイデアを出すより、手を動かす
面接を終えると、私は近くのカフェで昼食を取りながら、面接で聞かれたことをメモにする。面接の質問と回答を並べてみて、まともなことを話せたことには安堵した。しかし、心の中には虚しさが広がっている。そんな虚無感を埋めるかのように、プログラミングに没頭しながら電車で1時間かけて大学に戻り、研究室に顔を出した。
先生が時を置かずに聞いてくる。
「面接はどうだった?」
「たぶん大丈夫だと思います」。
先生は安心したのか、話題を変えた。
「じゃあプログラムを書かないとね。目標の午後6時まであと3時間しかない」
「まあ、ほとんどできていますけどね」
私は、待ち時間は常に作品の設計をしていること、ノートがあればどこでもできること、待ち時間中の作業ははかどることなどを話した。
よい作品を作るにはよいアイデアが必要。よい設計も同様だ。だからよさそうなアイデアを思いついたら、とりあえず書いてみるのが一番効率よいはずだ。机に向かいアイデアをひねり出せなくて挫折感を味わうよりは、「思いついたらどこでもプログラミング」だ。
その後私はプログラムを整理し、多少の改善をしたのち、「Day54:バイナリーシミュレーション」をXに投稿した。