授業中、教授の話も聞かずにこっそりオセロを作っていた女子大生がいる。その落書きのようなゲームは講師の目に留まり、叱られるどころか話が転がって、100日後には彼女をスペインの国際学会の壇上に立たせることになる。
『#100日チャレンジ』は、経済学部で「いかに授業をサボるか」ばかり考えていた大塚あみが、ChatGPTと出会って100日間毎日アプリを作り続けた記録だ。
断っておくと、これは根性や努力の美談ではない。「面倒くさい」「手を抜きたい」という等身大の感情から出発する、少し変わった成長ドキュメンタリーである。
そもそも一人では勉強が続かなかった著者は、X(旧Twitter)で見た「#いいねの数だけ勉強する」という投稿をヒントに、毎日アプリをSNSで公開して自分を追い込む仕組みをこしらえた。
やり遂げれば、いずれフリーランスとして独立するときに実力の証明になる——そんな打算もあった。意志の力に頼るのではなく、逃げられない強制力を外側に設計してから走り出す。
この段取りの巧さが、まず読みどころになる。
950時間・5万行・8,123プロンプトが刻んだ成長曲線
チャレンジ開始前の腕前は、VBAの授業で数当てゲームを2時間かけて作れる程度。JavaScriptの入門書は数時間で投げ出している。要するにほぼ初心者だ。
そこから100日で約950時間を注ぎ、5万行を超えるコードを書き、ChatGPTへ8,123個のプロンプトを送った。関数しか書けなかった人が、最後にはデザインパターンを設計から主導するまでになる。
この技術の伸びと、心の変化を同じ画面で追えるのが、本書のいちばんの面白さだ。
技術の伸び方はきれいな階段になっている。テキストで盤面を出すだけの単純な関数から始まり、当たり判定のアルゴリズム(AABB)、データと機能を束ねる「クラス」、ゲームの状態を切り分ける「Stateパターン」を経て、再利用可能な設計のひな型であるデザインパターンへ。
途中、Javaで名を馳せた丸山先生のセミナーで釘を刺される場面が効いている。生成AIを本当に使いこなすには数学の土台が要る、と。実際、砲弾の軌道にはニュートンの運動方程式が、図形の回転にはアフィン変換が必要だった。
AIがコードを吐いても、それを読んで直せるかどうかは結局こちらの理解に懸かっているという指摘は、本書の芯の一つだ。
面白いのは、成長が速すぎるがゆえの逆説も正直に書かれている点だ。著者は使い回すつもりで汎用ボタンを20時間かけて作り込むが、他の作品ではほとんど再利用できなかった。
今のスキルで一から書き直したほうが、読みやすく、しかも30分で済んでしまう。過去の自作が「ゴミ」に見えるのは、それだけ前に進んだ証拠——という開き直りには、独学者を励ます力がある。
効率だけを見れば失敗だが、成長の物差しとして見れば大成功なのだ。
サボるための工夫が、プロンプトの本質を突く「精神注入法」
物語はプロローグから既にひねくれている。著者が最初にChatGPTを触った目的は、レポート課題をサボることだった。ところがAIに書かせた文章は無機質で、個人の視点がなく、そのまま出せば一発でバレる。
そこで編み出したのが「スピリット・インジェクション・メソッド(精神注入法)」だ。テーマを指示するだけでなく、「授業に集中しない大学生」という自分のペルソナ、つまり性格や過去の失敗、価値観まで細かく設定して書かせる。
すると出力から機械臭が抜け、人間味のある文章になる。
サボるための小細工が、そのままプロンプトエンジニアリングの核心——文脈と役割をどれだけ具体的に渡せるか——を突いていた。ここは笑い話に見えて、実は本書でいちばん実用的な発見かもしれない。
多くの人がAIに「良い質問」を探して消耗するなか、彼女は自分という素材を渡すことで質を上げた。後の学会発表も、元をたどればこの一件が起点になっている。
「手を抜くことに全力を尽くす」怠け癖が、才能に反転する
本書でもっとも視点が変わるのはこの一点だ。著者は自分を「手を抜くことに全力を尽くすタイプ」だと分析する。一見ただの怠け癖だが、この「面倒なことをしたくない」という衝動こそが、プログラミングの強い動機になった。
象徴的なのがトランプゲームの制作で、53枚の画像ファイルの名前を手で変えるのが嫌でたまらず、一括変更のプログラムをAIに書かせて一瞬で片づける。
面倒を避けるために全力でコードを書く——それは自動化と再利用という、プログラミングの根幹そのものだ。周囲の大人たちはこの姿勢を、怠けではなく「才能」だと評価した。
欠点だと思い込んでいたものが、武器に反転する瞬間である。自分の性格を直そうとするより、その偏りが力になる場所を探すほうが早い——そう言い換えてもいい。
同じ精神は、続け方にも通じている。著者が好むのは「Fake it till you make it(できるふりをして、できるようになる)」という言葉だ。
最初から完璧を狙わず、不格好でも動くものを毎日出す。初日のオセロは画像が切り替わるだけの代物で、Day4には早くもストックが尽き、自信を失いかける。
それでも「昨日より1%だけよくできれば未来は変わる」と自分に言い聞かせて続けた結果、最終日のオセロはアニメーションもデザインも別物になっていた。
1%の複利は、100日でこれほどの差を生む。裏を返せば、毎日ゼロから一定水準の作品を出し続けるのは相当な負荷で、続いた本当の理由は根性ではなく、興味を切らさない工夫のほうにあったと読める。
ChatGPTは「解答機」ではなく「補助線」だと気づくまで
AIとの距離の取り方も、100日で大きく変わる。当初の著者は行き当たりばったりに丸投げし、返ってきたコードをそのまま貼ろうとしていた。だが複雑なアプリではそれでは動かない。
次第に「答えを予想しながら具体的に問う」「中身を吟味して取捨選択する」使い方へ移っていく。たどり着いた結論は、ChatGPTは使い手の能力以上のことはできない、というものだった。
AIは最短の解を示してくれるが、それがシステム全体を見据えた最適解かどうかは、自分にしか判断できない。
支えになったのが、記録の習慣だ。著者はうまくいった指示や出たエラー、覚えた用語を、メモ同士を相互にリンクさせるツェッテルカステン(Zettelkasten)という手法で「外部記憶」としてため込んでいった。
8,123という数字が単なる試行回数ではなく蓄積として効いてくるのは、この地道な資産化があるからだ。だから彼女はAIを「補助線」と呼ぶ。制作を設計し監督するのは人間で、AIはそこに引かれる補助の線にすぎない。
仕事を奪われるかを心配するより、人間が上流工程、つまり設計とアイデア出しに立つ。凡庸に響くかもしれないが、8,123回の試行の末に本人の手で掴んだ結論だからこそ、重みがある。
進路選択でも同じ姿勢が出る。就活で自己PRを歪められるのを嫌っていた著者は、最後は感情のままに選ぶのではなく理性で最適解を選ぶと割り切り、IT企業にエンジニアとして就職する道を選んだ。
「面倒くさい」と思った瞬間を、そのまま学びの入り口にする
本書を読み手の行動に落とすと、輪郭は驚くほどシンプルになる。まず、完璧に準備してからではなく、SNSで「〇〇を100日やる」と宣言して退路を断つ。
最初はハリボテで構わないから、毎日ひとつアウトプットを外に出す。次に、日常で「面倒だ」と感じた作業——資料の要約、ファイルの整理、名前の一括変更——を見つけたら、我慢する前にAIへ「どう効率化できるか」を相談し、実際に小さなツールに変えてみる。
サボりたいと感じた瞬間こそ、自動化を学ぶ絶好のチャンスだからだ。
そして、うまくいった指示や出たエラーは、そのつどメモに残しておく。単発のやりとりで消費して終わらせず、後から引ける形でため込んでおく。派手さはないが、この記録の積み上げが、三日目に折れそうな自分を静かに支える土台になる。
意志で歯を食いしばるのではなく、続かざるを得ない仕組みと、面倒を武器に変える習慣を先に用意しておく。本書の実用性は、この一点に集約されている。
一つの落書きが書籍と受賞に連鎖した——ただし再現性には注釈が要る
この100日は、著者一人では完結していない。授業中のオセロを見つけた佐々木先生が大学の伊藤先生へ紹介し、伊藤先生が学会発表を後押しする。ASCII.jpに連載を持つ元編集長・遠藤さんが古典ゲームの制作を勧め、書いたインタビュー記事を公開すると、それがアクセス首位を取り、編集者の紹介を経て本書の出版へつながった。
著者は電子情報通信学会やIEEE CogInfoCom 2024で発表して奨励賞や審査員特別賞を受け、スペイン・カナリア諸島の国際学会Eurocast2024にも立った。
授業中の落書きが、ここまで転がっていったわけだ。
ただし、手放しで真似できる話ではない。ここは正直に線を引いておきたい。著者は「数学が苦手」と言いつつ微分方程式やアフィン変換を素早く実装へ落とせる地頭の持ち主で、要所で優れたメンターにも恵まれている。
同じ成果を独学だけで再現するのは容易ではない。それでも、不完全なまま出す、手を抜きたい気持ちを自動化の燃料にする、AIを解答機ではなく補助線として扱う——この三つの構えは、地頭やメンターと無関係に、今日から誰でも真似できる。
100日を終えた著者の結論も、拍子抜けするほど素朴だった。継続とは歯を食いしばる苦行ではなく、日々の小さな興味を追ううちに生活へ溶け込む習慣なのだ、と。
三日坊主が怖くて動けないなら、まず昨日より1%だけ進む一手を、今日ひとつ決めればいい。
