AI Coding Beginner Course
從「用 AI 寫第一個網站」到「用 Google Apps Script 記錄互動資料」的自學型教學投影片。
使用方式
前半段用生活化比喻說明前端、後端、AI 助手、VS Code、GitHub 與 Vercel 的角色。
每個工具都有明確的「你要做什麼」與「為什麼要這樣做」,避免只照抄而不知道目的。
Google Apps Script 串接常見錯誤會被拆成檢查清單,初學者可以逐項排除問題。
學習成果
第一個成果
第二個成果
AI Coding 的核心不是背語法,而是把你的需求、限制、檔案位置與錯誤訊息清楚交給 AI,讓 AI 幫你產生、修改與解釋程式碼。
本課程的終點不是「會寫所有語法」,而是「知道每個檔案放哪裡、每個工具負責什麼、出錯時先查哪一層」。這是初學者能真正獨立前進的關鍵。
Foundation
你不需要先成為工程師,但你需要知道「怎麼描述需求、怎麼檢查結果、怎麼把成果放到正確位置」。
AI Coding 是什麼
示意圖:使用 GPT Image 產生,文字標註由投影片呈現。
AI 對話原則
任務
限制
輸出格式
初學者最常犯的錯,是只說「幫我做一個漂亮網站」。AI 會猜很多細節,因此產生結果可能看起來完整,卻不符合你的實際需求。
更好的提示詞會交代:網站目的、目標使用者、需要哪些區塊、是否只用一個 index.html、是否要手機版、以及要 AI 說明哪些地方需要你手動替換。
示意圖:使用 GPT Image 產生。
網站的兩大部分
前端三支柱
來源:本地手冊內嵌示意圖。
HTML
<h1>我的第一個網站</h1> <p>這是一段自我介紹。</p> <img src="photo.jpg" alt="profile"> <button>點我</button>
body {
background: linear-gradient(135deg, #edf4f8, #fffdf7);
color: #1c2533;
}
.button {
border-radius: 8px;
transition: transform 0.2s ease;
}
CSS
JavaScript
document
.getElementById('startButton')
.addEventListener('click', function () {
document.body.classList.toggle('dark');
});
後端的角色
前端做不到
後端能處理
只有前端的網站,資料通常存在使用者的瀏覽器裡。使用者關掉瀏覽器或換裝置,資料就可能消失,而且你也看不到所有人的互動紀錄。
在第二份手冊中,Google Apps Script 扮演免費迷你伺服器,Google Sheet 扮演簡易資料庫,Vercel Serverless Function 則負責把敏感的 GAS URL 藏在伺服器端。
Toolkit
AI 產生程式碼,VS Code 整理檔案,GitHub 保存版本,Vercel 把網站部署成公開網址。
工具分工
用自然語言描述需求,請 AI 產生程式碼、解釋程式碼、修正錯誤。
在本機建立資料夾、建立檔案、貼上程式碼、管理專案結構。
把程式碼放到雲端版本庫,之後可以回到先前版本,也讓 Vercel 讀取。
從 GitHub 讀取專案,自動部署並產生可以分享的網址。
VS Code 介面
來源:Visual Studio Code 官方文件,User Interface。
建立第一個檔案
my-first-web/ index.html 重要檢查: 1. 檔名是 index.html 2. 放在專案最外層 3. 內容包含 HTML、CSS、JS
來源:GitHub Docs,Creating a new repository。
GitHub
Repository 名稱
來源:GitHub Docs,Creating a new repository。
Vercel
來源:本地手冊內嵌工作流程圖。
完整工作流程
描述網站功能,取得單一 HTML 程式碼。
建立資料夾,貼上程式碼並儲存為 index.html。
建立 Repository,將檔案上傳並 Commit。
Import GitHub 專案,按 Deploy 部署。
打開網址測試,截圖回報給 AI 修改。
迭代思維
敢試
可回復
小步驟
初學者可以大膽要求 AI 做新功能,但不要一次要求太多。一次改一件事,才知道哪個修改造成好結果或壞結果。
GitHub 的版本控制讓你有退路:每次完成一個可用狀態就 Commit。當網站壞掉時,先比較最近一次改了什麼,再請 AI 針對錯誤修正。
From Frontend To Full Stack
當網站開始有遊戲、問卷、模擬實驗或學習紀錄,就需要後端來接收與保存資料。
為什麼需要後端
問題
目標
做法
互動網站常會產生紀錄,例如使用者姓名、Email、遊戲分數、實驗反應時間或問卷回答。如果資料只存在本機瀏覽器,你無法集中收集所有人的結果。
第二份手冊的解法是:前端把資料送到 /api/log,Vercel 中間層轉送到 Google Apps Script,最後由 GAS 寫進 Google Sheet。
Google Apps Script
來源:Wikimedia Commons,Google Apps Script workspace screenshot,CC0。
示意圖:使用 GPT Image 產生。
資料流
資料欄位
來源:本地 Google Apps Script 手冊內嵌截圖。
Step 1
Step 2-3
const SHEET_URL = '貼上你的 Sheet URL';
const SHEET_NAME = 'Sheet1';
function doPost(e) {
const data = JSON.parse(e.postData.contents);
const sheet = SpreadsheetApp
.openByUrl(SHEET_URL)
.getSheetByName(SHEET_NAME);
sheet.appendRow([id, timestamp, data.name, data.email, data.log]);
}
Step 4
部署類型
執行身分
存取權
第一次部署會要求授權,因為 GAS 需要你的允許才能寫入 Google Sheet。這是正常流程,不是錯誤。
每次修改 GAS 程式碼後,只按儲存不會讓 Web App 更新。你必須建立新的部署,取得新的 Web App URL,必要時同步更新 Vercel 的環境變數。
為什麼多一層 Vercel API
前端是公開的
中間層保護
如果你把 GAS Web App URL 直接放進 index.html,任何人都能複製那個 URL 並亂送資料到你的 Sheet。
Vercel Serverless Function 的作用是代理(proxy):它接收前端資料,再從安全的環境變數讀出真正的 GAS URL。這樣前端不需要暴露敏感資訊。
Step 5
來源:Vercel Docs,Managing Environment Variables。
module.exports = async function handler(req, res) {
res.setHeader('Access-Control-Allow-Origin', '*');
if (req.method !== 'POST') return res.status(405).json({});
const gasUrl = process.env.GAS_URL;
const response = await fetch(gasUrl, {
method: 'POST',
body: JSON.stringify(req.body),
redirect: 'follow'
});
return res.status(200).json(await response.json());
};
Step 6
專案結構
my-interactive-site/
index.html
api/
log.js
前端呼叫:
fetch('/api/log', {
method: 'POST',
headers: { 'Content-Type': 'application/json' }
})
Step 7A
表單欄位
表單送出
開始互動
表單的作用不是裝飾,而是把每一筆互動紀錄和使用者連起來。否則 Sheet 中只會看到一堆 log,很難知道是哪個人產生的。
請 AI 整合前端功能時,要明確告訴它:網站是單一 index.html,不是 React 或 Vue,且前端只能 POST 到相對路徑 /api/log。
async function sendLog(logData) {
const payload = {
name: playerName,
email: playerEmail,
log: JSON.stringify(logData)
};
const response = await fetch('/api/log', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
return await response.json();
}
Step 7B
測試流程
一次搞定提示詞
Code.gs
api/log.js
index.html
一次產生所有檔案很方便,但 AI 容易在細節上偏離手冊,例如使用 Next.js 寫法、產生 TypeScript、或把 GAS URL 直接放到前端。
因此,一次搞定提示詞後仍要逐項檢查:檔案路徑、語法格式、環境變數名稱、前端相對路徑、GAS 部署設定與 Sheet 欄位順序。
Troubleshooting
遇到錯誤時,不要先重寫全部程式。先定位:前端、Vercel、GAS、還是 Google Sheet 哪一層出問題。
示意圖:使用 GPT Image 產生。
先查資料有沒有進 Sheet
常見錯誤
提示 AI 除錯
要提供
要限制
AI 不知道你的實際專案狀態,除非你把錯誤訊息、檔案路徑、部署平台與你剛做的步驟交代清楚。資訊越完整,AI 越可能修對。
最好的除錯提示詞會要求 AI 先判斷錯誤發生在哪一層,再提供最小修改。這樣可以避免 AI 重寫整份程式碼,導致原本正常的部分也被改壞。
名詞速查
程式可以呼叫的路徑。本課程中就是 /api/log。
不用自己管理伺服器的雲端函數,Vercel 會幫你執行。
存在伺服器端的設定值,用來保存 GAS URL 這類不想暴露的資訊。
把資料送給伺服器的 HTTP 方法,常用於表單、紀錄與新增資料。
前後端交換資料的格式,適合表示 name、email、score 這類欄位。
瀏覽器的跨網域安全規則;設定不對時,請求可能被瀏覽器擋下。
練習任務
Sources & Image Credits
投影片內容依兩份本地 Markdown 手冊重組為初學者教學版本;示意圖由 GPT Image 產生,介面圖來自官方文件與公開授權來源。
本地手冊:AI Coding 初學者完整學習手冊;Google Apps Script 學習手冊。
VS Code 介面圖:Visual Studio Code Docs - User Interface
GitHub 介面圖:GitHub Docs - Creating a new repository
Vercel 環境變數介面圖:Vercel Docs - Managing Environment Variables
Google Apps Script 編輯器截圖:Wikimedia Commons, CC0
GPT Image 示意圖:前後端概念、資料流、AI Coding 循環、除錯清單。