なぜシェフは野菜を育てることから始めないのか?
レストランで「宮保鶏丁」を注文する場面を想像してみてください。 シェフは注文を受けると、冷蔵庫から鶏肉を取り出し、火にかけた鍋に特製ソースを加え、5分後に料理を提供します。 決して裏庭でひよこを孵したり、鶏が成長するのを待ったり、ネギやニンニクを栽培してから炒めるようなことはしません。それはあまりにも非効率です。
このレストランが機能するのは、「標準作業手順 (SOP)」が確立されているからです。 「ネギのみじん切り」「鶏肉の下味付け」「ソースの調合」といった複雑な工程は、すべて事前に準備されています。シェフはこれらの半製品を「呼び出し (Call)」するだけで、完璧な宮保鶏丁を素早く仕上げられるのです。
プログラミングにおいて、この「複雑な動作をパッケージ化して繰り返し利用可能にする」仕組みを 「関数 (Function)」 と呼びます。
関数がないと、あなたのコードは災害になる
これまでの章で、if-elseを使った割引計算や、ループを使った不合格生徒の抽出を学びました。
しかし、あなたが大規模ECサイトのオーナーだとしましょう。サイトには「割引計算」が必要な箇所が3つあります:
- ホームページのタイムセールコーナー
- 会員専用のショッピングカート
- カスタマーサポートの返金システム
関数を使わない場合、20行にも及ぶ割引計算コードをこれら3箇所にコピー&ペーストすることになります。 何が問題か? ある日「VIP会員には85折ではなく8折を適用しよう」と決めた場合、 大惨事です!何千行もあるコードから、肉眼で3箇所を見つけ出し、手作業で修正しなければなりません。1つでも修正漏れがあれば、顧客から苦情の電話がかかってくるでしょう!
魔法の封印:自分だけの「割引計算機」を作ろう
この問題を解決するため、エンジニアはfunctionを発明しました。
これはあなたが独自に開発したマシンのようなものです。「魔法の割引機」と名付け、次のように設定します:
- 投入口 (パラメータ Parameters):「定価」と「VIPかどうか」を受け取る
- 内部処理 (実行ロジック):
if-elseで計算処理を行う - 出口 (戻り値 Return):計算済みの「最終価格」を出力する
Vibe Prompt 実践:あなた初のビジネスマシンを設計
【関数カプセル化 Prompt】 JavaScriptを使用しています。
calculatePriceという関数を作成してください。
- 2つのパラメータを受け取ります:
originalPrice(数値) とisVip(ブール値 true/false)- ロジック:VIPなら20%オフ、一般客なら10%オフ
- 最終的に計算結果を
returnで返す- 関数の呼び出し例を2つ示してください(VIP客が1000円購入、一般客が2000円購入)、結果をコンソールに出力
AIが生成した関数と呼び出し例:
// 1. マシンの製造:calculatePrice関数の定義
function calculatePrice(originalPrice, isVip) {
let finalPrice;
if (isVip === true) {
// VIPは20%オフ
finalPrice = originalPrice * 0.8;
} else {
// 一般客は10%オフ
finalPrice = originalPrice * 0.9;
}
// 計算結果を出力
return finalPrice;
}
// ==========================================
// 2. マシンの使用:必要な場所で「呼び出し」
// ケース1:VIP客が1000円の商品を購入
const price1 = calculatePrice(1000, true);
console.log(`VIP客の支払額:${price1}円`); // 800と表示
// ケース2:一般客が2000円の商品を購入
const price2 = calculatePrice(2000, false);
console.log(`一般客の支払額:${price2}円`); // 1800と表示
見てください!ロジックをfunctionにカプセル化すると、コードがどれほど簡潔になるでしょう!
さらに素晴らしいのは、後で割引率を15%に変更する場合、マシン内部の1行を修正するだけで、この関数を呼び出している全ての場所が自動的に更新される点です。これがソフトウェア工学の重要な原則「DRY (Don't Repeat Yourself、繰り返しを避ける)」です。
結論:おめでとう、あなたはVibe Coderになりました!
「プログラミング初心者101」の5章を終えたあなたは、現代ソフトウェア開発の4大基盤を習得しました:
- 変数とデータ型 (名詞):データの保存方法
- 条件分岐 (論理):
if-elseを使った意思決定 - ループ (労働力):大量データ処理の自動化
- 関数 (武器庫):複雑な処理の再利用可能なパッケージ化
伝統的な計算機科学の課程では、これらの習得に学期全体を要します。 しかしVibe Codingの時代、括弧の暗記やインデントの悩みは不要です。これらの**「概念と言語」**を理解し、明確な日本語でPromptを書けば、Cursorが完璧なコードを生成してくれます。
あなたはもはや単語を暗記する「労働者」ではなく、AIに建築を指揮する「設計者」です。 この強力な武器を携え、より高度なコースへ進みましょう!ウェブサイト開発、LINEボット作成、スクレイピングなど、プログラミング世界の地図はあなたのために広がっています!
🎁 [VIP限定ボーナス] Vibe Coding実践演習とビジネス思考
基本的な構文を学んだ後、多くの人が疑問に思います:「ループや条件分岐は理解したが、どうやって案件を受注すればいいのか?」 これが伝統的な詰め込み教育の盲点です。従来の授業は「文法」だけ教え、「収益化可能な文章」の書き方は教えません。
Vibe Coderとして、以下の3つの核心的なビジネス思考を身につける必要があります。これが将来5万���以上の案件を獲得する礎となります:
1. 常に「ビジネス価値」を先に考え、「技術実装」は後回し
クライアントが「ログインシステムが欲しい」と言った時:
- 初心者エンジニアの反応:使用するデータベースやパスワードハッシュ化アルゴリズムを考え始める
- Vibe Coderの反応:「このログインシステムの利用者は?一般消費者向けなら、LINE LoginやGoogle認証を統合すべきです。変換率が最大化され、パスワード漏洩のリスクも軽減できます」 技術的な実装以前に、クライアントにとってより高い価値を提案できるのが真髄です。
2. Cursorデバッグの上級詠唱法
実際の開発では必ずエラーに遭遇します。画面に赤文字が表示されたら:
- 慌てない:エラーはコンピュータからのコミュニケーションです
- エラー全文をコピー:ターミナルやブラウザコンソールのエラーメッセージを文脈ごと正確に複製
- 意図を添えて:Cursorに次のように入力:
「商品リストをレンダリングするループを作成中、以下のエラーが発生しました:(エラーメッセージ貼り付け)。データ形式の問題か構文エラーか分析し、修正コードを提案してください」 十分な背景情報を与えると、AIのデバッグ精度が50%から99%に急上昇します。
3. この授業の知識を請求書に載せる方法
基本的なJS/Pythonを理解した今、UpworkやPTTで次のような案件を探せます:
- 「100個のExcelファイルを統合・整理する必要がある」(Pythonループ活用)
- 「ウェブサイトのダウンを毎日チェックする簡単なスクリプト���必要」(JS条件分岐活用)
ベテランエンジニアには小さすぎ、一般事務員には難しすぎる案件があなたのブルーオーシャンです。 3000~5000円で気軽に受注し、Cursorで10分で完了させれば、時給30000円も夢ではありません!
あなたが販売するのはコードではなく、クライアントの時間を節約するソリューションです。 この思考を持って、より高度なコースに挑戦しましょう!