|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "687c62646ad5595f1ba733edc294cdae",
|
|
|
"translation_date": "2025-08-29T15:13:34+00:00",
|
|
|
"source_file": "README.md",
|
|
|
"language_code": "tw"
|
|
|
}
|
|
|
-->
|
|
|
[](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
|
|
|
[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
|
|
|
[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
|
|
|
[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
|
|
|
[](http://makeapullrequest.com)
|
|
|
|
|
|
[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
|
|
|
[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
|
|
|
[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
|
|
|
|
|
|
[](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
|
|
|
|
|
|
[](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
|
|
|
|
|
|
[](https://discord.com/invite/ByRwuEEgH4)
|
|
|
|
|
|
按照以下步驟開始使用這些資源:
|
|
|
1. **Fork 此儲存庫**:點擊 [](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
|
|
|
2. **複製此儲存庫**:`git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
|
|
|
3. [**加入 Azure AI Foundry Discord,與專家和其他開發者交流**](https://discord.com/invite/ByRwuEEgH4)
|
|
|
|
|
|
# 初學者的網頁開發課程 - 一套完整的課程
|
|
|
|
|
|
透過 Microsoft Cloud Advocates 提供的 12 週完整課程,學習網頁開發的基礎知識。24 節課程涵蓋 JavaScript、CSS 和 HTML,並通過實作專案(如生態瓶、瀏覽器擴充功能和太空遊戲)進行學習。參與測驗、討論和實際作業,提升技能並優化知識保留效果。立即開始您的程式設計旅程吧!
|
|
|
|
|
|
### 🌐 多語言支援
|
|
|
|
|
|
#### 透過 GitHub Action 支援(自動化且始終保持最新)
|
|
|
|
|
|
[法文](../fr/README.md) | [西班牙文](../es/README.md) | [德文](../de/README.md) | [俄文](../ru/README.md) | [阿拉伯文](../ar/README.md) | [波斯文(法爾西語)](../fa/README.md) | [烏爾都文](../ur/README.md) | [中文(簡體)](../zh/README.md) | [中文(繁體,澳門)](../mo/README.md) | [中文(繁體,香港)](../hk/README.md) | [中文(繁體,台灣)](./README.md) | [日文](../ja/README.md) | [韓文](../ko/README.md) | [印地文](../hi/README.md) | [孟加拉文](../bn/README.md) | [馬拉地文](../mr/README.md) | [尼泊爾文](../ne/README.md) | [旁遮普文(古魯穆奇文)](../pa/README.md) | [葡萄牙文(葡萄牙)](../pt/README.md) | [葡萄牙文(巴西)](../br/README.md) | [義大利文](../it/README.md) | [波蘭文](../pl/README.md) | [土耳其文](../tr/README.md) | [希臘文](../el/README.md) | [泰文](../th/README.md) | [瑞典文](../sv/README.md) | [丹麥文](../da/README.md) | [挪威文](../no/README.md) | [芬蘭文](../fi/README.md) | [荷蘭文](../nl/README.md) | [希伯來文](../he/README.md) | [越南文](../vi/README.md) | [印尼文](../id/README.md) | [馬來文](../ms/README.md) | [他加祿文(菲律賓語)](../tl/README.md) | [斯瓦希里文](../sw/README.md) | [匈牙利文](../hu/README.md) | [捷克文](../cs/README.md) | [斯洛伐克文](../sk/README.md) | [羅馬尼亞文](../ro/README.md) | [保加利亞文](../bg/README.md) | [塞爾維亞文(西里爾字母)](../sr/README.md) | [克羅埃西亞文](../hr/README.md) | [斯洛維尼亞文](../sl/README.md) | [烏克蘭文](../uk/README.md) | [緬甸文(緬甸)](../my/README.md)
|
|
|
|
|
|
**如果您希望支援其他語言,請參考 [這裡](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
|
|
|
|
|
|
#### 🧑🎓 _您是學生嗎?_
|
|
|
|
|
|
造訪 [**學生中心頁面**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon),您將找到初學者資源、學生套件,甚至有機會獲得免費證書兌換券。這是您想要加入書籤並定期查看的頁面,因為我們每月都會更新內容。
|
|
|
|
|
|
### 📣 公告 - _使用生成式 AI 建立新專案_
|
|
|
|
|
|
新增了新的 AI 助手專案,快來查看 [專案](./09-chat-project/README.md)
|
|
|
|
|
|
### 📣 公告 - _生成式 AI 的新課程_
|
|
|
|
|
|
我們剛剛發布了針對 JavaScript 的生成式 AI 新課程!
|
|
|
|
|
|
立即造訪 [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) 開始學習!
|
|
|
|
|
|

|
|
|
|
|
|
- 課程涵蓋從基礎到 RAG 的所有內容。
|
|
|
- 使用 GenAI 和我們的配套應用程式與歷史人物互動。
|
|
|
- 有趣且引人入勝的敘事,您將進行時光旅行!
|
|
|
|
|
|

|
|
|
|
|
|
每節課程都包含一個作業、一個知識檢查以及一個挑戰,幫助您學習以下主題:
|
|
|
- 提示和提示工程
|
|
|
- 文本和圖像應用程式生成
|
|
|
- 搜索應用程式
|
|
|
|
|
|
立即造訪 [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) 開始學習!
|
|
|
|
|
|
## 🌱 開始使用
|
|
|
|
|
|
> **教師們**,我們已[提供一些建議](for-teachers.md)供您使用此課程。我們期待您在[討論論壇](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)中的反饋!
|
|
|
|
|
|
**[學習者](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**,每節課程從課前測驗開始,接著閱讀課程材料,完成各種活動,並通過課後測驗檢查您的理解。
|
|
|
|
|
|
為了提升學習體驗,與同儕一起合作完成專案吧!我們鼓勵您在[討論論壇](https://github.com/microsoft/Web-Dev-For-Beginners/discussions)中進行討論,我們的版主團隊將隨時回答您的問題。
|
|
|
|
|
|
為了進一步提升您的教育,我們強烈建議探索 [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) 以獲取更多學習材料。
|
|
|
|
|
|
### 📋 設置您的環境
|
|
|
|
|
|
此課程已準備好開發環境!開始時,您可以選擇在 [Codespace](https://github.com/features/codespaces/)(_基於瀏覽器,無需安裝的環境_)中運行課程,或者在本地電腦上使用文本編輯器(如 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon))運行。
|
|
|
|
|
|
#### 建立您的儲存庫
|
|
|
為了方便保存您的工作,建議您建立此儲存庫的副本。您可以通過點擊頁面頂部的 **Use this template** 按鈕來完成。這將在您的 GitHub 帳戶中建立一個包含課程副本的新儲存庫。
|
|
|
|
|
|
按照以下步驟操作:
|
|
|
1. **Fork 此儲存庫**:點擊頁面右上角的 "Fork" 按鈕。
|
|
|
2. **複製此儲存庫**:`git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
|
|
|
|
|
|
#### 在 Codespace 中運行課程
|
|
|
|
|
|
在您建立的此儲存庫副本中,點擊 **Code** 按鈕並選擇 **Open with Codespaces**。這將為您建立一個新的 Codespace 以進行工作。
|
|
|
|
|
|
[!Codespace](../..)./images/createcodespace.png)
|
|
|
|
|
|
#### 在本地電腦上運行課程
|
|
|
|
|
|
要在本地電腦上運行此課程,您需要一個文本編輯器、一個瀏覽器和一個命令行工具。我們的第一節課程 [程式語言和工具介紹](../../1-getting-started-lessons/1-intro-to-programming-languages) 將引導您了解每種工具的各種選項,幫助您選擇最適合您的工具。
|
|
|
|
|
|
我們建議使用 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 作為您的編輯器,它還內建了 [終端](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon)。您可以在[這裡](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)下載 Visual Studio Code。
|
|
|
|
|
|
1. 將您的儲存庫複製到您的電腦。您可以通過點擊 **Code** 按鈕並複製 URL 來完成:
|
|
|
|
|
|
[!CodeSpace](./images/createcodespace.png)
|
|
|
|
|
|
然後,在 [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) 的 [終端](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) 中運行以下命令,將 `<your-repository-url>` 替換為您剛剛複製的 URL:
|
|
|
|
|
|
```bash
|
|
|
git clone <your-repository-url>
|
|
|
```
|
|
|
|
|
|
2. 在 Visual Studio Code 中打開資料夾。您可以通過點擊 **File** 完成此操作。
|
|
|
> **開啟資料夾**,然後選擇您剛剛複製的資料夾。
|
|
|
> **推薦的 Visual Studio Code 擴充功能:**
|
|
|
>
|
|
|
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - 在 Visual Studio Code 中預覽 HTML 頁面
|
|
|
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - 幫助您更快速地撰寫程式碼
|
|
|
|
|
|
## 📂 每堂課包含:
|
|
|
|
|
|
- 可選的手繪筆記
|
|
|
- 可選的補充影片
|
|
|
- 課前暖身測驗
|
|
|
- 書面課程
|
|
|
- 專案型課程的逐步建構指南
|
|
|
- 知識檢測
|
|
|
- 挑戰
|
|
|
- 補充閱讀
|
|
|
- 作業
|
|
|
- [課後測驗](https://ff-quizzes.netlify.app/web/)
|
|
|
|
|
|
> **關於測驗的說明**:所有測驗都包含在 Quiz-app 資料夾中,共有 48 個測驗,每個測驗包含三個問題。您可以在 [這裡](https://ff-quizzes.netlify.app/web/) 找到這些測驗,測驗應用程式可以在本地執行或部署到 Azure,請按照 `quiz-app` 資料夾中的指示操作。
|
|
|
|
|
|
## 🗃️ 課程
|
|
|
|
|
|
| | 專案名稱 | 教授概念 | 學習目標 | 相關課程連結 | 作者 |
|
|
|
| :-: | :--------------------------------------------------: | :------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | :-------------------: |
|
|
|
| 01 | 入門篇 | 程式設計簡介與開發工具介紹 | 學習大多數程式語言的基本原理以及幫助專業開發者完成工作的軟體 | [程式語言與開發工具簡介](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
|
|
|
| 02 | 入門篇 | GitHub 基礎與團隊合作 | 學習如何在專案中使用 GitHub,如何與他人協作處理程式碼 | [GitHub 基礎介紹](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
|
|
|
| 03 | 入門篇 | 無障礙設計 | 學習網頁無障礙設計的基礎 | [無障礙設計基礎](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
|
|
|
| 04 | JS 基礎 | JavaScript 資料型別 | JavaScript 資料型別的基礎 | [資料型別](./2-js-basics/1-data-types/README.md) | Jasmine |
|
|
|
| 05 | JS 基礎 | 函式與方法 | 學習如何使用函式與方法來管理應用程式的邏輯流程 | [函式與方法](./2-js-basics/2-functions-methods/README.md) | Jasmine 和 Christopher |
|
|
|
| 06 | JS 基礎 | 使用 JS 做出決策 | 學習如何使用決策方法在程式碼中建立條件 | [決策方法](./2-js-basics/3-making-decisions/README.md) | Jasmine |
|
|
|
| 07 | JS 基礎 | 陣列與迴圈 | 使用 JavaScript 的陣列與迴圈來處理資料 | [陣列與迴圈](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
|
|
|
| 08 | [生態瓶](./3-terrarium/solution/README.md) | HTML 實作 | 建立 HTML 來創建一個線上生態瓶,專注於建立版面配置 | [HTML 簡介](./3-terrarium/1-intro-to-html/README.md) | Jen |
|
|
|
| 09 | [生態瓶](./3-terrarium/solution/README.md) | CSS 實作 | 建立 CSS 來設計線上生態瓶,專注於 CSS 的基礎,包括讓頁面具備響應式設計 | [CSS 簡介](./3-terrarium/2-intro-to-css/README.md) | Jen |
|
|
|
| 10 | [生態瓶](./3-terrarium/solution/README.md) | JavaScript 閉包與 DOM 操作 | 建立 JavaScript 來讓生態瓶具備拖放功能,專注於閉包與 DOM 操作 | [JavaScript 閉包與 DOM 操作](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
|
|
|
| 11 | [打字遊戲](./4-typing-game/solution/README.md) | 建立一個打字遊戲 | 學習如何使用鍵盤事件來驅動 JavaScript 應用程式的邏輯 | [事件驅動程式設計](./4-typing-game/typing-game/README.md) | Christopher |
|
|
|
| 12 | [綠色瀏覽器擴充功能](./5-browser-extension/solution/README.md) | 瀏覽器操作 | 學習瀏覽器的運作方式、歷史,以及如何搭建瀏覽器擴充功能的基本架構 | [關於瀏覽器](./5-browser-extension/1-about-browsers/README.md) | Jen |
|
|
|
| 13 | [綠色瀏覽器擴充功能](./5-browser-extension/solution/README.md) | 建立表單、呼叫 API 並將變數儲存在本地存儲中 | 建立瀏覽器擴充功能的 JavaScript 元件,使用儲存在本地存儲中的變數來呼叫 API | [API、表單與本地存儲](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
|
|
|
| 14 | [綠色瀏覽器擴充功能](./5-browser-extension/solution/README.md) | 瀏覽器的背景處理與網頁效能 | 使用瀏覽器的背景處理來管理擴充功能的圖示;學習網頁效能以及一些優化方法 | [背景任務與效能](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
|
|
|
| 15 | [太空遊戲](./6-space-game/solution/README.md) | 更進階的 JavaScript 遊戲開發 | 學習使用類別與組合的繼承以及 Pub/Sub 模式,為開發遊戲做準備 | [進階遊戲開發簡介](./6-space-game/1-introduction/README.md) | Chris |
|
|
|
| 16 | [太空遊戲](./6-space-game/solution/README.md) | 繪製到畫布 | 學習使用 Canvas API,將元素繪製到螢幕上 | [繪製到畫布](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
|
|
|
| 17 | [太空遊戲](./6-space-game/solution/README.md) | 在螢幕上移動元素 | 探索如何使用笛卡爾座標與 Canvas API 讓元素移動 | [移動元素](./6-space-game/3-moving-elements-around/README.md) | Chris |
|
|
|
| 18 | [太空遊戲](./6-space-game/solution/README.md) | 碰撞檢測 | 讓元素碰撞並對彼此做出反應,使用按鍵事件並提供冷卻功能以確保遊戲效能 | [碰撞檢測](./6-space-game/4-collision-detection/README.md) | Chris |
|
|
|
| 19 | [太空遊戲](./6-space-game/solution/README.md) | 計分 | 根據遊戲的狀態與表現進行數學計算 | [計分](./6-space-game/5-keeping-score/README.md) | Chris |
|
|
|
| 20 | [太空遊戲](./6-space-game/solution/README.md) | 結束與重新開始遊戲 | 學習如何結束與重新開始遊戲,包括清理資產與重置變數值 | [結束條件](./6-space-game/6-end-condition/README.md) | Chris |
|
|
|
| 21 | [銀行應用程式](./7-bank-project/solution/README.md) | 網頁應用程式中的 HTML 模板與路由 | 學習如何使用路由與 HTML 模板來建立多頁網站的架構 | [HTML 模板與路由](./7-bank-project/1-template-route/README.md) | Yohan |
|
|
|
| 22 | [銀行應用程式](./7-bank-project/solution/README.md) | 建立登入與註冊表單 | 學習如何建立表單並處理驗證邏輯 | [表單](./7-bank-project/2-forms/README.md) | Yohan |
|
|
|
| 23 | [銀行應用程式](./7-bank-project/solution/README.md) | 獲取與使用資料的方法 | 學習資料如何在應用程式中流動,如何獲取、儲存與處理資料 | [資料](./7-bank-project/3-data/README.md) | Yohan |
|
|
|
| 24 | [銀行應用程式](./7-bank-project/solution/README.md) | 狀態管理概念 | 學習應用程式如何保留狀態以及如何以程式方式管理狀態 | [狀態管理](./7-bank-project/4-state-management/README.md) | Yohan |
|
|
|
| 25 | [瀏覽器/VScode 編輯器](../../8-code-editor) | 使用 VScode | 學習如何使用程式碼編輯器 | [使用 VScode 編輯器](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
|
|
|
| 26 | [AI 助理](./9-chat-project/README.md) | 使用 AI | 學習如何建立自己的 AI 助理 | [AI 助理專案](./9-chat-project/README.md) | Chris |
|
|
|
|
|
|
## 🏫 教學法
|
|
|
|
|
|
我們的課程設計基於兩個關鍵的教學原則:
|
|
|
* 專案導向學習
|
|
|
* 頻繁的測驗
|
|
|
|
|
|
本課程教授 JavaScript、HTML 和 CSS 的基礎知識,以及當今網頁開發者使用的最新工具與技術。學生將有機會透過實作打字遊戲、虛擬生態瓶、環保瀏覽器擴充功能、類太空侵略者遊戲以及商業銀行應用程式來獲得實作經驗。完成課程後,學生將對網頁開發有扎實的理解。
|
|
|
|
|
|
> 🎓 您可以在 Microsoft Learn 上以 [學習路徑](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) 的形式學習本課程的前幾堂課!
|
|
|
|
|
|
透過將內容與專案對齊,學習過程對學生來說更具吸引力,並能增強概念的記憶。我們還撰寫了幾堂 JavaScript 基礎課程來介紹概念,並搭配 "[JavaScript 初學者系列](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" 的影片教學,其中一些作者也參與了本課程的編寫。
|
|
|
|
|
|
此外,課前的低壓力測驗能幫助學生專注於學習主題,而課後的第二次測驗則能進一步鞏固記憶。本課程設計靈活有趣,可以整體學習或部分選修。專案從小型開始,並在 12 週的課程結束時逐漸變得更為複雜。
|
|
|
|
|
|
雖然我們有意避免介紹 JavaScript 框架,以便專注於成為網頁開發者所需的基本技能,但完成本課程後,學習 Node.js 會是下一個不錯的選擇,您可以參考另一系列影片:"[Node.js 初學者系列](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)"。
|
|
|
|
|
|
> 請參閱我們的 [行為準則](CODE_OF_CONDUCT.md) 和 [貢獻指南](CONTRIBUTING.md)。我們歡迎您的建設性反饋!
|
|
|
|
|
|
## 🧭 離線存取
|
|
|
|
|
|
您可以使用 [Docsify](https://docsify.js.org/#/) 離線運行此文件。Fork 此儲存庫,在本地機器上 [安裝 Docsify](https://docsify.js.org/#/quickstart),然後在此儲存庫的根目錄中輸入 `docsify serve`。網站將在本地端的 3000 埠上提供服務:`localhost:3000`。
|
|
|
|
|
|
## 📘 PDF
|
|
|
|
|
|
所有課程的 PDF 可在 [這裡](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) 找到。
|
|
|
|
|
|
## 🎒 其他課程
|
|
|
|
|
|
我們的團隊還製作了其他課程!請參考以下內容:
|
|
|
|
|
|
- [生成式 AI 初學者課程](https://aka.ms/genai-beginners)
|
|
|
- [生成式 AI 初學者課程 .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
|
|
|
- [使用 JavaScript 的生成式 AI](https://github.com/microsoft/generative-ai-with-javascript)
|
|
|
- [使用 Java 的生成式 AI](https://github.com/microsoft/Generative-AI-for-beginners-java)
|
|
|
- [AI 初學者課程](https://aka.ms/ai-beginners)
|
|
|
- [資料科學入門](https://aka.ms/datascience-beginners)
|
|
|
- [機器學習入門](https://aka.ms/ml-beginners)
|
|
|
- [網路安全入門](https://github.com/microsoft/Security-101)
|
|
|
- [網頁開發入門](https://aka.ms/webdev-beginners)
|
|
|
- [物聯網入門](https://aka.ms/iot-beginners)
|
|
|
- [XR 開發入門](https://github.com/microsoft/xr-development-for-beginners)
|
|
|
- [精通 GitHub Copilot 的智能應用](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
|
|
|
- [精通 GitHub Copilot:適用於 C#/.NET 開發者](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
|
|
|
- [選擇你的 Copilot 冒險之旅](https://github.com/microsoft/CopilotAdventures)
|
|
|
|
|
|
## 授權
|
|
|
|
|
|
此存儲庫採用 MIT 授權條款。詳情請參閱 [LICENSE](../../LICENSE) 文件。
|
|
|
|
|
|
---
|
|
|
|
|
|
**免責聲明**:
|
|
|
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 |