Web-Dev-For-Beginners 课程全景指南:12 周 24 课从零掌握 HTML、CSS 与 JavaScript
本仓库是一套面向零基础学习者的开源全栈入门课程 Web Development for Beginners - A Curriculum(官方英文版见仓库根目录 README.md,本文主体对应的保加利亚语版见 translations/bg/README.md),由 Microsoft Cloud Advocates 牵头编写。课程以「项目驱动学习 + 高频测验」为核心方法论,用 24 堂渐进式课程带领你通过构建真实项目掌握 JavaScript、HTML、CSS。读完本文,你将理解课程的完整骨架、如何在本仓库的多种语言版本中高效克隆与配置开发环境、每一课的学习闭环,以及 26 节课(含两节新增课)的知识点与项目地图。
课程是什么:从「入门」到「做得出东西」
这是一门被设计为 12 周、24 课(官方文档口径;目录表现已扩充至 26 行) 的初学者课程。它的核心承诺不是堆砌语法,而是让你通过动手项目获得真实可上手的 Web 开发经验。课程文档列出的关键定位包括:
- 教学内容:JavaScript、HTML、CSS 三大基础,以及现代 Web 开发者正在使用的工具与技巧;
- 项目载体:打字游戏、虚拟植物温室(Terrarium)、环保主题浏览器扩展、太空入侵者风格游戏、面向业务场景的银行应用,以及新增的 AI 助手聊天项目;
- 设计初衷:有意避开 JavaScript 框架,先把作为 Web 开发者应掌握的基础技能打牢(学完后的推荐下一步是学习 Node.js)。
从仓库目录结构看(如 1-getting-started-lessons、2-js-basics、3-terrarium、4-typing-game、5-browser-extension、6-space-game、7-bank-project 等),内容组织方式与课程文档完全对应:先学编程语言与 GitHub、可访问性基础,再学 JS 数据类型、函数、条件分支、数组与循环,随后进入以「项目」为单位、难度逐课递增的实战阶段。
开始前的准备:Fork、克隆与多语言仓库的稀疏检出
课程的文档建议按以下顺序开始:
- 创建你自己的副本:点击页面顶部 Use this template 或 Fork 按钮,在个人 GitHub 账号下生成一份课程副本,方便保存自己的练习成果;
- 克隆到本地:在终端中执行
git clone <你的仓库地址>(将<你的仓库地址>替换为你 Fork 后得到的仓库 URL); - 加入社区讨论,与其他学习者和开发者交流。
一个重要的仓库事实是:本仓库包含 50+ 种语言的翻译版本(英文主版本之外,其余语言统一存放在 translations 目录,按语言代码分子目录,如 bg、zh-CN、ja、fr 等;配套翻译图片位于 translated_images)。翻译由 GitHub Action 自动化维护、持续保持与英文版同步,但也显著增大了克隆体积。
文档因此给出跳过翻译内容的高效克隆方案(sparse checkout):
# Bash / macOS / Linux
git clone --filter=blob:none --sparse <你的仓库地址>
cd Web-Dev-For-Beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
:: CMD (Windows)
git clone --filter=blob:none --sparse <你的仓库地址>
cd Web-Dev-For-Beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
--filter=blob:none 表示按需延迟下载文件内容(blob),--sparse 与 sparse-checkout set --no-cone 则把检出范围限定为课程实际需要的目录、显式排除 translations 与 translated_images 两个大目录。这样既能拿到完成课程所需的全部内容,又能显著加快克隆速度。若后续需要某个语言的完整内容,可以再通过 sparse-checkout 规则按需添加。
运行课程的两种环境
课程文档明确说明「开箱即用的开发环境」,并提供两条运行路径:
路径一:GitHub Codespaces(浏览器环境,无需安装)
在你的课程副本页面点击 Code 按钮,选择 Open with Codespaces,即可创建并进入一个预配置的云端开发容器,所有工具都随课程就绪。它适合没有本地开发环境的初学者。
路径二:本地运行
本地运行课程需要三样东西:文本编辑器、浏览器和命令行工具。第一课 编程语言与行业工具入门 会带你逐项对比各工具的选项,帮助你做选择。课程推荐组合为:
- 使用 Visual Studio Code 作为编辑器(其内置集成终端);不输出外部链接,可在官网下载安装;
- 克隆仓库后,用 File > Open Folder 打开克隆下来的文件夹;
- 安装两个推荐的 VS Code 扩展:
- Live Server:直接在 VS Code 内预览 HTML 页面;
- GitHub Copilot:辅助你更快地编写代码。
每一课包含的「学习闭环」
无论你选择哪一课,都会体验同一套经过设计的标准化学习流程。课程文档列出的单课组成要素如下:
- 可选的 sketchnote(视觉笔记);
- 可选的补充视频;
- 课前热身测验(pre-lesson quiz,低风险、用于设定学习意图);
- 成文的图文讲解(written lesson);
- 对项目型课程而言,附有分步构建指南;
- 课内知识检查(knowledge check);
- 一项挑战(challenge);
- 补充阅读材料(supplemental reading);
- 课后作业(assignment);
- 课后测验(post-lesson quiz,用于巩固记忆)。
测验系统:quiz-app
文档特别说明:全部测验集中在 quiz-app 目录,共 48 组小测验、每组 3 题(课程文档口径;quiz-app/README.md 中的维护说明另有「40 组、从 0 计数」的表述,两组文档计数不一致,以课程英文主 README 与后续维护口径为准)。测验应用可以本地运行,也可以部署到 Azure。
从 quiz-app/package.json 的源码事实看,quiz-app 是一个 Vue 3 + Vue Router + Vite 的前端工程,常用命令包括:
npm install # 安装依赖
npm run dev # 本地启动开发服务器
npm run build # 构建生产产物(输出到 dist/)
npm run lint # 可选:ESLint 代码规范检查
测验题数据以多语言 JSON 形式存放在 quiz-app/src/assets/translations(含 en.json、zh_cn.json、zh_tw.json、ja.json、fr.json、bg.json 之外的多语种文件),并由同目录的 index.js 统一导入注册——这也是多语言社区翻译、新增语种的入口。
若要把测验应用免费部署到 Azure,quiz-app/README.md 给出了 Azure Static Web Apps 的标准配置:应用位置(App location)填 ./quiz-app、构建输出目录(Output location)填 dist,部署完成后会自动在仓库 .github 目录生成触发重新部署的 GitHub Actions 工作流。
26 课全览:项目、知识点与学习目标
下表依据课程文档的「Lessons」目录整理(保留了课程文档对 26 行的编号与归类,所有链接已统一为仓库根目录相对路径)。文档中项目名链接指向该项目的完整可运行代码(solution),知识点链接指向对应教学文章。
| # | 项目 | 讲解主题 | 学习目标 | 对应课程 |
|---|---|---|---|---|
| 01 | Getting Started | 编程语言与行业工具入门 | 了解大多数编程语言背后的基本原理,以及专业开发者依赖的软件工具 | Intro to Programming Languages and Tools |
| 02 | Getting Started | GitHub 基础(含团队协作) | 学会在项目中使用 GitHub,与其他人协作同一份代码库 | Intro to GitHub |
| 03 | Getting Started | 可访问性(Accessibility) | 掌握 Web 可访问性的基础知识 | Accessibility Fundamentals |
| 04 | JS Basics | JavaScript 数据类型 | 掌握 JavaScript 数据类型基础 | Data Types |
| 05 | JS Basics | 函数与方法 | 用函数和方法组织应用逻辑 | Functions and Methods |
| 06 | JS Basics | 用 JS 做决策 | 用分支判断在代码中创建条件逻辑 | Making Decisions |
| 07 | JS Basics | 数组与循环 | 用数组与循环处理数据 | Arrays and Loops |
| 08 | Terrarium 项目 | HTML 实战 | 搭建在线温室页面,重点在页面布局 | Introduction to HTML |
| 09 | Terrarium 项目 | CSS 实战 | 编写样式并掌握 CSS 基础与响应式 | Introduction to CSS |
| 10 | Terrarium 项目 | JS 闭包与 DOM 操作 | 用拖拽交互让温室「活」起来,重点讲闭包与 DOM | JS Closures, DOM manipulation |
| 11 | Typing Game 项目 | 构建打字游戏 | 学习用键盘事件驱动 JS 应用逻辑(事件驱动编程) | Event-Driven Programming |
| 12 | Green Browser Extension | 浏览器工作原理 | 了解浏览器历史与工作方式,搭建扩展的第一批元素 | About Browsers |
| 13 | Green Browser Extension | 表单、API 与本地存储 | 用 localStorage 存储变量并调用 API,构建扩展的 JS 部分 | APIs, Forms, and Local Storage |
| 14 | Green Browser Extension | 浏览器后台任务与性能 | 用浏览器后台进程管理扩展图标,学习 Web 性能与优化 | Background Tasks and Performance |
| 15 | Space Game 项目 | 更进阶的 JS 游戏开发 | 学习 Class 继承、Composition 与 Pub/Sub 模式 | Intro to Advanced Game Development |
| 16 | Space Game 项目 | 向 Canvas 绘图 | 学习 Canvas API 在屏幕上绘制元素 | Drawing to Canvas |
| 17 | Space Game 项目 | 让元素动起来 | 用笛卡尔坐标与 Canvas API 实现元素运动 | Moving Elements Around |
| 18 | Space Game 项目 | 碰撞检测 | 用按键驱动元素碰撞与反应,并通过冷却机制保证性能 | Collision Detection |
| 19 | Space Game 项目 | 计分系统 | 基于游戏状态与表现做数学计算 | Keeping Score |
| 20 | Space Game 项目 | 结束与重开 | 学习游戏结束/重开流程,含资源清理与变量复位 | The Ending Condition |
| 21 | Banking App | HTML 模板与路由 | 用路由与 HTML 模板搭建多页面网站架构 | HTML Templates and Routes |
| 22 | Banking App | 登录与注册表单 | 学习构建表单与处理校验流程 | Forms |
| 23 | Banking App | 数据获取与使用 | 理解数据如何进出应用:获取、存储、释放 | Data |
| 24 | Banking App | 状态管理 | 学习应用如何保持状态、如何程序化地管理状态 | State Management |
| 25 | Browser/VSCode | 使用代码编辑器 | 学习代码编辑器的使用 | Use VSCode Code Editor |
| 26 | AI Assistants | 使用 AI | 学习构建自己的 AI 助手 | AI Assistant project |
从课程文档的公告信息看,仓库最近还补充了新的挑战类型——在多数章节中寻找 GitHub Copilot Agent Challenge,需要借助 GitHub Copilot 的 Agent 模式完成:该模式不仅能生成文本,还能创建与编辑文件、执行命令。这一设计反映课程正持续向 AI 辅助开发演进。
教学法:为什么这样安排
课程文档将教学设计归结为两个关键原则:
- 项目驱动学习(project-based learning)——把内容和真实项目对齐,学习过程更有参与感、概念记忆更牢固;
- 高频测验(frequent quizzes)——课前一组低风险小测验帮学生「设定意图」,课后一组测验强化记忆。
文档同时强调课程刻意不引入任何 JavaScript 框架,以便在进入框架生态之前先把基本功打牢;「先基础、后框架」的路线也解释了为什么课程从变量、函数一直讲到 DOM 操作与状态管理,却不涉及 React/Vue 框架教学。项目难度设计为从小到大、循序渐进,最终在 12 周周期内形成完整能力。另据文档说明,课程中的 JS 基础部分还配套了面向初学者的 JavaScript 视频系列,部分作者参与编写了本课程。
离线访问:Docsify 本地文档站
课程文档支持完全离线阅读。仓库根目录的 index.html 使用 Docsify 构建静态文档站,其配置片段(loadNavbar: 'docs/_navbar.md'、relativePath: true 以及一组把课程路径自动映射到各语言翻译 README 的 alias 规则)印证了这套离线方案。目录顺序定义见 docs/_sidebar.md(按 1–24 课组织章节导航)。
离线启动步骤如下:
- Fork 本仓库(或直接使用本地克隆);
- 在本地机器安装 Docsify;
- 在仓库根目录执行:
docsify serve
站点会运行在 http://localhost:3000。若你希望得到一份所有课程的静态合订版,仓库内还提供了 pdf/readme.pdf(PDF 合订文件)。
面向教师与延伸学习
- 教师使用:课程文档与仓库内置了多种课堂落地方式。for-teachers.md 详细介绍了如何配合 GitHub Classroom 按「一课一仓库」组织班级作业,以及直接使用本仓库授课的同步/异步模式;仓库还提供了可直接导入主流 LMS 的课程包:teaching-files/webdev-moodle.mbz(Moodle)与 teaching-files/webdev-common-cartridge.imscc(通用 Common Cartridge,可兼容 Canvas 等平台)。
- 学习者延伸:文档推荐结合 Microsoft Learn 的补充学习材料与 Student Hub 学生资源(含面向学生的免费资源与证书信息),并鼓励学习者在讨论社区中与同伴协作、向维护团队提问。
姊妹课程、支持渠道与许可
项目组围绕同一「For Beginners」系列持续产出多门姊妹课程,例如 Generative AI 系列(含 .NET / Java / JavaScript 分支)、ML for Beginners、Data Science for Beginners、AI for Beginners、Cybersecurity、IoT、XR、LangChain、Azure/Edge/MCP/Agents 以及 Copilot 系列,具体入口以各课程官方发布页为准。遇到问题可在仓库讨论区与支持论坛提问。本仓库以 MIT 许可发布,许可全文见 LICENSE。
提示:多语言版本由 AI 翻译服务(Co-op Translator)自动生成(见文档末尾免责声明),自动翻译可能存在误差或不准确之处,正式以英文原版为权威来源;涉及关键信息时可参考英文原文核实。
<输出文章>
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00