1. LLM時代の開発を体験する
1.1. この章で学ぶこと
LLMが開発にもたらした変化
本書で作るアプリの全体像
学習の進め方
必要な前提知識(ほぼゼロでOK)
1.2. 何が変わったのか
1.2.1. プログラミング学習の革命
2022年11月、ChatGPT[1]の登場はプログラミングの世界を一変させました。 それ以前は、エラーメッセージが出たら何時間もStack Overflow[2]を検索し、英語のドキュメントと格闘し、時には諦めてしまうこともありました。
しかし今は違います。 エラーが出たら、そのままLLM[3]に貼り付けて質問すれば、数秒で解決策が返ってきます。 分からない概念があれば、対話しながら理解を深められます。 まるで、24時間365日付き添ってくれる優秀なメンターが手に入ったようなものです。
図 1.1 LLM時代の開発体験
1.2.2. 従来の学習フロー
疑問が発生
↓
Google検索 (10分)
↓
Stack Overflowで似た質問を探す (20分)
↓
英語のドキュメントを読む (30分)
↓
試行錯誤 (1時間)
↓
うまくいかず挫折...
この流れに覚えがある人も多いのではないでしょうか。 特に初心者にとって、「どこで何が間違っているのか分からない」という状況は、プログラミング学習の最大の壁でした。
1.2.3. LLM時代の学習フロー
疑問が発生
↓
LLMに質問 (30秒)
↓
即座に回答が返ってくる
↓
分からない部分を対話で深掘り (5分)
↓
実装して動作確認 (10分)
↓
成功体験を積み重ねる!
学習のスピードが大幅に向上しただけでなく、挫折ポイントが激減しました。 これがLLM時代の開発の最大の変化です。
1.2.4. 開発者に求められるスキルの変化
LLMの登場で、開発者に必要なスキルも変わりました。
以前重視されたスキル:
すべての文法を暗記
フレームワークのAPIを細かく記憶
エラーメッセージのパターンを覚える
大量のドキュメントを読破
今重視されるスキル:
コードを書くことから、設計と対話へ。これが新しい開発スタイルです。
1.2.5. でも、すべてLLMに任せればいい?
そうではありません。LLMは強力なツールですが、万能ではありません。
図 1.2 LLM時代の開発スキル
LLMが得意なこと:
定型的なコードの生成
エラーメッセージの解説
既存のベストプラクティスの提示
コードのリファクタリング提案
LLMが苦手なこと:
最新すぎる情報(学習データの締切以降)
プロジェクト全体の文脈理解
最適なアーキテクチャの判断
セキュリティの深い考慮
つまり、LLMは最高の相棒ですが、最終的な判断は人間が行う必要があります。 本書では、この「LLMとの協働」を実践的に学んでいきます。
1.3. 本書で作るもの
1.3.1. テキストアドベンチャーゲーム
本書では、サンプルプログラムとしてAI と会話しながら進めるテキストアドベンチャーゲームを作ります。
このサンプルプログラムを実際のサーバーにデプロイして、サービスを開始できるところまで解説していきます。 従来の入門書ではサンプルコードを作るところまでで終わることが多く、実際にサーバーを立ててサービスを公開する段階で多くの初心者が苦労しているようです。 そこで本書では、サンプルプログラム自体はシンプルに留め、サーバー構築やサービス公開に関する説明を手厚くするように心がけています。
とはいえ、つまらないサンプルプログラムだと作っても面白くありません。そこで今回は、楽しみながら開発できる簡単なテキストアドベンチャーを作ってみることにしましょう。
1.3.1.1. ゲームの概要
あなたは廃墟となった地下研究施設で目覚めました。
記憶は曖昧で、ここがどこなのか、なぜ自分がいるのか分かりません。
薄暗い廊下、錆びた機械、奇妙な痕跡……
この施設から脱出しなければなりません。
> 周囲を見回す
薄暗い部屋です。
壁には古いコンピューター端末があり、かすかに光を放っています。
扉は閉まっていて、電子ロックがかかっているようです。
次の行動:
1. コンピューター端末を調べる
2. 扉を調べる
3. 部屋を詳しく探索する
> 1
端末の画面には不可解なメッセージが表示されています……
このゲームの特徴は、ストーリーが AI(Gemini API[6])によって生成されることです。 プレイヤーの選択によって、物語は無限に分岐します。
1.3.1.2. なぜこのアプリを選んだのか
さて、本書の目的は「環境構築からデプロイまでを体験する」ことです。 このアプリはシンプルな構造で、実際のサービス作りを体験してみるにはうってつけです。
シンプルさ:
学習要素の豊富さ:
実用性と拡張性:
実際に遊べる
友達に見せられる
シナリオを変えて別ゲームに
機能追加しやすい
コード量は少ないですが、Web アプリ開発の本質的な要素はすべて含まれています。
1.3.2. 完成イメージ
図 1.3 ゲーム画面(デスクトップ)
1.3.3. 技術スタック
本書で使用する技術は以下の通りです。
バックエンド:
Python 3.13+: プログラミング言語
Django 5.2: Web フレームワーク[15]
SQLite: データベース(学習用として開発・本番共通で使用)
Gunicorn: WSGI[16]サーバー(Webアプリを動かすためのソフトウェア)
※1 … 本書では、執筆時点での安定版(Python 3.13、Django 5.2)を使用します。バージョンが異なる場合でも、基本的な流れは同じです。
※2 … 本格的な商用サービスでは、PostgreSQL や MySQL などのサーバー型データベースを使用するのが一般的です。
フロントエンド:
htmx: 動的な UI(JavaScript ほぼ不要)
LLM:
Google Gemini API: 物語生成
デプロイ:
開発ツール:
1.4. 学習の進め方
1.4.1. 本書の構成
本書は、実際にアプリを作りながら学ぶハンズオン形式です。
第1部: 準備と企画(第1-4章)
開発環境のセットアップ
LLMとの壁打ち[23]で企画を固める
Djangoの基礎
第2部: 開発(第5-7章)
Gemini API連携
チャットUIの実装
ゲームロジックの改善
第3部: デプロイと運用(第8-12章)
AWSの準備
EC2へのデプロイ
HTTPS化
運用
第4部: 発展(第13章)
機能拡張のアイデア
次のステップ
1.4.2. 学習時間の目安
第1章: 30分(読むだけ)
第2章: 2時間(環境構築)
第3章: 2時間(Django基礎)
第4章: 1時間(企画)
第5章: 2時間(LLM連携)
第6章: 3時間(UI実装)
第7章: 2時間(ロジック改善)
第8章: 1時間(AWS準備1)
第9章: 1時間(AWS準備2)
第10章: 4時間(EC2デプロイ)←最難関
第11章: 2時間(HTTPS化)
第12章: 2時間(運用)
第13章: 1時間(今後の発展)
合計: 約23時間
推奨ペース:
集中型: 週末2日 × 3週間
平日型: 平日2時間 × 12日
マイペース型: 1日1章、2週間
重要
挫折しないコツ
必ず手を動かす: 読むだけでなく、実際にコードを書く
エラーを恐れない: エラーは学習のチャンス
LLMに頼る: 分からないことは即座に質問
完璧を目指さない: まず動かす、改善は後で
SNSで発信: 学習記録をシェアするとモチベーション維持
1.4.3. サンプルコードの使い方
本書のサンプルコードはGitHubで公開しています。
# リポジトリをクローン
git clone https://github.com/h3adeu/adventure-game.git
cd adventure-game
サンプルコードの使い分け:
自分で実装 → サンプルで答え合わせ(推奨)
学習効果が最も高い
エラーに強くなる
サンプルを写経
手を動かすことで理解が深まる
コメントを読みながら進める
サンプルをベースに改変
動くものから始められる
独自機能を追加して学ぶ
Tip
おすすめの進め方
第1-7章: 自分で実装 + サンプルで確認
第8-12章: サンプルを参考にしながら実装
第13章: 自分なりにカスタマイズ
1.4.4. LLMの活用方法
本書では、各章に「LLMへの質問例」を掲載しています。 質問は、後ほどインストールする cursor に対して行っても、 ChatGPT, Claude, Gemini などの LLM (チャット)に対して行っても構いません。 本書では、あなたと LLM との会話(チャット)の形式で紹介しています。
良い質問の構造:
【背景・目的】
〇〇という機能を実装しています。
【現状】
△△までは動いています。
【問題】
しかし、以下のエラーが出ました:
[エラーメッセージをそのまま貼り付け]
【試したこと】
- ××を試しました → 結果は□□
- ◇◇も試しました → 変化なし
【環境】
- OS: macOS 14.2
- Python: 3.13.x
- Django: 5.2.x
【質問】
このエラーの原因と解決方法を教えてください。
この構造で質問すると、LLMは的確な回答を返してくれます。
本書での表記:
あなた: [質問]
LLM: [回答]
あなた: [フォローアップ質問]
LLM: [詳細な説明]
この対話形式で、実際のLLM活用を体験できます。
1.5. 必要な前提知識(ほぼゼロでOK)
1.5.1. 安心してください、初心者でも大丈夫です
本書はプログラミング初心者を対象にしています。 以下のような前提知識は必要ありません:
× Pythonの詳しい文法
× Webフレームワークの経験
× データベースの知識
× AWSの経験
× コマンドライン操作の経験
1.5.2. あると望ましい知識(でもなくてもOK)
以下の知識があると理解がスムーズですが、なくても問題ありません。 本書内で必要に応じて説明します。
レベル1: これだけあれば十分
何かしらのプログラミング経験(言語は問わない)
Webサイトの基本概念(URL、ブラウザ、サーバー)
レベル2: あるとスムーズ
HTMLの基礎(タグの概念)
CSSの基礎(スタイルの概念)
変数、関数、if文などの基本的なプログラミング概念
レベル3: あれば理解が早い
Pythonの基礎文法
コマンドライン操作の経験
1.5.3. 「分からない」はチャンス
本書の最大の特徴は、LLMを活用することです。 分からないことがあったら、その場でLLMに質問してください。
例: HTMLを知らない場合
あなた: HTMLとは何ですか?初心者向けに説明してください。
LLM: HTMLは、Webページの構造を作るための言語です...
[詳しい説明]
あなた: <div>タグと<span>タグの違いは何ですか?
LLM: <div>はブロック要素で...
このように、学習しながら進められるのがLLM時代の開発です。
1.5.4. 本書で身につくスキル
本書を完走すると、以下のスキルが身につきます:
技術スキル:
Pythonの基礎
Djangoの基本的な使い方
LLM APIの活用
HTMLとCSSの基礎
コマンドライン操作
Gitの基本
AWSの基礎
デプロイの実践
非技術スキル:
LLMへの適切な質問力
エラーメッセージの読み方
問題を段階的に解決する力
ドキュメントの読み方
トラブルシューティング能力
開発マインドセット:
完璧を目指さず、まず動かす
エラーを恐れない
対話しながら理解を深める
継続的に改善する
1.5.5. 学習リソース(任意)
本書だけでも完結していますが、より深く学びたい場合は以下のリソースも参考にしてください。
Python基礎:
Python公式チュートリアル(日本語)
Progate Python(ブラウザで学習)
HTML/CSS基礎:
MDN Web Docs(日本語、信頼性高)
コマンドライン:
コマンドライン入門(動画)
Git:
サル先生のGit入門(分かりやすい)
注釈
外部リンクについて
※外部サイトのURLは2025年12月時点のものです。 サイトの内容は各運営者に帰属します。
注釈
LLMに学習計画を作ってもらう
「Pythonを3日で基礎から学ぶ計画を作ってください」とLLMに頼めば、あなた専用の学習計画を作ってくれます。これもLLM時代の学習法です。
1.6. さあ、始めましょう
1.6.1. 開発の旅へ
ここまで読んで、少しでも「面白そう」「やってみたい」と思ったなら、準備は整っています。
プログラミングは、自転車に乗ることと同じです。最初は転ぶかもしれません。 エラーが出て、何が間違っているのか分からないかもしれません。でも、転びながら学ぶのが一番の近道です。
そして今は、LLMという強力な味方がいます。24時間いつでも質問できる、優秀なメンターです。
1.6.2. 本書の約束
本書は、以下のことを約束します:
挫折ポイントを明示: 「ここでつまずく人が多い」を先に教えます
実際のエラーを掲載: リアルなエラーメッセージと解決法
LLMとの対話例: 実際にどう質問すればいいかを示します
段階的な説明: 一度にすべてを理解しなくてOK
動くものを作る: 理論より実践、まず動かす
1.6.3. 次の章へ
準備はできましたか?
次の第2章では、開発環境を整えます。 Python、Git、エディタをインストールし、初めてのLLMとの対話を体験します。
この環境構築こそが、多くの人がつまずくポイントです。でも安心してください。 本書は環境構築とデプロイに特化しています。 一つ一つ、丁寧に進めましょう。
Tip
コーヒーを用意して
プログラミングは、焦らずじっくり取り組むのがコツです。 コーヒーやお茶を用意して、リラックスした状態で始めましょう。 エラーが出ても、それは「学習のチャンス」です。 深呼吸して、LLMに質問してみてください。