面向初学者的 Web 开发课程
学习由 Microsoft Cloud Advocates 提供的为期 12 周的全面 Web 开发基础课程。24 节课涵盖了 JavaScript、CSS 和 HTML,通过动手项目如生态瓶、浏览器扩展和太空游戏来强化学习。课程包含测验、讨论和实践作业。通过项目驱动的教学方式,提高你的技能并优化知识记忆。快来开启你的编程之旅吧!
🧑🎓 你是学生吗?
访问 学生中心页面,你可以找到适合初学者的资源、学生包,甚至有机会获得免费的证书兑换券。这个页面每月都会更新内容,记得收藏并定期查看!
📣 公告 - JavaScript 的生成式 AI 新课程发布
别错过我们最新发布的生成式 AI 课程!
访问 https://aka.ms/genai-js-course 开始学习!
- 从基础到 RAG(检索增强生成)的完整课程
- 使用 GenAI 和我们的配套应用与历史人物互动
- 引人入胜的故事线,你将体验时空旅行!
每节课都包含作业、知识检查和挑战,帮助你学习以下主题:
- Prompting 和 Prompt Engineering(提示工程)
- 文本和图片应用生成
- 搜索应用程序开发
访问 https://aka.ms/genai-js-course 开始学习吧!
🌱 入门指南
学习者,在学习每节课时,先做课前测验,然后阅读讲义,完成各类活动,并通过课后测验检验学习成果。
为了提升学习体验,可以和同伴一起合作完成项目!在 讨论区中与大家交流,我们的团队会随时回答你的问题。
想要继续深造?推荐你探索 Microsoft Learn,获取更多学习资源。
📋 配置开发环境
课程已经配置好了开发环境!你可以选择在 Codespace(基于浏览器、无需安装)中运行课程,或者在本地使用文本编辑器,如 Visual Studio Code。
创建你的仓库
为了保存你的学习进度,建议你创建自己的仓库副本。点击页面顶部的 Use this template 按钮即可在你的 GitHub 账户下创建新仓库。
操作步骤:
- Fork 仓库:点击页面右上角的 “Fork” 按钮。
- 克隆仓库:运行以下命令将仓库克隆到本地:
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
在 Codespace 中运行课程
在你 Fork 的仓库中,点击 Code 按钮,选择 Open with Codespaces。这会在 Codespace 中为你创建新的工作空间。
在本地运行课程
在本地运行课程,你需要:
- 文本编辑器
- 浏览器
- 命令行工具
第一节课 编程语言与开发工具介绍 会引导你选择合适的工具。
推荐使用 Visual Studio Code 作为编辑器,它内置了 终端。
- 克隆你的仓库到本地:
点击 Code 按钮,复制仓库 URL,然后在终端中运行:git clone <your-repository-url>
- 在 Visual Studio Code 中打开项目文件夹:
点击 文件 > 打开文件夹,选择克隆的文件夹。
推荐的 Visual Studio Code 扩展:
- Live Server - 在编辑器内预览 HTML 页面
- Copilot - 编码助手
📂 每节课包含
- 可选的手绘笔记
- 可选的补充视频
- 课前热身测验
- 书面课程讲解
- 项目课程中的逐步构建指南
- 知识检查
- 挑战任务
- 补充阅读材料
- 课后测验
关于测验的说明:所有测验都存放在
Quiz-app
文件夹中,总共有 48 个测验,每个测验包含 3 道题。这些测验在课程中有链接,你可以在本地运行测验应用,或将其部署到 Azure。请按照quiz-app
文件夹中的说明操作。目前,这些测验正在逐步本地化。
🗃️ 课程列表
项目名称 | 授课概念 | 学习目标 | 课程链接 | 作者 | |
---|---|---|---|---|---|
01 | 入门 | 编程和开发工具基础 | 掌握大部分编程语言的基本原理,了解帮助专业开发者完成工作的工具 | 编程语言和开发工具入门 | Jasmine |
02 | 入门 | GitHub 基础,团队协作 | 学习如何在项目中使用 GitHub,并与他人协作开发代码 | GitHub 入门 | Floor |
03 | 入门 | 无障碍性 | 掌握 Web 无障碍性基础知识 | 无障碍性基础 | Christopher |
04 | JS 基础 | JavaScript 数据类型 | 学习 JavaScript 数据类型的基础知识 | 数据类型 | Jasmine |
05 | JS 基础 | 函数和方法 | 学习如何使用函数和方法管理应用程序的逻辑流程 | 函数与方法 | Jasmine 和 Christopher |
06 | JS 基础 | 使用 JS 进行决策 | 学习在代码中使用条件语句进行逻辑判断 | 逻辑判断 | Jasmine |
07 | JS 基础 | 数组和循环 | 使用数组和循环在 JavaScript 中处理数据 | 数组和循环 | Jasmine |
08 | Terrarium | HTML 实战 | 构建 HTML 页面,实现在线玻璃容器(Terrarium),重点学习布局构建 | HTML 入门 | Jen |
09 | Terrarium | CSS 实战 | 使用 CSS 为玻璃容器项目添加样式,重点学习 CSS 基础,包括响应式设计 | CSS 入门 | Jen |
10 | Terrarium | JavaScript 闭包、DOM 操作 | 使用 JavaScript 让玻璃容器支持拖拽交互,重点学习闭包和 DOM 操作 | JS 闭包与 DOM 操作 | Jen |
11 | 打字游戏 | 构建打字游戏 | 学习如何使用键盘事件驱动 JavaScript 应用的逻辑 | 事件驱动编程 | Christopher |
12 | 绿色浏览器扩展 | 浏览器操作 | 了解浏览器工作原理、历史,并搭建第一个浏览器扩展框架 | 关于浏览器 | Jen |
13 | 绿色浏览器扩展 | 构建表单、调用 API、存储变量 | 使用 JavaScript 构建浏览器扩展,通过 API 调用并将变量存储在本地 | API、表单和本地存储 | Jen |
14 | 绿色浏览器扩展 | 浏览器后台进程与性能优化 | 使用浏览器后台进程管理扩展图标,同时优化 Web 性能 | 后台任务与性能 | Jen |
15 | 太空游戏 | 高级游戏开发 | 学习使用类与组合模式实现继承,掌握发布/订阅模式构建游戏 | 高级游戏开发入门 | Chris |
16 | 太空游戏 | Canvas 绘图 | 学习使用 Canvas API 在屏幕上绘制元素 | Canvas 绘图 | Chris |
17 | 太空游戏 | 元素移动 | 使用笛卡尔坐标系和 Canvas API 为游戏元素添加移动效果 | 元素移动 | Chris |
18 | 太空游戏 | 碰撞检测 | 实现元素碰撞检测,响应按键事件,并使用冷却函数优化性能 | 碰撞检测 | Chris |
19 | 太空游戏 | 计分机制 | 实现基于游戏状态和表现的数学计算进行计分 | 计分机制 | Chris |
20 | 太空游戏 | 游戏结束与重启 | 学习如何结束和重启游戏,包括资源清理和变量重置 | 结束条件 | Chris |
21 | 银行应用 | HTML 模板与路由 | 学习如何在多页面网站中使用 HTML 模板和路由构建架构 | HTML 模板与路由 | Yohan |
22 | 银行应用 | 构建登录和注册表单 | 学习表单构建和验证逻辑处理 | 表单 | Yohan |
23 | 银行应用 | 数据获取与使用方法 | 学习数据流转过程,包括获取、存储和处理 | 数据操作 | Yohan |
24 | 银行应用 | 状态管理概念 | 学习应用的状态管理和编程操作方式 | 状态管理 | Yohan |
🏫 教学法
我们的课程设计遵循以下两大核心教学原则:
- 项目驱动学习
- 频繁测验
本课程教授 JavaScript、HTML 和 CSS 的基础知识,同时涵盖现代 Web 开发者使用的最新工具和技术。学生将通过实际项目积累实践经验,例如:构建打字游戏、虚拟玻璃容器、环保浏览器扩展、类似太空侵略者的游戏以及面向企业的银行应用程序。通过完成本系列课程,学生将对 Web 开发有扎实的理解。
🎓 你可以在 Microsoft Learn 上以 学习路径 的形式学习本课程的前几节课!
通过将课程内容与项目相结合,学习过程变得更具吸引力,同时也能增强学生对概念的记忆和理解。此外,我们还编写了几节 JavaScript 基础入门课程,并配有视频教程,视频来自于《JavaScript 初学者系列》。部分视频的作者也为本课程提供了贡献。
此外,课堂前的小测验可以帮助学生明确学习目标,而课堂后的测验则有助于巩固所学知识。整个课程设计灵活且有趣,学生可以完整学习或选择部分内容。项目难度从入门逐渐增加,最终形成较为复杂的 Web 应用程序,整个周期为 12 周。
为了专注于 Web 开发者所需的基础技能,在本课程中我们特意没有引入 JavaScript 框架。完成本课程后,下一步推荐学习 Node.js,可以参考另一套视频系列:《Node.js 初学者系列》。
🧭 离线访问
你可以使用 Docsify 在本地离线运行该文档。只需 Fork 此仓库,在本地安装 Docsify,然后在仓库根目录下运行以下命令:
docsify serve
网站将通过本地主机的 3000 端口运行,访问地址为:
localhost:3000