規則:可以回去查前面的課,也可以查官方文件;但不要直接複製一套完整答案。這一關要確認的是:離開逐步教學後,你還知不知道自己正在操作哪一層。
你的任務
建立一個全新的專案,名稱自己決定。它只需要是一個很小的「專案介紹頁」:瀏覽器打開後能看到專案名稱、一小段介紹,以及一個按鈕;點擊按鈕後,畫面上要出現一段新的文字。
畫面漂不漂亮不重要。Start Here 驗收的是開發工作流,不是 CSS。
完成品至少要有這些檔案
your-project/
├─ README.md
├─ index.html
├─ script.js
├─ .gitignore
└─ notes/
└─ plan.md
你可以增加檔案,但不能少掉這些。資料夾與副檔名要真的正確,不要出現 index.html.txt。
Checkpoint A|從空資料夾開始
先自己建立專案資料夾,再用 VS Code 的 Open Folder 開啟它。不要從上一個 norelyn-first-project 複製整包。
完成後,你應該能回答:
現在的專案根目錄是哪一個資料夾?
notes/plan.md 相對於根目錄的路徑是什麼?
如果把 script.js 移進 assets/js/,原本的引用路徑需不需要改?
如果這三題還很模糊,先回第 1 課,不要靠試到成功往下衝。
Checkpoint B|用 Terminal 建一部分結構
這次至少有一個資料夾要從 Terminal 建立,而不是全部用 Explorer 點出來。
例如你可以自己決定要在哪個位置使用:
mkdir notes
接著用 pwd、dir 或 ls 確認位置和結果。
這關不是測你會不會背 mkdir,而是確認你知道:Terminal 操作的就是同一份專案檔案。
Checkpoint C|讓頁面真的跑起來
index.html 至少要包含:
一個清楚的專案名稱。
一小段介紹文字。
一個可以點擊的按鈕。
載入你自己的 script.js。
script.js 要讓按鈕被點擊後,改變頁面上一段文字。你可以用前一課看過的 DOM 與 event 寫法;如果忘了語法,可以回去查。
完成後,直接用瀏覽器開啟 index.html。如果畫面沒有反應,先打開 DevTools Console 看錯誤,不要先亂改五個地方。
Checkpoint D|README 和 plan 不能是空的
README.md 至少寫清楚:
這個專案叫什麼。
它做什麼。
怎麼在本機打開。
notes/plan.md 則寫三行就可以:你原本想做什麼、實際完成什麼、還想改什麼。
這是第一次把「做東西」和「留下可理解的紀錄」放在一起。
Checkpoint E|先處理 .gitignore
即使這個小專案目前沒有 secret,仍然建立 .gitignore。可以至少放:
.DS_Store
Thumbs.db
.env
node_modules/
.venv/
你現在可能沒有 node_modules、.venv 或 .env,但它們是之後非常常見、不應直接進 repository 的內容。
注意:.gitignore 是預防,不是秘密清除器。已經 commit 或 push 的敏感資料,不會因為後來寫進 .gitignore 就從歷史消失。
Checkpoint F|建立 Git 歷史
這個專案至少要有 兩個 commits,不能把所有東西一次做完後只 commit 一次。
你自己安排切法。一個合理的例子可能是:
commit 2:加入按鈕互動與文件
但訊息請自己寫,不要直接照抄。
開始前,你應該知道自己需要用到哪些工具:
git init
git status
git add ...
git commit ...
git log --oneline
這裡故意沒有給完整順序與完整參數。你已經在第 5 課做過一次。
Checkpoint G|推到 GitHub
在 GitHub 建立一個新的空 repository,名稱最好和本機專案一致。不要讓 GitHub 先替你建立 README、license 或 .gitignore。
接著把本機 repository 接上 remote,最後讓 GitHub 看得到你的 commits。
完成後至少自行確認:
git remote -v
git status
git log --oneline
GitHub 網頁上則要看得到 README.md、index.html、script.js、notes/plan.md,以及至少兩筆 commit 歷史。
Checkpoint H|做一次完整變更循環
現在專案已經在 GitHub,但還沒結束。修改 README.md 或頁面上的一句文字,然後自己完成:
最後重新整理 GitHub 頁面,確認新的 commit 已經出現在 remote。
如果你能清楚說出每一箭頭中間發生什麼,Start Here 的核心工作流就已經串起來了。
可以用 Codex、Claude Code 或 AGY 嗎?
可以,但這一關有一個限制:AI 可以幫你寫,不能替你不知道。
如果你讓 coding agent 修改檔案,至少要自己做下面三件事:
看它改了哪些檔案。
看 diff,確認變更符合你的需求。
自己決定哪些變更要進 commit。
如果 agent 執行了一條你完全不知道會做什麼的命令,先查懂再批准。這也是為什麼前面仍然要學 Terminal、runtime 和 Git。
常見失敗,不直接給答案
瀏覽器打開卻沒有互動:檢查 script.js 是否真的載入、Console 是否報錯、檔案有沒有儲存。
Git 說 nothing to commit:先想你是不是真的改了檔案,或改動是不是已經進上一個 commit。
push 被拒絕:先確認 remote URL、branch、認證,以及 remote 是否已經有本機沒有的 commit。
GitHub 看不到剛剛的修改:重新分清楚 Save、Commit、Push 三層。只做前兩個,不會自動傳到 GitHub。
Terminal 找不到檔案:先 pwd。很多問題只是你站錯資料夾。
最終驗收
你不需要交給 Norelyn 伺服器評分。自己逐項確認:
□ 我從空資料夾建立專案,而不是複製答案。
□ 我知道專案根目錄在哪裡,也看得懂主要檔案路徑。
□ 我至少用 Terminal 建立過一部分結構。
□ index.html 可以在瀏覽器執行,按鈕有互動。
□ 我有 README、plan 與 .gitignore。
□ repository 至少有兩個有意義的 commits。
□ 我能用 git status 判斷目前狀態。
□ 我看過自己的 diff,而不是盲目 commit。
□ GitHub 上看得到專案與 commit 歷史。
□ 我完成過一次「修改 → commit → push」。
如果全部做到,你已經跨過哪條線?
Start Here 沒有把你教成前端工程師,也沒有把你教成 Git 專家。它做的是更基礎的一件事:讓你不再把「寫程式」理解成在某個神秘視窗裡貼一段文字。
你現在知道這幾層怎麼接起來,也知道出問題時應該先判斷是哪一層,而不是全部重裝。
下一條路徑會正式進入 Web Basics。從那裡開始,HTML、CSS、JavaScript 不再只是拿來驗證工具,而會變成真正要學會控制的材料。
Start Here 完成條件:你可以從空資料夾開始,獨立建立一個可執行的小專案,留下版本歷史,並把它安全地同步到 GitHub。